diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..bf83306
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,49 @@
+# https://editorconfig.org/
+
+root = true
+
+[*]
+indent_style = space
+indent_size = 4
+insert_final_newline = true
+trim_trailing_whitespace = true
+end_of_line = lf
+charset = utf-8
+
+[*.py]
+max_line_length = 120
+ensure_newline_before_comments = true
+include_trailing_comma = true
+use_parentheses = true
+
+# Use 2 spaces for the HTML files
+[*.html]
+indent_size = 2
+
+# The JSON files contain newlines inconsistently
+[*.json]
+indent_size = 2
+insert_final_newline = false
+
+[**/admin/js/vendor/**]
+indent_style = unset
+indent_size = unset
+
+# Minified JavaScript files shouldn't be changed
+[**.min.js]
+indent_style = unset
+insert_final_newline = false
+
+# Makefiles always use tabs for indentation
+[Makefile]
+indent_style = tab
+
+# Batch files use tabs for indentation
+[*.bat]
+indent_style = tab
+
+[docs/**.txt]
+max_line_length = 88
+
+[*.yml]
+indent_size = 2
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..422a564
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,4 @@
+IMMICH_HOST=http://localhost:2283/api
+IMMICH_API_KEY=
+
+TARGET_DIR=./export
diff --git a/.gitignore b/.gitignore
index ba54481..b0450cf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -247,3 +247,5 @@ fabric.properties
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
+# Custom
+/export
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/immich-to-cloud-exporter.iml b/.idea/immich-to-cloud-exporter.iml
new file mode 100644
index 0000000..e82aad1
--- /dev/null
+++ b/.idea/immich-to-cloud-exporter.iml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..12cb550
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..9a0ed42
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore
new file mode 100644
index 0000000..7484ee5
--- /dev/null
+++ b/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/README.md b/README.md
index cba119a..3fa6a4f 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,28 @@
-# immich-to-cloud-exporter
+# Immich to cloud exporter
-Script to export immich data as a structured folder. Useful if you want to browse your albums etc when immich is broken.
\ No newline at end of file
+Script to export immich data as a structured folder. Useful if you want to browse your albums etc when immich is broken.
+
+## To-do
+
+- [ ] Create folders like "Misc {{year}}" for photos that are not in albums
+- [ ] Move (or rename?) photos that are deleted in Immich but exist on the local disk
+- [ ] Dockerize the tool so it's easy to run on the server
+- [ ] Stretch: Preserve metadata (e.g. file creation times)
+- [ ] Stretch: directly sync to Proton Drive (skipping the local filesystem)
+
+
+## Development
+
+### Generate OpenAPI spec
+
+```bash
+rm -rf generated/immich
+docker run --rm \
+ -u $UID:$UID \
+ -v ${PWD}:/local openapitools/openapi-generator-cli generate \
+ -i https://github.com/immich-app/immich/raw/refs/heads/main/open-api/immich-openapi-specs.json \
+ -g python \
+ --skip-operation-example \
+ --additional-properties generateSourceCodeOnly=true,packageName="generated.immich.openapi_client" \
+ -o /local/
+```
diff --git a/generated/__init__.py b/generated/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/generated/immich/__init__.py b/generated/immich/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/generated/immich/openapi_client/__init__.py b/generated/immich/openapi_client/__init__.py
new file mode 100644
index 0000000..b239395
--- /dev/null
+++ b/generated/immich/openapi_client/__init__.py
@@ -0,0 +1,312 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+ 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
+
+
+__version__ = "1.0.0"
+
+# import apis into sdk package
+from generated.immich.openapi_client.api.api_keys_api import APIKeysApi
+from generated.immich.openapi_client.api.activities_api import ActivitiesApi
+from generated.immich.openapi_client.api.albums_api import AlbumsApi
+from generated.immich.openapi_client.api.assets_api import AssetsApi
+from generated.immich.openapi_client.api.authentication_api import AuthenticationApi
+from generated.immich.openapi_client.api.deprecated_api import DeprecatedApi
+from generated.immich.openapi_client.api.download_api import DownloadApi
+from generated.immich.openapi_client.api.duplicates_api import DuplicatesApi
+from generated.immich.openapi_client.api.faces_api import FacesApi
+from generated.immich.openapi_client.api.file_reports_api import FileReportsApi
+from generated.immich.openapi_client.api.jobs_api import JobsApi
+from generated.immich.openapi_client.api.libraries_api import LibrariesApi
+from generated.immich.openapi_client.api.map_api import MapApi
+from generated.immich.openapi_client.api.memories_api import MemoriesApi
+from generated.immich.openapi_client.api.notifications_api import NotificationsApi
+from generated.immich.openapi_client.api.o_auth_api import OAuthApi
+from generated.immich.openapi_client.api.partners_api import PartnersApi
+from generated.immich.openapi_client.api.people_api import PeopleApi
+from generated.immich.openapi_client.api.search_api import SearchApi
+from generated.immich.openapi_client.api.server_api import ServerApi
+from generated.immich.openapi_client.api.sessions_api import SessionsApi
+from generated.immich.openapi_client.api.shared_links_api import SharedLinksApi
+from generated.immich.openapi_client.api.stacks_api import StacksApi
+from generated.immich.openapi_client.api.sync_api import SyncApi
+from generated.immich.openapi_client.api.system_config_api import SystemConfigApi
+from generated.immich.openapi_client.api.system_metadata_api import SystemMetadataApi
+from generated.immich.openapi_client.api.tags_api import TagsApi
+from generated.immich.openapi_client.api.timeline_api import TimelineApi
+from generated.immich.openapi_client.api.trash_api import TrashApi
+from generated.immich.openapi_client.api.users_api import UsersApi
+from generated.immich.openapi_client.api.users_admin_api import UsersAdminApi
+from generated.immich.openapi_client.api.view_api import ViewApi
+
+# import ApiClient
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.api_client import ApiClient
+from generated.immich.openapi_client.configuration import Configuration
+from generated.immich.openapi_client.exceptions import OpenApiException
+from generated.immich.openapi_client.exceptions import ApiTypeError
+from generated.immich.openapi_client.exceptions import ApiValueError
+from generated.immich.openapi_client.exceptions import ApiKeyError
+from generated.immich.openapi_client.exceptions import ApiAttributeError
+from generated.immich.openapi_client.exceptions import ApiException
+
+# import models into sdk 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
+from generated.immich.openapi_client.models.add_users_dto import AddUsersDto
+from generated.immich.openapi_client.models.admin_onboarding_update_dto import AdminOnboardingUpdateDto
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.models.album_statistics_response_dto import AlbumStatisticsResponseDto
+from generated.immich.openapi_client.models.album_user_add_dto import AlbumUserAddDto
+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.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_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_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
+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_order import AssetOrder
+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.audio_codec import AudioCodec
+from generated.immich.openapi_client.models.avatar_response import AvatarResponse
+from generated.immich.openapi_client.models.avatar_update import AvatarUpdate
+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.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.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.database_backup_config import DatabaseBackupConfig
+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_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.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.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_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.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.on_this_day_dto import OnThisDayDto
+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.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
+from generated.immich.openapi_client.models.people_update_dto import PeopleUpdateDto
+from generated.immich.openapi_client.models.people_update_item import PeopleUpdateItem
+from generated.immich.openapi_client.models.permission import Permission
+from generated.immich.openapi_client.models.person_create_dto import PersonCreateDto
+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.places_response_dto import PlacesResponseDto
+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.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.reverse_geocoding_state_response_dto import ReverseGeocodingStateResponseDto
+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
+from generated.immich.openapi_client.models.search_explore_response_dto import SearchExploreResponseDto
+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_suggestion_type import SearchSuggestionType
+from generated.immich.openapi_client.models.server_about_response_dto import ServerAboutResponseDto
+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_response_dto import SessionResponseDto
+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_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
+from generated.immich.openapi_client.models.shared_links_update import SharedLinksUpdate
+from generated.immich.openapi_client.models.sign_up_dto import SignUpDto
+from generated.immich.openapi_client.models.smart_search_dto import SmartSearchDto
+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.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_asset_delete_v1 import SyncAssetDeleteV1
+from generated.immich.openapi_client.models.sync_asset_exif_v1 import SyncAssetExifV1
+from generated.immich.openapi_client.models.sync_asset_v1 import SyncAssetV1
+from generated.immich.openapi_client.models.sync_entity_type import SyncEntityType
+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_request_type import SyncRequestType
+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_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_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_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
+from generated.immich.openapi_client.models.system_config_library_watch_dto import SystemConfigLibraryWatchDto
+from generated.immich.openapi_client.models.system_config_logging_dto import SystemConfigLoggingDto
+from generated.immich.openapi_client.models.system_config_machine_learning_dto import SystemConfigMachineLearningDto
+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_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
+from generated.immich.openapi_client.models.system_config_reverse_geocoding_dto import SystemConfigReverseGeocodingDto
+from generated.immich.openapi_client.models.system_config_server_dto import SystemConfigServerDto
+from generated.immich.openapi_client.models.system_config_smtp_dto import SystemConfigSmtpDto
+from generated.immich.openapi_client.models.system_config_smtp_transport_dto import SystemConfigSmtpTransportDto
+from generated.immich.openapi_client.models.system_config_storage_template_dto import SystemConfigStorageTemplateDto
+from generated.immich.openapi_client.models.system_config_template_emails_dto import SystemConfigTemplateEmailsDto
+from generated.immich.openapi_client.models.system_config_template_storage_option_dto import SystemConfigTemplateStorageOptionDto
+from generated.immich.openapi_client.models.system_config_templates_dto import SystemConfigTemplatesDto
+from generated.immich.openapi_client.models.system_config_theme_dto import SystemConfigThemeDto
+from generated.immich.openapi_client.models.system_config_trash_dto import SystemConfigTrashDto
+from generated.immich.openapi_client.models.system_config_user_dto import SystemConfigUserDto
+from generated.immich.openapi_client.models.tag_bulk_assets_dto import TagBulkAssetsDto
+from generated.immich.openapi_client.models.tag_bulk_assets_response_dto import TagBulkAssetsResponseDto
+from generated.immich.openapi_client.models.tag_create_dto import TagCreateDto
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.models.tag_update_dto import TagUpdateDto
+from generated.immich.openapi_client.models.tag_upsert_dto import TagUpsertDto
+from generated.immich.openapi_client.models.tags_response import TagsResponse
+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.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
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+from generated.immich.openapi_client.models.update_album_dto import UpdateAlbumDto
+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
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+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_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
+from generated.immich.openapi_client.models.user_status import UserStatus
+from generated.immich.openapi_client.models.user_update_me_dto import UserUpdateMeDto
+from generated.immich.openapi_client.models.validate_access_token_response_dto import ValidateAccessTokenResponseDto
+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.video_codec import VideoCodec
+from generated.immich.openapi_client.models.video_container import VideoContainer
diff --git a/generated/immich/openapi_client/api/__init__.py b/generated/immich/openapi_client/api/__init__.py
new file mode 100644
index 0000000..50f0edc
--- /dev/null
+++ b/generated/immich/openapi_client/api/__init__.py
@@ -0,0 +1,36 @@
+# flake8: noqa
+
+# import apis into api package
+from generated.immich.openapi_client.api.api_keys_api import APIKeysApi
+from generated.immich.openapi_client.api.activities_api import ActivitiesApi
+from generated.immich.openapi_client.api.albums_api import AlbumsApi
+from generated.immich.openapi_client.api.assets_api import AssetsApi
+from generated.immich.openapi_client.api.authentication_api import AuthenticationApi
+from generated.immich.openapi_client.api.deprecated_api import DeprecatedApi
+from generated.immich.openapi_client.api.download_api import DownloadApi
+from generated.immich.openapi_client.api.duplicates_api import DuplicatesApi
+from generated.immich.openapi_client.api.faces_api import FacesApi
+from generated.immich.openapi_client.api.file_reports_api import FileReportsApi
+from generated.immich.openapi_client.api.jobs_api import JobsApi
+from generated.immich.openapi_client.api.libraries_api import LibrariesApi
+from generated.immich.openapi_client.api.map_api import MapApi
+from generated.immich.openapi_client.api.memories_api import MemoriesApi
+from generated.immich.openapi_client.api.notifications_api import NotificationsApi
+from generated.immich.openapi_client.api.o_auth_api import OAuthApi
+from generated.immich.openapi_client.api.partners_api import PartnersApi
+from generated.immich.openapi_client.api.people_api import PeopleApi
+from generated.immich.openapi_client.api.search_api import SearchApi
+from generated.immich.openapi_client.api.server_api import ServerApi
+from generated.immich.openapi_client.api.sessions_api import SessionsApi
+from generated.immich.openapi_client.api.shared_links_api import SharedLinksApi
+from generated.immich.openapi_client.api.stacks_api import StacksApi
+from generated.immich.openapi_client.api.sync_api import SyncApi
+from generated.immich.openapi_client.api.system_config_api import SystemConfigApi
+from generated.immich.openapi_client.api.system_metadata_api import SystemMetadataApi
+from generated.immich.openapi_client.api.tags_api import TagsApi
+from generated.immich.openapi_client.api.timeline_api import TimelineApi
+from generated.immich.openapi_client.api.trash_api import TrashApi
+from generated.immich.openapi_client.api.users_api import UsersApi
+from generated.immich.openapi_client.api.users_admin_api import UsersAdminApi
+from generated.immich.openapi_client.api.view_api import ViewApi
+
diff --git a/generated/immich/openapi_client/api/activities_api.py b/generated/immich/openapi_client/api/activities_api.py
new file mode 100644
index 0000000..461f4fc
--- /dev/null
+++ b/generated/immich/openapi_client/api/activities_api.py
@@ -0,0 +1,1177 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List, Optional
+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
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class ActivitiesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_activity(
+ self,
+ activity_create_dto: ActivityCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ActivityResponseDto:
+ """create_activity
+
+
+ :param activity_create_dto: (required)
+ :type activity_create_dto: ActivityCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_activity_serialize(
+ activity_create_dto=activity_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ActivityResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_activity_with_http_info(
+ self,
+ activity_create_dto: ActivityCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ActivityResponseDto]:
+ """create_activity
+
+
+ :param activity_create_dto: (required)
+ :type activity_create_dto: ActivityCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_activity_serialize(
+ activity_create_dto=activity_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ActivityResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_activity_without_preload_content(
+ self,
+ activity_create_dto: ActivityCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_activity
+
+
+ :param activity_create_dto: (required)
+ :type activity_create_dto: ActivityCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_activity_serialize(
+ activity_create_dto=activity_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ActivityResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_activity_serialize(
+ self,
+ activity_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if activity_create_dto is not None:
+ _body_params = activity_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/activities',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_activity(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_activity
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_activity_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_activity_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_activity
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_activity_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_activity_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_activity
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_activity_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_activity_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/activities/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_activities(
+ self,
+ album_id: StrictStr,
+ asset_id: Optional[StrictStr] = None,
+ level: Optional[ReactionLevel] = None,
+ type: Optional[ReactionType] = None,
+ user_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[ActivityResponseDto]:
+ """get_activities
+
+
+ :param album_id: (required)
+ :type album_id: str
+ :param asset_id:
+ :type asset_id: str
+ :param level:
+ :type level: ReactionLevel
+ :param type:
+ :type type: ReactionType
+ :param user_id:
+ :type user_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_activities_serialize(
+ album_id=album_id,
+ asset_id=asset_id,
+ level=level,
+ type=type,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[ActivityResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_activities_with_http_info(
+ self,
+ album_id: StrictStr,
+ asset_id: Optional[StrictStr] = None,
+ level: Optional[ReactionLevel] = None,
+ type: Optional[ReactionType] = None,
+ user_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[ActivityResponseDto]]:
+ """get_activities
+
+
+ :param album_id: (required)
+ :type album_id: str
+ :param asset_id:
+ :type asset_id: str
+ :param level:
+ :type level: ReactionLevel
+ :param type:
+ :type type: ReactionType
+ :param user_id:
+ :type user_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_activities_serialize(
+ album_id=album_id,
+ asset_id=asset_id,
+ level=level,
+ type=type,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[ActivityResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_activities_without_preload_content(
+ self,
+ album_id: StrictStr,
+ asset_id: Optional[StrictStr] = None,
+ level: Optional[ReactionLevel] = None,
+ type: Optional[ReactionType] = None,
+ user_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_activities
+
+
+ :param album_id: (required)
+ :type album_id: str
+ :param asset_id:
+ :type asset_id: str
+ :param level:
+ :type level: ReactionLevel
+ :param type:
+ :type type: ReactionType
+ :param user_id:
+ :type user_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_activities_serialize(
+ album_id=album_id,
+ asset_id=asset_id,
+ level=level,
+ type=type,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[ActivityResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_activities_serialize(
+ self,
+ album_id,
+ asset_id,
+ level,
+ type,
+ user_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if album_id is not None:
+
+ _query_params.append(('albumId', album_id))
+
+ if asset_id is not None:
+
+ _query_params.append(('assetId', asset_id))
+
+ if level is not None:
+
+ _query_params.append(('level', level.value))
+
+ if type is not None:
+
+ _query_params.append(('type', type.value))
+
+ if user_id is not None:
+
+ _query_params.append(('userId', user_id))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/activities',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_activity_statistics(
+ self,
+ album_id: StrictStr,
+ asset_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ActivityStatisticsResponseDto:
+ """get_activity_statistics
+
+
+ :param album_id: (required)
+ :type album_id: str
+ :param asset_id:
+ :type asset_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_activity_statistics_serialize(
+ album_id=album_id,
+ asset_id=asset_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ActivityStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_activity_statistics_with_http_info(
+ self,
+ album_id: StrictStr,
+ asset_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ActivityStatisticsResponseDto]:
+ """get_activity_statistics
+
+
+ :param album_id: (required)
+ :type album_id: str
+ :param asset_id:
+ :type asset_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_activity_statistics_serialize(
+ album_id=album_id,
+ asset_id=asset_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ActivityStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_activity_statistics_without_preload_content(
+ self,
+ album_id: StrictStr,
+ asset_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_activity_statistics
+
+
+ :param album_id: (required)
+ :type album_id: str
+ :param asset_id:
+ :type asset_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_activity_statistics_serialize(
+ album_id=album_id,
+ asset_id=asset_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ActivityStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_activity_statistics_serialize(
+ self,
+ album_id,
+ asset_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if album_id is not None:
+
+ _query_params.append(('albumId', album_id))
+
+ if asset_id is not None:
+
+ _query_params.append(('assetId', asset_id))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/activities/statistics',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/albums_api.py b/generated/immich/openapi_client/api/albums_api.py
new file mode 100644
index 0000000..49b133c
--- /dev/null
+++ b/generated/immich/openapi_client/api/albums_api.py
@@ -0,0 +1,3123 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictBool, StrictStr
+from typing import List, Optional
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.add_users_dto import AddUsersDto
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.models.album_statistics_response_dto import AlbumStatisticsResponseDto
+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.create_album_dto import CreateAlbumDto
+from generated.immich.openapi_client.models.update_album_dto import UpdateAlbumDto
+from generated.immich.openapi_client.models.update_album_user_dto import UpdateAlbumUserDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class AlbumsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def add_assets_to_album(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """add_assets_to_album
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_assets_to_album_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def add_assets_to_album_with_http_info(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """add_assets_to_album
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_assets_to_album_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def add_assets_to_album_without_preload_content(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """add_assets_to_album
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_assets_to_album_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _add_assets_to_album_serialize(
+ self,
+ id,
+ bulk_ids_dto,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/albums/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def add_users_to_album(
+ self,
+ id: StrictStr,
+ add_users_dto: AddUsersDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AlbumResponseDto:
+ """add_users_to_album
+
+
+ :param id: (required)
+ :type id: str
+ :param add_users_dto: (required)
+ :type add_users_dto: AddUsersDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_users_to_album_serialize(
+ id=id,
+ add_users_dto=add_users_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def add_users_to_album_with_http_info(
+ self,
+ id: StrictStr,
+ add_users_dto: AddUsersDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AlbumResponseDto]:
+ """add_users_to_album
+
+
+ :param id: (required)
+ :type id: str
+ :param add_users_dto: (required)
+ :type add_users_dto: AddUsersDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_users_to_album_serialize(
+ id=id,
+ add_users_dto=add_users_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def add_users_to_album_without_preload_content(
+ self,
+ id: StrictStr,
+ add_users_dto: AddUsersDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """add_users_to_album
+
+
+ :param id: (required)
+ :type id: str
+ :param add_users_dto: (required)
+ :type add_users_dto: AddUsersDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_users_to_album_serialize(
+ id=id,
+ add_users_dto=add_users_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _add_users_to_album_serialize(
+ self,
+ id,
+ add_users_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if add_users_dto is not None:
+ _body_params = add_users_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/albums/{id}/users',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def create_album(
+ self,
+ create_album_dto: CreateAlbumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AlbumResponseDto:
+ """create_album
+
+
+ :param create_album_dto: (required)
+ :type create_album_dto: CreateAlbumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_album_serialize(
+ create_album_dto=create_album_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_album_with_http_info(
+ self,
+ create_album_dto: CreateAlbumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AlbumResponseDto]:
+ """create_album
+
+
+ :param create_album_dto: (required)
+ :type create_album_dto: CreateAlbumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_album_serialize(
+ create_album_dto=create_album_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_album_without_preload_content(
+ self,
+ create_album_dto: CreateAlbumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_album
+
+
+ :param create_album_dto: (required)
+ :type create_album_dto: CreateAlbumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_album_serialize(
+ create_album_dto=create_album_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_album_serialize(
+ self,
+ create_album_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if create_album_dto is not None:
+ _body_params = create_album_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/albums',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_album(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_album
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_album_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_album_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_album
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_album_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_album_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_album
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_album_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_album_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/albums/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_album_info(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ without_assets: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AlbumResponseDto:
+ """get_album_info
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param without_assets:
+ :type without_assets: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_album_info_serialize(
+ id=id,
+ key=key,
+ without_assets=without_assets,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_album_info_with_http_info(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ without_assets: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AlbumResponseDto]:
+ """get_album_info
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param without_assets:
+ :type without_assets: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_album_info_serialize(
+ id=id,
+ key=key,
+ without_assets=without_assets,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_album_info_without_preload_content(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ without_assets: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_album_info
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param without_assets:
+ :type without_assets: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_album_info_serialize(
+ id=id,
+ key=key,
+ without_assets=without_assets,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_album_info_serialize(
+ self,
+ id,
+ key,
+ without_assets,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ if without_assets is not None:
+
+ _query_params.append(('withoutAssets', without_assets))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/albums/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_album_statistics(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AlbumStatisticsResponseDto:
+ """get_album_statistics
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_album_statistics_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_album_statistics_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AlbumStatisticsResponseDto]:
+ """get_album_statistics
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_album_statistics_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_album_statistics_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_album_statistics
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_album_statistics_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_album_statistics_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/albums/statistics',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_all_albums(
+ self,
+ asset_id: Annotated[Optional[StrictStr], Field(description="Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums")] = None,
+ shared: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AlbumResponseDto]:
+ """get_all_albums
+
+
+ :param asset_id: Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums
+ :type asset_id: str
+ :param shared:
+ :type shared: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_albums_serialize(
+ asset_id=asset_id,
+ shared=shared,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AlbumResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_all_albums_with_http_info(
+ self,
+ asset_id: Annotated[Optional[StrictStr], Field(description="Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums")] = None,
+ shared: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AlbumResponseDto]]:
+ """get_all_albums
+
+
+ :param asset_id: Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums
+ :type asset_id: str
+ :param shared:
+ :type shared: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_albums_serialize(
+ asset_id=asset_id,
+ shared=shared,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AlbumResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_all_albums_without_preload_content(
+ self,
+ asset_id: Annotated[Optional[StrictStr], Field(description="Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums")] = None,
+ shared: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_all_albums
+
+
+ :param asset_id: Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums
+ :type asset_id: str
+ :param shared:
+ :type shared: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_albums_serialize(
+ asset_id=asset_id,
+ shared=shared,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AlbumResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_all_albums_serialize(
+ self,
+ asset_id,
+ shared,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if asset_id is not None:
+
+ _query_params.append(('assetId', asset_id))
+
+ if shared is not None:
+
+ _query_params.append(('shared', shared))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/albums',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def remove_asset_from_album(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """remove_asset_from_album
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_asset_from_album_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def remove_asset_from_album_with_http_info(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """remove_asset_from_album
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_asset_from_album_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def remove_asset_from_album_without_preload_content(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """remove_asset_from_album
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_asset_from_album_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_asset_from_album_serialize(
+ self,
+ id,
+ bulk_ids_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/albums/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def remove_user_from_album(
+ self,
+ id: StrictStr,
+ user_id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """remove_user_from_album
+
+
+ :param id: (required)
+ :type id: str
+ :param user_id: (required)
+ :type user_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_user_from_album_serialize(
+ id=id,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def remove_user_from_album_with_http_info(
+ self,
+ id: StrictStr,
+ user_id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """remove_user_from_album
+
+
+ :param id: (required)
+ :type id: str
+ :param user_id: (required)
+ :type user_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_user_from_album_serialize(
+ id=id,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def remove_user_from_album_without_preload_content(
+ self,
+ id: StrictStr,
+ user_id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """remove_user_from_album
+
+
+ :param id: (required)
+ :type id: str
+ :param user_id: (required)
+ :type user_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_user_from_album_serialize(
+ id=id,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_user_from_album_serialize(
+ self,
+ id,
+ user_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ if user_id is not None:
+ _path_params['userId'] = user_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/albums/{id}/user/{userId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_album_info(
+ self,
+ id: StrictStr,
+ update_album_dto: UpdateAlbumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AlbumResponseDto:
+ """update_album_info
+
+
+ :param id: (required)
+ :type id: str
+ :param update_album_dto: (required)
+ :type update_album_dto: UpdateAlbumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_album_info_serialize(
+ id=id,
+ update_album_dto=update_album_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_album_info_with_http_info(
+ self,
+ id: StrictStr,
+ update_album_dto: UpdateAlbumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AlbumResponseDto]:
+ """update_album_info
+
+
+ :param id: (required)
+ :type id: str
+ :param update_album_dto: (required)
+ :type update_album_dto: UpdateAlbumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_album_info_serialize(
+ id=id,
+ update_album_dto=update_album_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_album_info_without_preload_content(
+ self,
+ id: StrictStr,
+ update_album_dto: UpdateAlbumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_album_info
+
+
+ :param id: (required)
+ :type id: str
+ :param update_album_dto: (required)
+ :type update_album_dto: UpdateAlbumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_album_info_serialize(
+ id=id,
+ update_album_dto=update_album_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AlbumResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_album_info_serialize(
+ self,
+ id,
+ update_album_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_album_dto is not None:
+ _body_params = update_album_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/albums/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_album_user(
+ self,
+ id: StrictStr,
+ user_id: StrictStr,
+ update_album_user_dto: UpdateAlbumUserDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """update_album_user
+
+
+ :param id: (required)
+ :type id: str
+ :param user_id: (required)
+ :type user_id: str
+ :param update_album_user_dto: (required)
+ :type update_album_user_dto: UpdateAlbumUserDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_album_user_serialize(
+ id=id,
+ user_id=user_id,
+ update_album_user_dto=update_album_user_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_album_user_with_http_info(
+ self,
+ id: StrictStr,
+ user_id: StrictStr,
+ update_album_user_dto: UpdateAlbumUserDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """update_album_user
+
+
+ :param id: (required)
+ :type id: str
+ :param user_id: (required)
+ :type user_id: str
+ :param update_album_user_dto: (required)
+ :type update_album_user_dto: UpdateAlbumUserDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_album_user_serialize(
+ id=id,
+ user_id=user_id,
+ update_album_user_dto=update_album_user_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_album_user_without_preload_content(
+ self,
+ id: StrictStr,
+ user_id: StrictStr,
+ update_album_user_dto: UpdateAlbumUserDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_album_user
+
+
+ :param id: (required)
+ :type id: str
+ :param user_id: (required)
+ :type user_id: str
+ :param update_album_user_dto: (required)
+ :type update_album_user_dto: UpdateAlbumUserDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_album_user_serialize(
+ id=id,
+ user_id=user_id,
+ update_album_user_dto=update_album_user_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_album_user_serialize(
+ self,
+ id,
+ user_id,
+ update_album_user_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ if user_id is not None:
+ _path_params['userId'] = user_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_album_user_dto is not None:
+ _body_params = update_album_user_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/albums/{id}/user/{userId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/api_keys_api.py b/generated/immich/openapi_client/api/api_keys_api.py
new file mode 100644
index 0000000..4b10a16
--- /dev/null
+++ b/generated/immich/openapi_client/api/api_keys_api.py
@@ -0,0 +1,1360 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class APIKeysApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_api_key(
+ self,
+ api_key_create_dto: APIKeyCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> APIKeyCreateResponseDto:
+ """create_api_key
+
+
+ :param api_key_create_dto: (required)
+ :type api_key_create_dto: APIKeyCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_api_key_serialize(
+ api_key_create_dto=api_key_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "APIKeyCreateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_api_key_with_http_info(
+ self,
+ api_key_create_dto: APIKeyCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[APIKeyCreateResponseDto]:
+ """create_api_key
+
+
+ :param api_key_create_dto: (required)
+ :type api_key_create_dto: APIKeyCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_api_key_serialize(
+ api_key_create_dto=api_key_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "APIKeyCreateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_api_key_without_preload_content(
+ self,
+ api_key_create_dto: APIKeyCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_api_key
+
+
+ :param api_key_create_dto: (required)
+ :type api_key_create_dto: APIKeyCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_api_key_serialize(
+ api_key_create_dto=api_key_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "APIKeyCreateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_api_key_serialize(
+ self,
+ api_key_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if api_key_create_dto is not None:
+ _body_params = api_key_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/api-keys',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_api_key(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_api_key_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_api_key_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_api_key_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_api_key_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_api_key_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_api_key_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/api-keys/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_api_key(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> APIKeyResponseDto:
+ """get_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_api_key_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "APIKeyResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_api_key_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[APIKeyResponseDto]:
+ """get_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_api_key_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "APIKeyResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_api_key_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_api_key_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "APIKeyResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_api_key_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api-keys/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_api_keys(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[APIKeyResponseDto]:
+ """get_api_keys
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_api_keys_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[APIKeyResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_api_keys_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[APIKeyResponseDto]]:
+ """get_api_keys
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_api_keys_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[APIKeyResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_api_keys_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_api_keys
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_api_keys_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[APIKeyResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_api_keys_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api-keys',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_api_key(
+ self,
+ id: StrictStr,
+ api_key_update_dto: APIKeyUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> APIKeyResponseDto:
+ """update_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param api_key_update_dto: (required)
+ :type api_key_update_dto: APIKeyUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_api_key_serialize(
+ id=id,
+ api_key_update_dto=api_key_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "APIKeyResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_api_key_with_http_info(
+ self,
+ id: StrictStr,
+ api_key_update_dto: APIKeyUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[APIKeyResponseDto]:
+ """update_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param api_key_update_dto: (required)
+ :type api_key_update_dto: APIKeyUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_api_key_serialize(
+ id=id,
+ api_key_update_dto=api_key_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "APIKeyResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_api_key_without_preload_content(
+ self,
+ id: StrictStr,
+ api_key_update_dto: APIKeyUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_api_key
+
+
+ :param id: (required)
+ :type id: str
+ :param api_key_update_dto: (required)
+ :type api_key_update_dto: APIKeyUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_api_key_serialize(
+ id=id,
+ api_key_update_dto=api_key_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "APIKeyResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_api_key_serialize(
+ self,
+ id,
+ api_key_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if api_key_update_dto is not None:
+ _body_params = api_key_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/api-keys/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/assets_api.py b/generated/immich/openapi_client/api/assets_api.py
new file mode 100644
index 0000000..5648029
--- /dev/null
+++ b/generated/immich/openapi_client/api/assets_api.py
@@ -0,0 +1,4759 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from datetime import datetime
+from pydantic import Field, StrictBool, StrictBytes, StrictStr
+from typing import List, Optional, Tuple, Union
+from typing_extensions import Annotated
+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_response_dto import AssetBulkUploadCheckResponseDto
+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_response_dto import AssetResponseDto
+from generated.immich.openapi_client.models.asset_stats_response_dto import AssetStatsResponseDto
+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.memory_lane_response_dto import MemoryLaneResponseDto
+from generated.immich.openapi_client.models.update_asset_dto import UpdateAssetDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class AssetsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def check_bulk_upload(
+ self,
+ asset_bulk_upload_check_dto: AssetBulkUploadCheckDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AssetBulkUploadCheckResponseDto:
+ """checkBulkUpload
+
+ Checks if assets exist by checksums
+
+ :param asset_bulk_upload_check_dto: (required)
+ :type asset_bulk_upload_check_dto: AssetBulkUploadCheckDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._check_bulk_upload_serialize(
+ asset_bulk_upload_check_dto=asset_bulk_upload_check_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetBulkUploadCheckResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def check_bulk_upload_with_http_info(
+ self,
+ asset_bulk_upload_check_dto: AssetBulkUploadCheckDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AssetBulkUploadCheckResponseDto]:
+ """checkBulkUpload
+
+ Checks if assets exist by checksums
+
+ :param asset_bulk_upload_check_dto: (required)
+ :type asset_bulk_upload_check_dto: AssetBulkUploadCheckDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._check_bulk_upload_serialize(
+ asset_bulk_upload_check_dto=asset_bulk_upload_check_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetBulkUploadCheckResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def check_bulk_upload_without_preload_content(
+ self,
+ asset_bulk_upload_check_dto: AssetBulkUploadCheckDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """checkBulkUpload
+
+ Checks if assets exist by checksums
+
+ :param asset_bulk_upload_check_dto: (required)
+ :type asset_bulk_upload_check_dto: AssetBulkUploadCheckDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._check_bulk_upload_serialize(
+ asset_bulk_upload_check_dto=asset_bulk_upload_check_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetBulkUploadCheckResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _check_bulk_upload_serialize(
+ self,
+ asset_bulk_upload_check_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_bulk_upload_check_dto is not None:
+ _body_params = asset_bulk_upload_check_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/assets/bulk-upload-check',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def check_existing_assets(
+ self,
+ check_existing_assets_dto: CheckExistingAssetsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CheckExistingAssetsResponseDto:
+ """checkExistingAssets
+
+ Checks if multiple assets exist on the server and returns all existing - used by background backup
+
+ :param check_existing_assets_dto: (required)
+ :type check_existing_assets_dto: CheckExistingAssetsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._check_existing_assets_serialize(
+ check_existing_assets_dto=check_existing_assets_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CheckExistingAssetsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def check_existing_assets_with_http_info(
+ self,
+ check_existing_assets_dto: CheckExistingAssetsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CheckExistingAssetsResponseDto]:
+ """checkExistingAssets
+
+ Checks if multiple assets exist on the server and returns all existing - used by background backup
+
+ :param check_existing_assets_dto: (required)
+ :type check_existing_assets_dto: CheckExistingAssetsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._check_existing_assets_serialize(
+ check_existing_assets_dto=check_existing_assets_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CheckExistingAssetsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def check_existing_assets_without_preload_content(
+ self,
+ check_existing_assets_dto: CheckExistingAssetsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """checkExistingAssets
+
+ Checks if multiple assets exist on the server and returns all existing - used by background backup
+
+ :param check_existing_assets_dto: (required)
+ :type check_existing_assets_dto: CheckExistingAssetsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._check_existing_assets_serialize(
+ check_existing_assets_dto=check_existing_assets_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CheckExistingAssetsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _check_existing_assets_serialize(
+ self,
+ check_existing_assets_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if check_existing_assets_dto is not None:
+ _body_params = check_existing_assets_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/assets/exist',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_assets(
+ self,
+ asset_bulk_delete_dto: AssetBulkDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_assets
+
+
+ :param asset_bulk_delete_dto: (required)
+ :type asset_bulk_delete_dto: AssetBulkDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_assets_serialize(
+ asset_bulk_delete_dto=asset_bulk_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_assets_with_http_info(
+ self,
+ asset_bulk_delete_dto: AssetBulkDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_assets
+
+
+ :param asset_bulk_delete_dto: (required)
+ :type asset_bulk_delete_dto: AssetBulkDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_assets_serialize(
+ asset_bulk_delete_dto=asset_bulk_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_assets_without_preload_content(
+ self,
+ asset_bulk_delete_dto: AssetBulkDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_assets
+
+
+ :param asset_bulk_delete_dto: (required)
+ :type asset_bulk_delete_dto: AssetBulkDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_assets_serialize(
+ asset_bulk_delete_dto=asset_bulk_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_assets_serialize(
+ self,
+ asset_bulk_delete_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_bulk_delete_dto is not None:
+ _body_params = asset_bulk_delete_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def download_asset(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> bytearray:
+ """download_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_asset_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def download_asset_with_http_info(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[bytearray]:
+ """download_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_asset_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def download_asset_without_preload_content(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """download_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_asset_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _download_asset_serialize(
+ self,
+ id,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/octet-stream'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/{id}/original',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_all_user_assets_by_device_id(
+ self,
+ device_id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[str]:
+ """getAllUserAssetsByDeviceId
+
+ Get all asset of a device that are in the database, ID only.
+
+ :param device_id: (required)
+ :type device_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_user_assets_by_device_id_serialize(
+ device_id=device_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_all_user_assets_by_device_id_with_http_info(
+ self,
+ device_id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[str]]:
+ """getAllUserAssetsByDeviceId
+
+ Get all asset of a device that are in the database, ID only.
+
+ :param device_id: (required)
+ :type device_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_user_assets_by_device_id_serialize(
+ device_id=device_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_all_user_assets_by_device_id_without_preload_content(
+ self,
+ device_id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """getAllUserAssetsByDeviceId
+
+ Get all asset of a device that are in the database, ID only.
+
+ :param device_id: (required)
+ :type device_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_user_assets_by_device_id_serialize(
+ device_id=device_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_all_user_assets_by_device_id_serialize(
+ self,
+ device_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if device_id is not None:
+ _path_params['deviceId'] = device_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/device/{deviceId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_asset_info(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AssetResponseDto:
+ """get_asset_info
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_info_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_asset_info_with_http_info(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AssetResponseDto]:
+ """get_asset_info
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_info_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_asset_info_without_preload_content(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_asset_info
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_info_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_asset_info_serialize(
+ self,
+ id,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_asset_statistics(
+ self,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AssetStatsResponseDto:
+ """get_asset_statistics
+
+
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_statistics_serialize(
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_asset_statistics_with_http_info(
+ self,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AssetStatsResponseDto]:
+ """get_asset_statistics
+
+
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_statistics_serialize(
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_asset_statistics_without_preload_content(
+ self,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_asset_statistics
+
+
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_statistics_serialize(
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_asset_statistics_serialize(
+ self,
+ is_archived,
+ is_favorite,
+ is_trashed,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if is_archived is not None:
+
+ _query_params.append(('isArchived', is_archived))
+
+ if is_favorite is not None:
+
+ _query_params.append(('isFavorite', is_favorite))
+
+ if is_trashed is not None:
+
+ _query_params.append(('isTrashed', is_trashed))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/statistics',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_memory_lane(
+ self,
+ day: Annotated[int, Field(le=31, strict=True, ge=1)],
+ month: Annotated[int, Field(le=12, strict=True, ge=1)],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[MemoryLaneResponseDto]:
+ """get_memory_lane
+
+
+ :param day: (required)
+ :type day: int
+ :param month: (required)
+ :type month: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_memory_lane_serialize(
+ day=day,
+ month=month,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MemoryLaneResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_memory_lane_with_http_info(
+ self,
+ day: Annotated[int, Field(le=31, strict=True, ge=1)],
+ month: Annotated[int, Field(le=12, strict=True, ge=1)],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[MemoryLaneResponseDto]]:
+ """get_memory_lane
+
+
+ :param day: (required)
+ :type day: int
+ :param month: (required)
+ :type month: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_memory_lane_serialize(
+ day=day,
+ month=month,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MemoryLaneResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_memory_lane_without_preload_content(
+ self,
+ day: Annotated[int, Field(le=31, strict=True, ge=1)],
+ month: Annotated[int, Field(le=12, strict=True, ge=1)],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_memory_lane
+
+
+ :param day: (required)
+ :type day: int
+ :param month: (required)
+ :type month: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_memory_lane_serialize(
+ day=day,
+ month=month,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MemoryLaneResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_memory_lane_serialize(
+ self,
+ day,
+ month,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if day is not None:
+
+ _query_params.append(('day', day))
+
+ if month is not None:
+
+ _query_params.append(('month', month))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/memory-lane',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_random(
+ self,
+ count: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetResponseDto]:
+ """(Deprecated) get_random
+
+ This property was deprecated in v1.116.0
+
+ :param count:
+ :type count: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+ warnings.warn("GET /assets/random is deprecated.", DeprecationWarning)
+
+ _param = self._get_random_serialize(
+ count=count,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_random_with_http_info(
+ self,
+ count: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetResponseDto]]:
+ """(Deprecated) get_random
+
+ This property was deprecated in v1.116.0
+
+ :param count:
+ :type count: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+ warnings.warn("GET /assets/random is deprecated.", DeprecationWarning)
+
+ _param = self._get_random_serialize(
+ count=count,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_random_without_preload_content(
+ self,
+ count: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """(Deprecated) get_random
+
+ This property was deprecated in v1.116.0
+
+ :param count:
+ :type count: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+ warnings.warn("GET /assets/random is deprecated.", DeprecationWarning)
+
+ _param = self._get_random_serialize(
+ count=count,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_random_serialize(
+ self,
+ count,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if count is not None:
+
+ _query_params.append(('count', count))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/random',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def play_asset_video(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> bytearray:
+ """play_asset_video
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._play_asset_video_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def play_asset_video_with_http_info(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[bytearray]:
+ """play_asset_video
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._play_asset_video_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def play_asset_video_without_preload_content(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """play_asset_video
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._play_asset_video_serialize(
+ id=id,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _play_asset_video_serialize(
+ self,
+ id,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/octet-stream'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/{id}/video/playback',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def replace_asset(
+ self,
+ id: StrictStr,
+ asset_data: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ device_asset_id: StrictStr,
+ device_id: StrictStr,
+ file_created_at: datetime,
+ file_modified_at: datetime,
+ key: Optional[StrictStr] = None,
+ duration: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AssetMediaResponseDto:
+ """replaceAsset
+
+ Replace the asset with new file, without changing its id
+
+ :param id: (required)
+ :type id: str
+ :param asset_data: (required)
+ :type asset_data: bytearray
+ :param device_asset_id: (required)
+ :type device_asset_id: str
+ :param device_id: (required)
+ :type device_id: str
+ :param file_created_at: (required)
+ :type file_created_at: datetime
+ :param file_modified_at: (required)
+ :type file_modified_at: datetime
+ :param key:
+ :type key: str
+ :param duration:
+ :type duration: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._replace_asset_serialize(
+ id=id,
+ asset_data=asset_data,
+ device_asset_id=device_asset_id,
+ device_id=device_id,
+ file_created_at=file_created_at,
+ file_modified_at=file_modified_at,
+ key=key,
+ duration=duration,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetMediaResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def replace_asset_with_http_info(
+ self,
+ id: StrictStr,
+ asset_data: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ device_asset_id: StrictStr,
+ device_id: StrictStr,
+ file_created_at: datetime,
+ file_modified_at: datetime,
+ key: Optional[StrictStr] = None,
+ duration: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AssetMediaResponseDto]:
+ """replaceAsset
+
+ Replace the asset with new file, without changing its id
+
+ :param id: (required)
+ :type id: str
+ :param asset_data: (required)
+ :type asset_data: bytearray
+ :param device_asset_id: (required)
+ :type device_asset_id: str
+ :param device_id: (required)
+ :type device_id: str
+ :param file_created_at: (required)
+ :type file_created_at: datetime
+ :param file_modified_at: (required)
+ :type file_modified_at: datetime
+ :param key:
+ :type key: str
+ :param duration:
+ :type duration: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._replace_asset_serialize(
+ id=id,
+ asset_data=asset_data,
+ device_asset_id=device_asset_id,
+ device_id=device_id,
+ file_created_at=file_created_at,
+ file_modified_at=file_modified_at,
+ key=key,
+ duration=duration,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetMediaResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def replace_asset_without_preload_content(
+ self,
+ id: StrictStr,
+ asset_data: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ device_asset_id: StrictStr,
+ device_id: StrictStr,
+ file_created_at: datetime,
+ file_modified_at: datetime,
+ key: Optional[StrictStr] = None,
+ duration: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """replaceAsset
+
+ Replace the asset with new file, without changing its id
+
+ :param id: (required)
+ :type id: str
+ :param asset_data: (required)
+ :type asset_data: bytearray
+ :param device_asset_id: (required)
+ :type device_asset_id: str
+ :param device_id: (required)
+ :type device_id: str
+ :param file_created_at: (required)
+ :type file_created_at: datetime
+ :param file_modified_at: (required)
+ :type file_modified_at: datetime
+ :param key:
+ :type key: str
+ :param duration:
+ :type duration: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._replace_asset_serialize(
+ id=id,
+ asset_data=asset_data,
+ device_asset_id=device_asset_id,
+ device_id=device_id,
+ file_created_at=file_created_at,
+ file_modified_at=file_modified_at,
+ key=key,
+ duration=duration,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetMediaResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _replace_asset_serialize(
+ self,
+ id,
+ asset_data,
+ device_asset_id,
+ device_id,
+ file_created_at,
+ file_modified_at,
+ key,
+ duration,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ if asset_data is not None:
+ _files['assetData'] = asset_data
+ if device_asset_id is not None:
+ _form_params.append(('deviceAssetId', device_asset_id))
+ if device_id is not None:
+ _form_params.append(('deviceId', device_id))
+ if duration is not None:
+ _form_params.append(('duration', duration))
+ if file_created_at is not None:
+ _form_params.append(('fileCreatedAt', file_created_at))
+ if file_modified_at is not None:
+ _form_params.append(('fileModifiedAt', file_modified_at))
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'multipart/form-data'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/assets/{id}/original',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def run_asset_jobs(
+ self,
+ asset_jobs_dto: AssetJobsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """run_asset_jobs
+
+
+ :param asset_jobs_dto: (required)
+ :type asset_jobs_dto: AssetJobsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._run_asset_jobs_serialize(
+ asset_jobs_dto=asset_jobs_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def run_asset_jobs_with_http_info(
+ self,
+ asset_jobs_dto: AssetJobsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """run_asset_jobs
+
+
+ :param asset_jobs_dto: (required)
+ :type asset_jobs_dto: AssetJobsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._run_asset_jobs_serialize(
+ asset_jobs_dto=asset_jobs_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def run_asset_jobs_without_preload_content(
+ self,
+ asset_jobs_dto: AssetJobsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """run_asset_jobs
+
+
+ :param asset_jobs_dto: (required)
+ :type asset_jobs_dto: AssetJobsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._run_asset_jobs_serialize(
+ asset_jobs_dto=asset_jobs_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _run_asset_jobs_serialize(
+ self,
+ asset_jobs_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_jobs_dto is not None:
+ _body_params = asset_jobs_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/assets/jobs',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_asset(
+ self,
+ id: StrictStr,
+ update_asset_dto: UpdateAssetDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AssetResponseDto:
+ """update_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param update_asset_dto: (required)
+ :type update_asset_dto: UpdateAssetDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_asset_serialize(
+ id=id,
+ update_asset_dto=update_asset_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_asset_with_http_info(
+ self,
+ id: StrictStr,
+ update_asset_dto: UpdateAssetDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AssetResponseDto]:
+ """update_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param update_asset_dto: (required)
+ :type update_asset_dto: UpdateAssetDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_asset_serialize(
+ id=id,
+ update_asset_dto=update_asset_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_asset_without_preload_content(
+ self,
+ id: StrictStr,
+ update_asset_dto: UpdateAssetDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param update_asset_dto: (required)
+ :type update_asset_dto: UpdateAssetDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_asset_serialize(
+ id=id,
+ update_asset_dto=update_asset_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_asset_serialize(
+ self,
+ id,
+ update_asset_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_asset_dto is not None:
+ _body_params = update_asset_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/assets/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_assets(
+ self,
+ asset_bulk_update_dto: AssetBulkUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """update_assets
+
+
+ :param asset_bulk_update_dto: (required)
+ :type asset_bulk_update_dto: AssetBulkUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_assets_serialize(
+ asset_bulk_update_dto=asset_bulk_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_assets_with_http_info(
+ self,
+ asset_bulk_update_dto: AssetBulkUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """update_assets
+
+
+ :param asset_bulk_update_dto: (required)
+ :type asset_bulk_update_dto: AssetBulkUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_assets_serialize(
+ asset_bulk_update_dto=asset_bulk_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_assets_without_preload_content(
+ self,
+ asset_bulk_update_dto: AssetBulkUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_assets
+
+
+ :param asset_bulk_update_dto: (required)
+ :type asset_bulk_update_dto: AssetBulkUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_assets_serialize(
+ asset_bulk_update_dto=asset_bulk_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_assets_serialize(
+ self,
+ asset_bulk_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_bulk_update_dto is not None:
+ _body_params = asset_bulk_update_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def upload_asset(
+ self,
+ asset_data: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ device_asset_id: StrictStr,
+ device_id: StrictStr,
+ file_created_at: datetime,
+ file_modified_at: datetime,
+ key: Optional[StrictStr] = None,
+ x_immich_checksum: Annotated[Optional[StrictStr], Field(description="sha1 checksum that can be used for duplicate detection before the file is uploaded")] = None,
+ duration: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_visible: Optional[StrictBool] = None,
+ live_photo_video_id: Optional[StrictStr] = None,
+ sidecar_data: Optional[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AssetMediaResponseDto:
+ """upload_asset
+
+
+ :param asset_data: (required)
+ :type asset_data: bytearray
+ :param device_asset_id: (required)
+ :type device_asset_id: str
+ :param device_id: (required)
+ :type device_id: str
+ :param file_created_at: (required)
+ :type file_created_at: datetime
+ :param file_modified_at: (required)
+ :type file_modified_at: datetime
+ :param key:
+ :type key: str
+ :param x_immich_checksum: sha1 checksum that can be used for duplicate detection before the file is uploaded
+ :type x_immich_checksum: str
+ :param duration:
+ :type duration: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_visible:
+ :type is_visible: bool
+ :param live_photo_video_id:
+ :type live_photo_video_id: str
+ :param sidecar_data:
+ :type sidecar_data: bytearray
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._upload_asset_serialize(
+ asset_data=asset_data,
+ device_asset_id=device_asset_id,
+ device_id=device_id,
+ file_created_at=file_created_at,
+ file_modified_at=file_modified_at,
+ key=key,
+ x_immich_checksum=x_immich_checksum,
+ duration=duration,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_visible=is_visible,
+ live_photo_video_id=live_photo_video_id,
+ sidecar_data=sidecar_data,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "AssetMediaResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def upload_asset_with_http_info(
+ self,
+ asset_data: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ device_asset_id: StrictStr,
+ device_id: StrictStr,
+ file_created_at: datetime,
+ file_modified_at: datetime,
+ key: Optional[StrictStr] = None,
+ x_immich_checksum: Annotated[Optional[StrictStr], Field(description="sha1 checksum that can be used for duplicate detection before the file is uploaded")] = None,
+ duration: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_visible: Optional[StrictBool] = None,
+ live_photo_video_id: Optional[StrictStr] = None,
+ sidecar_data: Optional[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AssetMediaResponseDto]:
+ """upload_asset
+
+
+ :param asset_data: (required)
+ :type asset_data: bytearray
+ :param device_asset_id: (required)
+ :type device_asset_id: str
+ :param device_id: (required)
+ :type device_id: str
+ :param file_created_at: (required)
+ :type file_created_at: datetime
+ :param file_modified_at: (required)
+ :type file_modified_at: datetime
+ :param key:
+ :type key: str
+ :param x_immich_checksum: sha1 checksum that can be used for duplicate detection before the file is uploaded
+ :type x_immich_checksum: str
+ :param duration:
+ :type duration: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_visible:
+ :type is_visible: bool
+ :param live_photo_video_id:
+ :type live_photo_video_id: str
+ :param sidecar_data:
+ :type sidecar_data: bytearray
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._upload_asset_serialize(
+ asset_data=asset_data,
+ device_asset_id=device_asset_id,
+ device_id=device_id,
+ file_created_at=file_created_at,
+ file_modified_at=file_modified_at,
+ key=key,
+ x_immich_checksum=x_immich_checksum,
+ duration=duration,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_visible=is_visible,
+ live_photo_video_id=live_photo_video_id,
+ sidecar_data=sidecar_data,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "AssetMediaResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def upload_asset_without_preload_content(
+ self,
+ asset_data: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ device_asset_id: StrictStr,
+ device_id: StrictStr,
+ file_created_at: datetime,
+ file_modified_at: datetime,
+ key: Optional[StrictStr] = None,
+ x_immich_checksum: Annotated[Optional[StrictStr], Field(description="sha1 checksum that can be used for duplicate detection before the file is uploaded")] = None,
+ duration: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_visible: Optional[StrictBool] = None,
+ live_photo_video_id: Optional[StrictStr] = None,
+ sidecar_data: Optional[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """upload_asset
+
+
+ :param asset_data: (required)
+ :type asset_data: bytearray
+ :param device_asset_id: (required)
+ :type device_asset_id: str
+ :param device_id: (required)
+ :type device_id: str
+ :param file_created_at: (required)
+ :type file_created_at: datetime
+ :param file_modified_at: (required)
+ :type file_modified_at: datetime
+ :param key:
+ :type key: str
+ :param x_immich_checksum: sha1 checksum that can be used for duplicate detection before the file is uploaded
+ :type x_immich_checksum: str
+ :param duration:
+ :type duration: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_visible:
+ :type is_visible: bool
+ :param live_photo_video_id:
+ :type live_photo_video_id: str
+ :param sidecar_data:
+ :type sidecar_data: bytearray
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._upload_asset_serialize(
+ asset_data=asset_data,
+ device_asset_id=device_asset_id,
+ device_id=device_id,
+ file_created_at=file_created_at,
+ file_modified_at=file_modified_at,
+ key=key,
+ x_immich_checksum=x_immich_checksum,
+ duration=duration,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_visible=is_visible,
+ live_photo_video_id=live_photo_video_id,
+ sidecar_data=sidecar_data,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "AssetMediaResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _upload_asset_serialize(
+ self,
+ asset_data,
+ device_asset_id,
+ device_id,
+ file_created_at,
+ file_modified_at,
+ key,
+ x_immich_checksum,
+ duration,
+ is_archived,
+ is_favorite,
+ is_visible,
+ live_photo_video_id,
+ sidecar_data,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ if x_immich_checksum is not None:
+ _header_params['x-immich-checksum'] = x_immich_checksum
+ # process the form parameters
+ if asset_data is not None:
+ _files['assetData'] = asset_data
+ if device_asset_id is not None:
+ _form_params.append(('deviceAssetId', device_asset_id))
+ if device_id is not None:
+ _form_params.append(('deviceId', device_id))
+ if duration is not None:
+ _form_params.append(('duration', duration))
+ if file_created_at is not None:
+ _form_params.append(('fileCreatedAt', file_created_at))
+ if file_modified_at is not None:
+ _form_params.append(('fileModifiedAt', file_modified_at))
+ if is_archived is not None:
+ _form_params.append(('isArchived', is_archived))
+ if is_favorite is not None:
+ _form_params.append(('isFavorite', is_favorite))
+ if is_visible is not None:
+ _form_params.append(('isVisible', is_visible))
+ if live_photo_video_id is not None:
+ _form_params.append(('livePhotoVideoId', live_photo_video_id))
+ if sidecar_data is not None:
+ _files['sidecarData'] = sidecar_data
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'multipart/form-data'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def view_asset(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ size: Optional[AssetMediaSize] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> bytearray:
+ """view_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param size:
+ :type size: AssetMediaSize
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._view_asset_serialize(
+ id=id,
+ key=key,
+ size=size,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def view_asset_with_http_info(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ size: Optional[AssetMediaSize] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[bytearray]:
+ """view_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param size:
+ :type size: AssetMediaSize
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._view_asset_serialize(
+ id=id,
+ key=key,
+ size=size,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def view_asset_without_preload_content(
+ self,
+ id: StrictStr,
+ key: Optional[StrictStr] = None,
+ size: Optional[AssetMediaSize] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """view_asset
+
+
+ :param id: (required)
+ :type id: str
+ :param key:
+ :type key: str
+ :param size:
+ :type size: AssetMediaSize
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._view_asset_serialize(
+ id=id,
+ key=key,
+ size=size,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _view_asset_serialize(
+ self,
+ id,
+ key,
+ size,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ if size is not None:
+
+ _query_params.append(('size', size.value))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/octet-stream'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/{id}/thumbnail',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/authentication_api.py b/generated/immich/openapi_client/api/authentication_api.py
new file mode 100644
index 0000000..99c18a0
--- /dev/null
+++ b/generated/immich/openapi_client/api/authentication_api.py
@@ -0,0 +1,1345 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from generated.immich.openapi_client.models.change_password_dto import ChangePasswordDto
+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.sign_up_dto import SignUpDto
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.models.validate_access_token_response_dto import ValidateAccessTokenResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class AuthenticationApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def change_password(
+ self,
+ change_password_dto: ChangePasswordDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """change_password
+
+
+ :param change_password_dto: (required)
+ :type change_password_dto: ChangePasswordDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._change_password_serialize(
+ change_password_dto=change_password_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def change_password_with_http_info(
+ self,
+ change_password_dto: ChangePasswordDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """change_password
+
+
+ :param change_password_dto: (required)
+ :type change_password_dto: ChangePasswordDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._change_password_serialize(
+ change_password_dto=change_password_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def change_password_without_preload_content(
+ self,
+ change_password_dto: ChangePasswordDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """change_password
+
+
+ :param change_password_dto: (required)
+ :type change_password_dto: ChangePasswordDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._change_password_serialize(
+ change_password_dto=change_password_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _change_password_serialize(
+ self,
+ change_password_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if change_password_dto is not None:
+ _body_params = change_password_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/auth/change-password',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def login(
+ self,
+ login_credential_dto: LoginCredentialDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LoginResponseDto:
+ """login
+
+
+ :param login_credential_dto: (required)
+ :type login_credential_dto: LoginCredentialDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._login_serialize(
+ login_credential_dto=login_credential_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LoginResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def login_with_http_info(
+ self,
+ login_credential_dto: LoginCredentialDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LoginResponseDto]:
+ """login
+
+
+ :param login_credential_dto: (required)
+ :type login_credential_dto: LoginCredentialDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._login_serialize(
+ login_credential_dto=login_credential_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LoginResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def login_without_preload_content(
+ self,
+ login_credential_dto: LoginCredentialDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """login
+
+
+ :param login_credential_dto: (required)
+ :type login_credential_dto: LoginCredentialDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._login_serialize(
+ login_credential_dto=login_credential_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LoginResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _login_serialize(
+ self,
+ login_credential_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if login_credential_dto is not None:
+ _body_params = login_credential_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/auth/login',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def logout(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LogoutResponseDto:
+ """logout
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._logout_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LogoutResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def logout_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LogoutResponseDto]:
+ """logout
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._logout_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LogoutResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def logout_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """logout
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._logout_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LogoutResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _logout_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/auth/logout',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def sign_up_admin(
+ self,
+ sign_up_dto: SignUpDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """sign_up_admin
+
+
+ :param sign_up_dto: (required)
+ :type sign_up_dto: SignUpDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._sign_up_admin_serialize(
+ sign_up_dto=sign_up_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def sign_up_admin_with_http_info(
+ self,
+ sign_up_dto: SignUpDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """sign_up_admin
+
+
+ :param sign_up_dto: (required)
+ :type sign_up_dto: SignUpDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._sign_up_admin_serialize(
+ sign_up_dto=sign_up_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def sign_up_admin_without_preload_content(
+ self,
+ sign_up_dto: SignUpDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """sign_up_admin
+
+
+ :param sign_up_dto: (required)
+ :type sign_up_dto: SignUpDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._sign_up_admin_serialize(
+ sign_up_dto=sign_up_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _sign_up_admin_serialize(
+ self,
+ sign_up_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if sign_up_dto is not None:
+ _body_params = sign_up_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/auth/admin-sign-up',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def validate_access_token(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ValidateAccessTokenResponseDto:
+ """validate_access_token
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._validate_access_token_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ValidateAccessTokenResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def validate_access_token_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ValidateAccessTokenResponseDto]:
+ """validate_access_token
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._validate_access_token_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ValidateAccessTokenResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def validate_access_token_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """validate_access_token
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._validate_access_token_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ValidateAccessTokenResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _validate_access_token_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/auth/validateToken',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/deprecated_api.py b/generated/immich/openapi_client/api/deprecated_api.py
new file mode 100644
index 0000000..c8b2d6b
--- /dev/null
+++ b/generated/immich/openapi_client/api/deprecated_api.py
@@ -0,0 +1,307 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field
+from typing import List, Optional, Union
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class DeprecatedApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_random(
+ self,
+ count: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetResponseDto]:
+ """(Deprecated) get_random
+
+ This property was deprecated in v1.116.0
+
+ :param count:
+ :type count: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+ warnings.warn("GET /assets/random is deprecated.", DeprecationWarning)
+
+ _param = self._get_random_serialize(
+ count=count,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_random_with_http_info(
+ self,
+ count: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetResponseDto]]:
+ """(Deprecated) get_random
+
+ This property was deprecated in v1.116.0
+
+ :param count:
+ :type count: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+ warnings.warn("GET /assets/random is deprecated.", DeprecationWarning)
+
+ _param = self._get_random_serialize(
+ count=count,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_random_without_preload_content(
+ self,
+ count: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """(Deprecated) get_random
+
+ This property was deprecated in v1.116.0
+
+ :param count:
+ :type count: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+ warnings.warn("GET /assets/random is deprecated.", DeprecationWarning)
+
+ _param = self._get_random_serialize(
+ count=count,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_random_serialize(
+ self,
+ count,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if count is not None:
+
+ _query_params.append(('count', count))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/assets/random',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/download_api.py b/generated/immich/openapi_client/api/download_api.py
new file mode 100644
index 0000000..bc98328
--- /dev/null
+++ b/generated/immich/openapi_client/api/download_api.py
@@ -0,0 +1,620 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictBytes, StrictStr
+from typing import Optional, Tuple, Union
+from generated.immich.openapi_client.models.asset_ids_dto import AssetIdsDto
+from generated.immich.openapi_client.models.download_info_dto import DownloadInfoDto
+from generated.immich.openapi_client.models.download_response_dto import DownloadResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class DownloadApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def download_archive(
+ self,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> bytearray:
+ """download_archive
+
+
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_archive_serialize(
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def download_archive_with_http_info(
+ self,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[bytearray]:
+ """download_archive
+
+
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_archive_serialize(
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def download_archive_without_preload_content(
+ self,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """download_archive
+
+
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._download_archive_serialize(
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _download_archive_serialize(
+ self,
+ asset_ids_dto,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_ids_dto is not None:
+ _body_params = asset_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/octet-stream'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/download/archive',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_download_info(
+ self,
+ download_info_dto: DownloadInfoDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> DownloadResponseDto:
+ """get_download_info
+
+
+ :param download_info_dto: (required)
+ :type download_info_dto: DownloadInfoDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_download_info_serialize(
+ download_info_dto=download_info_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "DownloadResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_download_info_with_http_info(
+ self,
+ download_info_dto: DownloadInfoDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[DownloadResponseDto]:
+ """get_download_info
+
+
+ :param download_info_dto: (required)
+ :type download_info_dto: DownloadInfoDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_download_info_serialize(
+ download_info_dto=download_info_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "DownloadResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_download_info_without_preload_content(
+ self,
+ download_info_dto: DownloadInfoDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_download_info
+
+
+ :param download_info_dto: (required)
+ :type download_info_dto: DownloadInfoDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_download_info_serialize(
+ download_info_dto=download_info_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "DownloadResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_download_info_serialize(
+ self,
+ download_info_dto,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if download_info_dto is not None:
+ _body_params = download_info_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/download/info',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/duplicates_api.py b/generated/immich/openapi_client/api/duplicates_api.py
new file mode 100644
index 0000000..67317a7
--- /dev/null
+++ b/generated/immich/openapi_client/api/duplicates_api.py
@@ -0,0 +1,282 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from typing import List
+from generated.immich.openapi_client.models.duplicate_response_dto import DuplicateResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class DuplicatesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_asset_duplicates(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[DuplicateResponseDto]:
+ """get_asset_duplicates
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_duplicates_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[DuplicateResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_asset_duplicates_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[DuplicateResponseDto]]:
+ """get_asset_duplicates
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_duplicates_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[DuplicateResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_asset_duplicates_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_asset_duplicates
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_asset_duplicates_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[DuplicateResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_asset_duplicates_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/duplicates',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/faces_api.py b/generated/immich/openapi_client/api/faces_api.py
new file mode 100644
index 0000000..b4b0de1
--- /dev/null
+++ b/generated/immich/openapi_client/api/faces_api.py
@@ -0,0 +1,1139 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List
+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.face_dto import FaceDto
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class FacesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_face(
+ self,
+ asset_face_create_dto: AssetFaceCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """create_face
+
+
+ :param asset_face_create_dto: (required)
+ :type asset_face_create_dto: AssetFaceCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_face_serialize(
+ asset_face_create_dto=asset_face_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_face_with_http_info(
+ self,
+ asset_face_create_dto: AssetFaceCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """create_face
+
+
+ :param asset_face_create_dto: (required)
+ :type asset_face_create_dto: AssetFaceCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_face_serialize(
+ asset_face_create_dto=asset_face_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_face_without_preload_content(
+ self,
+ asset_face_create_dto: AssetFaceCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_face
+
+
+ :param asset_face_create_dto: (required)
+ :type asset_face_create_dto: AssetFaceCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_face_serialize(
+ asset_face_create_dto=asset_face_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_face_serialize(
+ self,
+ asset_face_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_face_create_dto is not None:
+ _body_params = asset_face_create_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/faces',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_face(
+ self,
+ id: StrictStr,
+ asset_face_delete_dto: AssetFaceDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_face
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_face_delete_dto: (required)
+ :type asset_face_delete_dto: AssetFaceDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_face_serialize(
+ id=id,
+ asset_face_delete_dto=asset_face_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_face_with_http_info(
+ self,
+ id: StrictStr,
+ asset_face_delete_dto: AssetFaceDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_face
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_face_delete_dto: (required)
+ :type asset_face_delete_dto: AssetFaceDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_face_serialize(
+ id=id,
+ asset_face_delete_dto=asset_face_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_face_without_preload_content(
+ self,
+ id: StrictStr,
+ asset_face_delete_dto: AssetFaceDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_face
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_face_delete_dto: (required)
+ :type asset_face_delete_dto: AssetFaceDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_face_serialize(
+ id=id,
+ asset_face_delete_dto=asset_face_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_face_serialize(
+ self,
+ id,
+ asset_face_delete_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_face_delete_dto is not None:
+ _body_params = asset_face_delete_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/faces/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_faces(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetFaceResponseDto]:
+ """get_faces
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_faces_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetFaceResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_faces_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetFaceResponseDto]]:
+ """get_faces
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_faces_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetFaceResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_faces_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_faces
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_faces_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetFaceResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_faces_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if id is not None:
+
+ _query_params.append(('id', id))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/faces',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def reassign_faces_by_id(
+ self,
+ id: StrictStr,
+ face_dto: FaceDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PersonResponseDto:
+ """reassign_faces_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param face_dto: (required)
+ :type face_dto: FaceDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reassign_faces_by_id_serialize(
+ id=id,
+ face_dto=face_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def reassign_faces_by_id_with_http_info(
+ self,
+ id: StrictStr,
+ face_dto: FaceDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PersonResponseDto]:
+ """reassign_faces_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param face_dto: (required)
+ :type face_dto: FaceDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reassign_faces_by_id_serialize(
+ id=id,
+ face_dto=face_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def reassign_faces_by_id_without_preload_content(
+ self,
+ id: StrictStr,
+ face_dto: FaceDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """reassign_faces_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param face_dto: (required)
+ :type face_dto: FaceDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reassign_faces_by_id_serialize(
+ id=id,
+ face_dto=face_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _reassign_faces_by_id_serialize(
+ self,
+ id,
+ face_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if face_dto is not None:
+ _body_params = face_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/faces/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/file_reports_api.py b/generated/immich/openapi_client/api/file_reports_api.py
new file mode 100644
index 0000000..a0944a1
--- /dev/null
+++ b/generated/immich/openapi_client/api/file_reports_api.py
@@ -0,0 +1,824 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from typing import List
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class FileReportsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def fix_audit_files(
+ self,
+ file_report_fix_dto: FileReportFixDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """fix_audit_files
+
+
+ :param file_report_fix_dto: (required)
+ :type file_report_fix_dto: FileReportFixDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._fix_audit_files_serialize(
+ file_report_fix_dto=file_report_fix_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def fix_audit_files_with_http_info(
+ self,
+ file_report_fix_dto: FileReportFixDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """fix_audit_files
+
+
+ :param file_report_fix_dto: (required)
+ :type file_report_fix_dto: FileReportFixDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._fix_audit_files_serialize(
+ file_report_fix_dto=file_report_fix_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def fix_audit_files_without_preload_content(
+ self,
+ file_report_fix_dto: FileReportFixDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """fix_audit_files
+
+
+ :param file_report_fix_dto: (required)
+ :type file_report_fix_dto: FileReportFixDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._fix_audit_files_serialize(
+ file_report_fix_dto=file_report_fix_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _fix_audit_files_serialize(
+ self,
+ file_report_fix_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if file_report_fix_dto is not None:
+ _body_params = file_report_fix_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/reports/fix',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_audit_files(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> FileReportDto:
+ """get_audit_files
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_audit_files_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "FileReportDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_audit_files_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[FileReportDto]:
+ """get_audit_files
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_audit_files_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "FileReportDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_audit_files_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_audit_files
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_audit_files_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "FileReportDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_audit_files_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/reports',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_file_checksums(
+ self,
+ file_checksum_dto: FileChecksumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[FileChecksumResponseDto]:
+ """get_file_checksums
+
+
+ :param file_checksum_dto: (required)
+ :type file_checksum_dto: FileChecksumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_file_checksums_serialize(
+ file_checksum_dto=file_checksum_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "List[FileChecksumResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_file_checksums_with_http_info(
+ self,
+ file_checksum_dto: FileChecksumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[FileChecksumResponseDto]]:
+ """get_file_checksums
+
+
+ :param file_checksum_dto: (required)
+ :type file_checksum_dto: FileChecksumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_file_checksums_serialize(
+ file_checksum_dto=file_checksum_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "List[FileChecksumResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_file_checksums_without_preload_content(
+ self,
+ file_checksum_dto: FileChecksumDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_file_checksums
+
+
+ :param file_checksum_dto: (required)
+ :type file_checksum_dto: FileChecksumDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_file_checksums_serialize(
+ file_checksum_dto=file_checksum_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "List[FileChecksumResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_file_checksums_serialize(
+ self,
+ file_checksum_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if file_checksum_dto is not None:
+ _body_params = file_checksum_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/reports/checksum',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/jobs_api.py b/generated/immich/openapi_client/api/jobs_api.py
new file mode 100644
index 0000000..4c56d55
--- /dev/null
+++ b/generated/immich/openapi_client/api/jobs_api.py
@@ -0,0 +1,839 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from generated.immich.openapi_client.models.all_job_status_response_dto import AllJobStatusResponseDto
+from generated.immich.openapi_client.models.job_command_dto import JobCommandDto
+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_status_dto import JobStatusDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class JobsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_job(
+ self,
+ job_create_dto: JobCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """create_job
+
+
+ :param job_create_dto: (required)
+ :type job_create_dto: JobCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_job_serialize(
+ job_create_dto=job_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_job_with_http_info(
+ self,
+ job_create_dto: JobCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """create_job
+
+
+ :param job_create_dto: (required)
+ :type job_create_dto: JobCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_job_serialize(
+ job_create_dto=job_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_job_without_preload_content(
+ self,
+ job_create_dto: JobCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_job
+
+
+ :param job_create_dto: (required)
+ :type job_create_dto: JobCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_job_serialize(
+ job_create_dto=job_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_job_serialize(
+ self,
+ job_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if job_create_dto is not None:
+ _body_params = job_create_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/jobs',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_all_jobs_status(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AllJobStatusResponseDto:
+ """get_all_jobs_status
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_jobs_status_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AllJobStatusResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_all_jobs_status_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AllJobStatusResponseDto]:
+ """get_all_jobs_status
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_jobs_status_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AllJobStatusResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_all_jobs_status_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_all_jobs_status
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_jobs_status_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AllJobStatusResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_all_jobs_status_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/jobs',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def send_job_command(
+ self,
+ id: JobName,
+ job_command_dto: JobCommandDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> JobStatusDto:
+ """send_job_command
+
+
+ :param id: (required)
+ :type id: JobName
+ :param job_command_dto: (required)
+ :type job_command_dto: JobCommandDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_job_command_serialize(
+ id=id,
+ job_command_dto=job_command_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "JobStatusDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def send_job_command_with_http_info(
+ self,
+ id: JobName,
+ job_command_dto: JobCommandDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[JobStatusDto]:
+ """send_job_command
+
+
+ :param id: (required)
+ :type id: JobName
+ :param job_command_dto: (required)
+ :type job_command_dto: JobCommandDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_job_command_serialize(
+ id=id,
+ job_command_dto=job_command_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "JobStatusDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def send_job_command_without_preload_content(
+ self,
+ id: JobName,
+ job_command_dto: JobCommandDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """send_job_command
+
+
+ :param id: (required)
+ :type id: JobName
+ :param job_command_dto: (required)
+ :type job_command_dto: JobCommandDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_job_command_serialize(
+ id=id,
+ job_command_dto=job_command_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "JobStatusDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _send_job_command_serialize(
+ self,
+ id,
+ job_command_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id.value
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if job_command_dto is not None:
+ _body_params = job_command_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/jobs/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/libraries_api.py b/generated/immich/openapi_client/api/libraries_api.py
new file mode 100644
index 0000000..9fc46f2
--- /dev/null
+++ b/generated/immich/openapi_client/api/libraries_api.py
@@ -0,0 +1,2163 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List
+from generated.immich.openapi_client.models.create_library_dto import CreateLibraryDto
+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.update_library_dto import UpdateLibraryDto
+from generated.immich.openapi_client.models.validate_library_dto import ValidateLibraryDto
+from generated.immich.openapi_client.models.validate_library_response_dto import ValidateLibraryResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class LibrariesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_library(
+ self,
+ create_library_dto: CreateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LibraryResponseDto:
+ """create_library
+
+
+ :param create_library_dto: (required)
+ :type create_library_dto: CreateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_library_serialize(
+ create_library_dto=create_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_library_with_http_info(
+ self,
+ create_library_dto: CreateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LibraryResponseDto]:
+ """create_library
+
+
+ :param create_library_dto: (required)
+ :type create_library_dto: CreateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_library_serialize(
+ create_library_dto=create_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_library_without_preload_content(
+ self,
+ create_library_dto: CreateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_library
+
+
+ :param create_library_dto: (required)
+ :type create_library_dto: CreateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_library_serialize(
+ create_library_dto=create_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_library_serialize(
+ self,
+ create_library_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if create_library_dto is not None:
+ _body_params = create_library_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/libraries',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_library(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_library_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_library_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_library_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/libraries/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_all_libraries(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[LibraryResponseDto]:
+ """get_all_libraries
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_libraries_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[LibraryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_all_libraries_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[LibraryResponseDto]]:
+ """get_all_libraries
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_libraries_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[LibraryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_all_libraries_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_all_libraries
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_libraries_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[LibraryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_all_libraries_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/libraries',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_library(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LibraryResponseDto:
+ """get_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_library_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LibraryResponseDto]:
+ """get_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_library_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_library_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/libraries/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_library_statistics(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LibraryStatsResponseDto:
+ """get_library_statistics
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_library_statistics_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_library_statistics_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LibraryStatsResponseDto]:
+ """get_library_statistics
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_library_statistics_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_library_statistics_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_library_statistics
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_library_statistics_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_library_statistics_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/libraries/{id}/statistics',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def scan_library(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """scan_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._scan_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def scan_library_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """scan_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._scan_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def scan_library_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """scan_library
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._scan_library_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _scan_library_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/libraries/{id}/scan',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_library(
+ self,
+ id: StrictStr,
+ update_library_dto: UpdateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LibraryResponseDto:
+ """update_library
+
+
+ :param id: (required)
+ :type id: str
+ :param update_library_dto: (required)
+ :type update_library_dto: UpdateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_library_serialize(
+ id=id,
+ update_library_dto=update_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_library_with_http_info(
+ self,
+ id: StrictStr,
+ update_library_dto: UpdateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LibraryResponseDto]:
+ """update_library
+
+
+ :param id: (required)
+ :type id: str
+ :param update_library_dto: (required)
+ :type update_library_dto: UpdateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_library_serialize(
+ id=id,
+ update_library_dto=update_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_library_without_preload_content(
+ self,
+ id: StrictStr,
+ update_library_dto: UpdateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_library
+
+
+ :param id: (required)
+ :type id: str
+ :param update_library_dto: (required)
+ :type update_library_dto: UpdateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_library_serialize(
+ id=id,
+ update_library_dto=update_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_library_serialize(
+ self,
+ id,
+ update_library_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_library_dto is not None:
+ _body_params = update_library_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/libraries/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def validate(
+ self,
+ id: StrictStr,
+ validate_library_dto: ValidateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ValidateLibraryResponseDto:
+ """validate
+
+
+ :param id: (required)
+ :type id: str
+ :param validate_library_dto: (required)
+ :type validate_library_dto: ValidateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._validate_serialize(
+ id=id,
+ validate_library_dto=validate_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ValidateLibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def validate_with_http_info(
+ self,
+ id: StrictStr,
+ validate_library_dto: ValidateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ValidateLibraryResponseDto]:
+ """validate
+
+
+ :param id: (required)
+ :type id: str
+ :param validate_library_dto: (required)
+ :type validate_library_dto: ValidateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._validate_serialize(
+ id=id,
+ validate_library_dto=validate_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ValidateLibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def validate_without_preload_content(
+ self,
+ id: StrictStr,
+ validate_library_dto: ValidateLibraryDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """validate
+
+
+ :param id: (required)
+ :type id: str
+ :param validate_library_dto: (required)
+ :type validate_library_dto: ValidateLibraryDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._validate_serialize(
+ id=id,
+ validate_library_dto=validate_library_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ValidateLibraryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _validate_serialize(
+ self,
+ id,
+ validate_library_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if validate_library_dto is not None:
+ _body_params = validate_library_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/libraries/{id}/validate',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/map_api.py b/generated/immich/openapi_client/api/map_api.py
new file mode 100644
index 0000000..313d2c3
--- /dev/null
+++ b/generated/immich/openapi_client/api/map_api.py
@@ -0,0 +1,684 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from datetime import datetime
+from pydantic import StrictBool, StrictFloat, StrictInt
+from typing import List, Optional, Union
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class MapApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_map_markers(
+ self,
+ file_created_after: Optional[datetime] = None,
+ file_created_before: Optional[datetime] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_shared_albums: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[MapMarkerResponseDto]:
+ """get_map_markers
+
+
+ :param file_created_after:
+ :type file_created_after: datetime
+ :param file_created_before:
+ :type file_created_before: datetime
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param with_partners:
+ :type with_partners: bool
+ :param with_shared_albums:
+ :type with_shared_albums: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_map_markers_serialize(
+ file_created_after=file_created_after,
+ file_created_before=file_created_before,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ with_partners=with_partners,
+ with_shared_albums=with_shared_albums,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MapMarkerResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_map_markers_with_http_info(
+ self,
+ file_created_after: Optional[datetime] = None,
+ file_created_before: Optional[datetime] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_shared_albums: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[MapMarkerResponseDto]]:
+ """get_map_markers
+
+
+ :param file_created_after:
+ :type file_created_after: datetime
+ :param file_created_before:
+ :type file_created_before: datetime
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param with_partners:
+ :type with_partners: bool
+ :param with_shared_albums:
+ :type with_shared_albums: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_map_markers_serialize(
+ file_created_after=file_created_after,
+ file_created_before=file_created_before,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ with_partners=with_partners,
+ with_shared_albums=with_shared_albums,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MapMarkerResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_map_markers_without_preload_content(
+ self,
+ file_created_after: Optional[datetime] = None,
+ file_created_before: Optional[datetime] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_shared_albums: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_map_markers
+
+
+ :param file_created_after:
+ :type file_created_after: datetime
+ :param file_created_before:
+ :type file_created_before: datetime
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param with_partners:
+ :type with_partners: bool
+ :param with_shared_albums:
+ :type with_shared_albums: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_map_markers_serialize(
+ file_created_after=file_created_after,
+ file_created_before=file_created_before,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ with_partners=with_partners,
+ with_shared_albums=with_shared_albums,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MapMarkerResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_map_markers_serialize(
+ self,
+ file_created_after,
+ file_created_before,
+ is_archived,
+ is_favorite,
+ with_partners,
+ with_shared_albums,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if file_created_after is not None:
+ if isinstance(file_created_after, datetime):
+ _query_params.append(
+ (
+ 'fileCreatedAfter',
+ file_created_after.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('fileCreatedAfter', file_created_after))
+
+ if file_created_before is not None:
+ if isinstance(file_created_before, datetime):
+ _query_params.append(
+ (
+ 'fileCreatedBefore',
+ file_created_before.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('fileCreatedBefore', file_created_before))
+
+ if is_archived is not None:
+
+ _query_params.append(('isArchived', is_archived))
+
+ if is_favorite is not None:
+
+ _query_params.append(('isFavorite', is_favorite))
+
+ if with_partners is not None:
+
+ _query_params.append(('withPartners', with_partners))
+
+ if with_shared_albums is not None:
+
+ _query_params.append(('withSharedAlbums', with_shared_albums))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/map/markers',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def reverse_geocode(
+ self,
+ lat: Union[StrictFloat, StrictInt],
+ lon: Union[StrictFloat, StrictInt],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[MapReverseGeocodeResponseDto]:
+ """reverse_geocode
+
+
+ :param lat: (required)
+ :type lat: float
+ :param lon: (required)
+ :type lon: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reverse_geocode_serialize(
+ lat=lat,
+ lon=lon,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MapReverseGeocodeResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def reverse_geocode_with_http_info(
+ self,
+ lat: Union[StrictFloat, StrictInt],
+ lon: Union[StrictFloat, StrictInt],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[MapReverseGeocodeResponseDto]]:
+ """reverse_geocode
+
+
+ :param lat: (required)
+ :type lat: float
+ :param lon: (required)
+ :type lon: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reverse_geocode_serialize(
+ lat=lat,
+ lon=lon,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MapReverseGeocodeResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def reverse_geocode_without_preload_content(
+ self,
+ lat: Union[StrictFloat, StrictInt],
+ lon: Union[StrictFloat, StrictInt],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """reverse_geocode
+
+
+ :param lat: (required)
+ :type lat: float
+ :param lon: (required)
+ :type lon: float
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reverse_geocode_serialize(
+ lat=lat,
+ lon=lon,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MapReverseGeocodeResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _reverse_geocode_serialize(
+ self,
+ lat,
+ lon,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if lat is not None:
+
+ _query_params.append(('lat', lat))
+
+ if lon is not None:
+
+ _query_params.append(('lon', lon))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/map/reverse-geocode',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/memories_api.py b/generated/immich/openapi_client/api/memories_api.py
new file mode 100644
index 0000000..71fa427
--- /dev/null
+++ b/generated/immich/openapi_client/api/memories_api.py
@@ -0,0 +1,2016 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from datetime import datetime
+from pydantic import StrictBool, StrictStr
+from typing import List, Optional
+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.memory_create_dto import MemoryCreateDto
+from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class MemoriesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def add_memory_assets(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """add_memory_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_memory_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def add_memory_assets_with_http_info(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """add_memory_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_memory_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def add_memory_assets_without_preload_content(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """add_memory_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_memory_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _add_memory_assets_serialize(
+ self,
+ id,
+ bulk_ids_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/memories/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def create_memory(
+ self,
+ memory_create_dto: MemoryCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> MemoryResponseDto:
+ """create_memory
+
+
+ :param memory_create_dto: (required)
+ :type memory_create_dto: MemoryCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_memory_serialize(
+ memory_create_dto=memory_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_memory_with_http_info(
+ self,
+ memory_create_dto: MemoryCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[MemoryResponseDto]:
+ """create_memory
+
+
+ :param memory_create_dto: (required)
+ :type memory_create_dto: MemoryCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_memory_serialize(
+ memory_create_dto=memory_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_memory_without_preload_content(
+ self,
+ memory_create_dto: MemoryCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_memory
+
+
+ :param memory_create_dto: (required)
+ :type memory_create_dto: MemoryCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_memory_serialize(
+ memory_create_dto=memory_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_memory_serialize(
+ self,
+ memory_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if memory_create_dto is not None:
+ _body_params = memory_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/memories',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_memory(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_memory_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_memory_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_memory_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_memory_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_memory_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_memory_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/memories/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_memory(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> MemoryResponseDto:
+ """get_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_memory_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_memory_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[MemoryResponseDto]:
+ """get_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_memory_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_memory_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_memory_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_memory_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/memories/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def remove_memory_assets(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """remove_memory_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_memory_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def remove_memory_assets_with_http_info(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """remove_memory_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_memory_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def remove_memory_assets_without_preload_content(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """remove_memory_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_memory_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_memory_assets_serialize(
+ self,
+ id,
+ bulk_ids_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/memories/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_memories(
+ self,
+ var_for: Optional[datetime] = None,
+ is_saved: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ type: Optional[MemoryType] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[MemoryResponseDto]:
+ """search_memories
+
+
+ :param var_for:
+ :type var_for: datetime
+ :param is_saved:
+ :type is_saved: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param type:
+ :type type: MemoryType
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_memories_serialize(
+ var_for=var_for,
+ is_saved=is_saved,
+ is_trashed=is_trashed,
+ type=type,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MemoryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_memories_with_http_info(
+ self,
+ var_for: Optional[datetime] = None,
+ is_saved: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ type: Optional[MemoryType] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[MemoryResponseDto]]:
+ """search_memories
+
+
+ :param var_for:
+ :type var_for: datetime
+ :param is_saved:
+ :type is_saved: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param type:
+ :type type: MemoryType
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_memories_serialize(
+ var_for=var_for,
+ is_saved=is_saved,
+ is_trashed=is_trashed,
+ type=type,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MemoryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_memories_without_preload_content(
+ self,
+ var_for: Optional[datetime] = None,
+ is_saved: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ type: Optional[MemoryType] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_memories
+
+
+ :param var_for:
+ :type var_for: datetime
+ :param is_saved:
+ :type is_saved: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param type:
+ :type type: MemoryType
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_memories_serialize(
+ var_for=var_for,
+ is_saved=is_saved,
+ is_trashed=is_trashed,
+ type=type,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[MemoryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_memories_serialize(
+ self,
+ var_for,
+ is_saved,
+ is_trashed,
+ type,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if var_for is not None:
+ if isinstance(var_for, datetime):
+ _query_params.append(
+ (
+ 'for',
+ var_for.strftime(
+ self.api_client.configuration.datetime_format
+ )
+ )
+ )
+ else:
+ _query_params.append(('for', var_for))
+
+ if is_saved is not None:
+
+ _query_params.append(('isSaved', is_saved))
+
+ if is_trashed is not None:
+
+ _query_params.append(('isTrashed', is_trashed))
+
+ if type is not None:
+
+ _query_params.append(('type', type.value))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/memories',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_memory(
+ self,
+ id: StrictStr,
+ memory_update_dto: MemoryUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> MemoryResponseDto:
+ """update_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param memory_update_dto: (required)
+ :type memory_update_dto: MemoryUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_memory_serialize(
+ id=id,
+ memory_update_dto=memory_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_memory_with_http_info(
+ self,
+ id: StrictStr,
+ memory_update_dto: MemoryUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[MemoryResponseDto]:
+ """update_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param memory_update_dto: (required)
+ :type memory_update_dto: MemoryUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_memory_serialize(
+ id=id,
+ memory_update_dto=memory_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_memory_without_preload_content(
+ self,
+ id: StrictStr,
+ memory_update_dto: MemoryUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_memory
+
+
+ :param id: (required)
+ :type id: str
+ :param memory_update_dto: (required)
+ :type memory_update_dto: MemoryUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_memory_serialize(
+ id=id,
+ memory_update_dto=memory_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "MemoryResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_memory_serialize(
+ self,
+ id,
+ memory_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if memory_update_dto is not None:
+ _body_params = memory_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/memories/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/notifications_api.py b/generated/immich/openapi_client/api/notifications_api.py
new file mode 100644
index 0000000..049c1d1
--- /dev/null
+++ b/generated/immich/openapi_client/api/notifications_api.py
@@ -0,0 +1,601 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from generated.immich.openapi_client.models.system_config_smtp_dto import SystemConfigSmtpDto
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class NotificationsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_notification_template(
+ self,
+ name: StrictStr,
+ template_dto: TemplateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TemplateResponseDto:
+ """get_notification_template
+
+
+ :param name: (required)
+ :type name: str
+ :param template_dto: (required)
+ :type template_dto: TemplateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_notification_template_serialize(
+ name=name,
+ template_dto=template_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TemplateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_notification_template_with_http_info(
+ self,
+ name: StrictStr,
+ template_dto: TemplateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TemplateResponseDto]:
+ """get_notification_template
+
+
+ :param name: (required)
+ :type name: str
+ :param template_dto: (required)
+ :type template_dto: TemplateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_notification_template_serialize(
+ name=name,
+ template_dto=template_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TemplateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_notification_template_without_preload_content(
+ self,
+ name: StrictStr,
+ template_dto: TemplateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_notification_template
+
+
+ :param name: (required)
+ :type name: str
+ :param template_dto: (required)
+ :type template_dto: TemplateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_notification_template_serialize(
+ name=name,
+ template_dto=template_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TemplateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_notification_template_serialize(
+ self,
+ name,
+ template_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if name is not None:
+ _path_params['name'] = name
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if template_dto is not None:
+ _body_params = template_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/notifications/templates/{name}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def send_test_email(
+ self,
+ system_config_smtp_dto: SystemConfigSmtpDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TestEmailResponseDto:
+ """send_test_email
+
+
+ :param system_config_smtp_dto: (required)
+ :type system_config_smtp_dto: SystemConfigSmtpDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_test_email_serialize(
+ system_config_smtp_dto=system_config_smtp_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TestEmailResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def send_test_email_with_http_info(
+ self,
+ system_config_smtp_dto: SystemConfigSmtpDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TestEmailResponseDto]:
+ """send_test_email
+
+
+ :param system_config_smtp_dto: (required)
+ :type system_config_smtp_dto: SystemConfigSmtpDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_test_email_serialize(
+ system_config_smtp_dto=system_config_smtp_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TestEmailResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def send_test_email_without_preload_content(
+ self,
+ system_config_smtp_dto: SystemConfigSmtpDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """send_test_email
+
+
+ :param system_config_smtp_dto: (required)
+ :type system_config_smtp_dto: SystemConfigSmtpDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_test_email_serialize(
+ system_config_smtp_dto=system_config_smtp_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TestEmailResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _send_test_email_serialize(
+ self,
+ system_config_smtp_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if system_config_smtp_dto is not None:
+ _body_params = system_config_smtp_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/notifications/test-email',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/o_auth_api.py b/generated/immich/openapi_client/api/o_auth_api.py
new file mode 100644
index 0000000..c3ef7e2
--- /dev/null
+++ b/generated/immich/openapi_client/api/o_auth_api.py
@@ -0,0 +1,1333 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from generated.immich.openapi_client.models.login_response_dto import LoginResponseDto
+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.user_admin_response_dto import UserAdminResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class OAuthApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def finish_o_auth(
+ self,
+ o_auth_callback_dto: OAuthCallbackDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LoginResponseDto:
+ """finish_o_auth
+
+
+ :param o_auth_callback_dto: (required)
+ :type o_auth_callback_dto: OAuthCallbackDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._finish_o_auth_serialize(
+ o_auth_callback_dto=o_auth_callback_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LoginResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def finish_o_auth_with_http_info(
+ self,
+ o_auth_callback_dto: OAuthCallbackDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LoginResponseDto]:
+ """finish_o_auth
+
+
+ :param o_auth_callback_dto: (required)
+ :type o_auth_callback_dto: OAuthCallbackDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._finish_o_auth_serialize(
+ o_auth_callback_dto=o_auth_callback_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LoginResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def finish_o_auth_without_preload_content(
+ self,
+ o_auth_callback_dto: OAuthCallbackDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """finish_o_auth
+
+
+ :param o_auth_callback_dto: (required)
+ :type o_auth_callback_dto: OAuthCallbackDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._finish_o_auth_serialize(
+ o_auth_callback_dto=o_auth_callback_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "LoginResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _finish_o_auth_serialize(
+ self,
+ o_auth_callback_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if o_auth_callback_dto is not None:
+ _body_params = o_auth_callback_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/oauth/callback',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def link_o_auth_account(
+ self,
+ o_auth_callback_dto: OAuthCallbackDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """link_o_auth_account
+
+
+ :param o_auth_callback_dto: (required)
+ :type o_auth_callback_dto: OAuthCallbackDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._link_o_auth_account_serialize(
+ o_auth_callback_dto=o_auth_callback_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def link_o_auth_account_with_http_info(
+ self,
+ o_auth_callback_dto: OAuthCallbackDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """link_o_auth_account
+
+
+ :param o_auth_callback_dto: (required)
+ :type o_auth_callback_dto: OAuthCallbackDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._link_o_auth_account_serialize(
+ o_auth_callback_dto=o_auth_callback_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def link_o_auth_account_without_preload_content(
+ self,
+ o_auth_callback_dto: OAuthCallbackDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """link_o_auth_account
+
+
+ :param o_auth_callback_dto: (required)
+ :type o_auth_callback_dto: OAuthCallbackDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._link_o_auth_account_serialize(
+ o_auth_callback_dto=o_auth_callback_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _link_o_auth_account_serialize(
+ self,
+ o_auth_callback_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if o_auth_callback_dto is not None:
+ _body_params = o_auth_callback_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/oauth/link',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def redirect_o_auth_to_mobile(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """redirect_o_auth_to_mobile
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._redirect_o_auth_to_mobile_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def redirect_o_auth_to_mobile_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """redirect_o_auth_to_mobile
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._redirect_o_auth_to_mobile_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def redirect_o_auth_to_mobile_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """redirect_o_auth_to_mobile
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._redirect_o_auth_to_mobile_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _redirect_o_auth_to_mobile_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/oauth/mobile-redirect',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def start_o_auth(
+ self,
+ o_auth_config_dto: OAuthConfigDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> OAuthAuthorizeResponseDto:
+ """start_o_auth
+
+
+ :param o_auth_config_dto: (required)
+ :type o_auth_config_dto: OAuthConfigDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._start_o_auth_serialize(
+ o_auth_config_dto=o_auth_config_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "OAuthAuthorizeResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def start_o_auth_with_http_info(
+ self,
+ o_auth_config_dto: OAuthConfigDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[OAuthAuthorizeResponseDto]:
+ """start_o_auth
+
+
+ :param o_auth_config_dto: (required)
+ :type o_auth_config_dto: OAuthConfigDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._start_o_auth_serialize(
+ o_auth_config_dto=o_auth_config_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "OAuthAuthorizeResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def start_o_auth_without_preload_content(
+ self,
+ o_auth_config_dto: OAuthConfigDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """start_o_auth
+
+
+ :param o_auth_config_dto: (required)
+ :type o_auth_config_dto: OAuthConfigDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._start_o_auth_serialize(
+ o_auth_config_dto=o_auth_config_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "OAuthAuthorizeResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _start_o_auth_serialize(
+ self,
+ o_auth_config_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if o_auth_config_dto is not None:
+ _body_params = o_auth_config_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/oauth/authorize',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def unlink_o_auth_account(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """unlink_o_auth_account
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._unlink_o_auth_account_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def unlink_o_auth_account_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """unlink_o_auth_account
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._unlink_o_auth_account_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def unlink_o_auth_account_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """unlink_o_auth_account
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._unlink_o_auth_account_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _unlink_o_auth_account_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/oauth/unlink',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/partners_api.py b/generated/immich/openapi_client/api/partners_api.py
new file mode 100644
index 0000000..fac76ce
--- /dev/null
+++ b/generated/immich/openapi_client/api/partners_api.py
@@ -0,0 +1,1103 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List
+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.update_partner_dto import UpdatePartnerDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class PartnersApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_partner(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PartnerResponseDto:
+ """create_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_partner_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "PartnerResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_partner_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PartnerResponseDto]:
+ """create_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_partner_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "PartnerResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_partner_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_partner_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "PartnerResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_partner_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/partners/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_partners(
+ self,
+ direction: PartnerDirection,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[PartnerResponseDto]:
+ """get_partners
+
+
+ :param direction: (required)
+ :type direction: PartnerDirection
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_partners_serialize(
+ direction=direction,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PartnerResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_partners_with_http_info(
+ self,
+ direction: PartnerDirection,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[PartnerResponseDto]]:
+ """get_partners
+
+
+ :param direction: (required)
+ :type direction: PartnerDirection
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_partners_serialize(
+ direction=direction,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PartnerResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_partners_without_preload_content(
+ self,
+ direction: PartnerDirection,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_partners
+
+
+ :param direction: (required)
+ :type direction: PartnerDirection
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_partners_serialize(
+ direction=direction,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PartnerResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_partners_serialize(
+ self,
+ direction,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if direction is not None:
+
+ _query_params.append(('direction', direction.value))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/partners',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def remove_partner(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """remove_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_partner_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def remove_partner_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """remove_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_partner_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def remove_partner_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """remove_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_partner_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_partner_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/partners/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_partner(
+ self,
+ id: StrictStr,
+ update_partner_dto: UpdatePartnerDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PartnerResponseDto:
+ """update_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param update_partner_dto: (required)
+ :type update_partner_dto: UpdatePartnerDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_partner_serialize(
+ id=id,
+ update_partner_dto=update_partner_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PartnerResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_partner_with_http_info(
+ self,
+ id: StrictStr,
+ update_partner_dto: UpdatePartnerDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PartnerResponseDto]:
+ """update_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param update_partner_dto: (required)
+ :type update_partner_dto: UpdatePartnerDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_partner_serialize(
+ id=id,
+ update_partner_dto=update_partner_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PartnerResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_partner_without_preload_content(
+ self,
+ id: StrictStr,
+ update_partner_dto: UpdatePartnerDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_partner
+
+
+ :param id: (required)
+ :type id: str
+ :param update_partner_dto: (required)
+ :type update_partner_dto: UpdatePartnerDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_partner_serialize(
+ id=id,
+ update_partner_dto=update_partner_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PartnerResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_partner_serialize(
+ self,
+ id,
+ update_partner_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_partner_dto is not None:
+ _body_params = update_partner_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/partners/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/people_api.py b/generated/immich/openapi_client/api/people_api.py
new file mode 100644
index 0000000..0cb0678
--- /dev/null
+++ b/generated/immich/openapi_client/api/people_api.py
@@ -0,0 +1,2567 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictBool, StrictBytes, StrictStr
+from typing import List, Optional, Tuple, Union
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.asset_face_update_dto import AssetFaceUpdateDto
+from generated.immich.openapi_client.models.bulk_id_response_dto import BulkIdResponseDto
+from generated.immich.openapi_client.models.merge_person_dto import MergePersonDto
+from generated.immich.openapi_client.models.people_response_dto import PeopleResponseDto
+from generated.immich.openapi_client.models.people_update_dto import PeopleUpdateDto
+from generated.immich.openapi_client.models.person_create_dto import PersonCreateDto
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class PeopleApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_person(
+ self,
+ person_create_dto: PersonCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PersonResponseDto:
+ """create_person
+
+
+ :param person_create_dto: (required)
+ :type person_create_dto: PersonCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_person_serialize(
+ person_create_dto=person_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_person_with_http_info(
+ self,
+ person_create_dto: PersonCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PersonResponseDto]:
+ """create_person
+
+
+ :param person_create_dto: (required)
+ :type person_create_dto: PersonCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_person_serialize(
+ person_create_dto=person_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_person_without_preload_content(
+ self,
+ person_create_dto: PersonCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_person
+
+
+ :param person_create_dto: (required)
+ :type person_create_dto: PersonCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_person_serialize(
+ person_create_dto=person_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_person_serialize(
+ self,
+ person_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if person_create_dto is not None:
+ _body_params = person_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/people',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_all_people(
+ self,
+ closest_asset_id: Optional[StrictStr] = None,
+ closest_person_id: Optional[StrictStr] = None,
+ page: Annotated[Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]], Field(description="Page number for pagination")] = None,
+ size: Annotated[Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=1)], Annotated[int, Field(le=1000, strict=True, ge=1)]]], Field(description="Number of items per page")] = None,
+ with_hidden: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PeopleResponseDto:
+ """get_all_people
+
+
+ :param closest_asset_id:
+ :type closest_asset_id: str
+ :param closest_person_id:
+ :type closest_person_id: str
+ :param page: Page number for pagination
+ :type page: float
+ :param size: Number of items per page
+ :type size: float
+ :param with_hidden:
+ :type with_hidden: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_people_serialize(
+ closest_asset_id=closest_asset_id,
+ closest_person_id=closest_person_id,
+ page=page,
+ size=size,
+ with_hidden=with_hidden,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PeopleResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_all_people_with_http_info(
+ self,
+ closest_asset_id: Optional[StrictStr] = None,
+ closest_person_id: Optional[StrictStr] = None,
+ page: Annotated[Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]], Field(description="Page number for pagination")] = None,
+ size: Annotated[Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=1)], Annotated[int, Field(le=1000, strict=True, ge=1)]]], Field(description="Number of items per page")] = None,
+ with_hidden: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PeopleResponseDto]:
+ """get_all_people
+
+
+ :param closest_asset_id:
+ :type closest_asset_id: str
+ :param closest_person_id:
+ :type closest_person_id: str
+ :param page: Page number for pagination
+ :type page: float
+ :param size: Number of items per page
+ :type size: float
+ :param with_hidden:
+ :type with_hidden: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_people_serialize(
+ closest_asset_id=closest_asset_id,
+ closest_person_id=closest_person_id,
+ page=page,
+ size=size,
+ with_hidden=with_hidden,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PeopleResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_all_people_without_preload_content(
+ self,
+ closest_asset_id: Optional[StrictStr] = None,
+ closest_person_id: Optional[StrictStr] = None,
+ page: Annotated[Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]], Field(description="Page number for pagination")] = None,
+ size: Annotated[Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=1)], Annotated[int, Field(le=1000, strict=True, ge=1)]]], Field(description="Number of items per page")] = None,
+ with_hidden: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_all_people
+
+
+ :param closest_asset_id:
+ :type closest_asset_id: str
+ :param closest_person_id:
+ :type closest_person_id: str
+ :param page: Page number for pagination
+ :type page: float
+ :param size: Number of items per page
+ :type size: float
+ :param with_hidden:
+ :type with_hidden: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_people_serialize(
+ closest_asset_id=closest_asset_id,
+ closest_person_id=closest_person_id,
+ page=page,
+ size=size,
+ with_hidden=with_hidden,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PeopleResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_all_people_serialize(
+ self,
+ closest_asset_id,
+ closest_person_id,
+ page,
+ size,
+ with_hidden,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if closest_asset_id is not None:
+
+ _query_params.append(('closestAssetId', closest_asset_id))
+
+ if closest_person_id is not None:
+
+ _query_params.append(('closestPersonId', closest_person_id))
+
+ if page is not None:
+
+ _query_params.append(('page', page))
+
+ if size is not None:
+
+ _query_params.append(('size', size))
+
+ if with_hidden is not None:
+
+ _query_params.append(('withHidden', with_hidden))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/people',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_person(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PersonResponseDto:
+ """get_person
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_person_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PersonResponseDto]:
+ """get_person
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_person_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_person
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_person_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/people/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_person_statistics(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PersonStatisticsResponseDto:
+ """get_person_statistics
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_statistics_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_person_statistics_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PersonStatisticsResponseDto]:
+ """get_person_statistics
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_statistics_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_person_statistics_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_person_statistics
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_statistics_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonStatisticsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_person_statistics_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/people/{id}/statistics',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_person_thumbnail(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> bytearray:
+ """get_person_thumbnail
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_thumbnail_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_person_thumbnail_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[bytearray]:
+ """get_person_thumbnail
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_thumbnail_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_person_thumbnail_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_person_thumbnail
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_person_thumbnail_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_person_thumbnail_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/octet-stream'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/people/{id}/thumbnail',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def merge_person(
+ self,
+ id: StrictStr,
+ merge_person_dto: MergePersonDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """merge_person
+
+
+ :param id: (required)
+ :type id: str
+ :param merge_person_dto: (required)
+ :type merge_person_dto: MergePersonDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._merge_person_serialize(
+ id=id,
+ merge_person_dto=merge_person_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def merge_person_with_http_info(
+ self,
+ id: StrictStr,
+ merge_person_dto: MergePersonDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """merge_person
+
+
+ :param id: (required)
+ :type id: str
+ :param merge_person_dto: (required)
+ :type merge_person_dto: MergePersonDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._merge_person_serialize(
+ id=id,
+ merge_person_dto=merge_person_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def merge_person_without_preload_content(
+ self,
+ id: StrictStr,
+ merge_person_dto: MergePersonDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """merge_person
+
+
+ :param id: (required)
+ :type id: str
+ :param merge_person_dto: (required)
+ :type merge_person_dto: MergePersonDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._merge_person_serialize(
+ id=id,
+ merge_person_dto=merge_person_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _merge_person_serialize(
+ self,
+ id,
+ merge_person_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if merge_person_dto is not None:
+ _body_params = merge_person_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/people/{id}/merge',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def reassign_faces(
+ self,
+ id: StrictStr,
+ asset_face_update_dto: AssetFaceUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[PersonResponseDto]:
+ """reassign_faces
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_face_update_dto: (required)
+ :type asset_face_update_dto: AssetFaceUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reassign_faces_serialize(
+ id=id,
+ asset_face_update_dto=asset_face_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PersonResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def reassign_faces_with_http_info(
+ self,
+ id: StrictStr,
+ asset_face_update_dto: AssetFaceUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[PersonResponseDto]]:
+ """reassign_faces
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_face_update_dto: (required)
+ :type asset_face_update_dto: AssetFaceUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reassign_faces_serialize(
+ id=id,
+ asset_face_update_dto=asset_face_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PersonResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def reassign_faces_without_preload_content(
+ self,
+ id: StrictStr,
+ asset_face_update_dto: AssetFaceUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """reassign_faces
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_face_update_dto: (required)
+ :type asset_face_update_dto: AssetFaceUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._reassign_faces_serialize(
+ id=id,
+ asset_face_update_dto=asset_face_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PersonResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _reassign_faces_serialize(
+ self,
+ id,
+ asset_face_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_face_update_dto is not None:
+ _body_params = asset_face_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/people/{id}/reassign',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_people(
+ self,
+ people_update_dto: PeopleUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """update_people
+
+
+ :param people_update_dto: (required)
+ :type people_update_dto: PeopleUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_people_serialize(
+ people_update_dto=people_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_people_with_http_info(
+ self,
+ people_update_dto: PeopleUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """update_people
+
+
+ :param people_update_dto: (required)
+ :type people_update_dto: PeopleUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_people_serialize(
+ people_update_dto=people_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_people_without_preload_content(
+ self,
+ people_update_dto: PeopleUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_people
+
+
+ :param people_update_dto: (required)
+ :type people_update_dto: PeopleUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_people_serialize(
+ people_update_dto=people_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_people_serialize(
+ self,
+ people_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if people_update_dto is not None:
+ _body_params = people_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/people',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_person(
+ self,
+ id: StrictStr,
+ person_update_dto: PersonUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PersonResponseDto:
+ """update_person
+
+
+ :param id: (required)
+ :type id: str
+ :param person_update_dto: (required)
+ :type person_update_dto: PersonUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_person_serialize(
+ id=id,
+ person_update_dto=person_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_person_with_http_info(
+ self,
+ id: StrictStr,
+ person_update_dto: PersonUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PersonResponseDto]:
+ """update_person
+
+
+ :param id: (required)
+ :type id: str
+ :param person_update_dto: (required)
+ :type person_update_dto: PersonUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_person_serialize(
+ id=id,
+ person_update_dto=person_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_person_without_preload_content(
+ self,
+ id: StrictStr,
+ person_update_dto: PersonUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_person
+
+
+ :param id: (required)
+ :type id: str
+ :param person_update_dto: (required)
+ :type person_update_dto: PersonUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_person_serialize(
+ id=id,
+ person_update_dto=person_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PersonResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_person_serialize(
+ self,
+ id,
+ person_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if person_update_dto is not None:
+ _body_params = person_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/people/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/search_api.py b/generated/immich/openapi_client/api/search_api.py
new file mode 100644
index 0000000..be14575
--- /dev/null
+++ b/generated/immich/openapi_client/api/search_api.py
@@ -0,0 +1,2244 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictBool, StrictStr
+from typing import List, Optional
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.models.metadata_search_dto import MetadataSearchDto
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.models.places_response_dto import PlacesResponseDto
+from generated.immich.openapi_client.models.random_search_dto import RandomSearchDto
+from generated.immich.openapi_client.models.search_explore_response_dto import SearchExploreResponseDto
+from generated.immich.openapi_client.models.search_response_dto import SearchResponseDto
+from generated.immich.openapi_client.models.search_suggestion_type import SearchSuggestionType
+from generated.immich.openapi_client.models.smart_search_dto import SmartSearchDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class SearchApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_assets_by_city(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetResponseDto]:
+ """get_assets_by_city
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_assets_by_city_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_assets_by_city_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetResponseDto]]:
+ """get_assets_by_city
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_assets_by_city_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_assets_by_city_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_assets_by_city
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_assets_by_city_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_assets_by_city_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/search/cities',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_explore_data(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[SearchExploreResponseDto]:
+ """get_explore_data
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_explore_data_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SearchExploreResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_explore_data_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[SearchExploreResponseDto]]:
+ """get_explore_data
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_explore_data_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SearchExploreResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_explore_data_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_explore_data
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_explore_data_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SearchExploreResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_explore_data_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/search/explore',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_search_suggestions(
+ self,
+ type: SearchSuggestionType,
+ country: Optional[StrictStr] = None,
+ include_null: Annotated[Optional[StrictBool], Field(description="This property was added in v111.0.0")] = None,
+ make: Optional[StrictStr] = None,
+ model: Optional[StrictStr] = None,
+ state: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[str]:
+ """get_search_suggestions
+
+
+ :param type: (required)
+ :type type: SearchSuggestionType
+ :param country:
+ :type country: str
+ :param include_null: This property was added in v111.0.0
+ :type include_null: bool
+ :param make:
+ :type make: str
+ :param model:
+ :type model: str
+ :param state:
+ :type state: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_search_suggestions_serialize(
+ type=type,
+ country=country,
+ include_null=include_null,
+ make=make,
+ model=model,
+ state=state,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_search_suggestions_with_http_info(
+ self,
+ type: SearchSuggestionType,
+ country: Optional[StrictStr] = None,
+ include_null: Annotated[Optional[StrictBool], Field(description="This property was added in v111.0.0")] = None,
+ make: Optional[StrictStr] = None,
+ model: Optional[StrictStr] = None,
+ state: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[str]]:
+ """get_search_suggestions
+
+
+ :param type: (required)
+ :type type: SearchSuggestionType
+ :param country:
+ :type country: str
+ :param include_null: This property was added in v111.0.0
+ :type include_null: bool
+ :param make:
+ :type make: str
+ :param model:
+ :type model: str
+ :param state:
+ :type state: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_search_suggestions_serialize(
+ type=type,
+ country=country,
+ include_null=include_null,
+ make=make,
+ model=model,
+ state=state,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_search_suggestions_without_preload_content(
+ self,
+ type: SearchSuggestionType,
+ country: Optional[StrictStr] = None,
+ include_null: Annotated[Optional[StrictBool], Field(description="This property was added in v111.0.0")] = None,
+ make: Optional[StrictStr] = None,
+ model: Optional[StrictStr] = None,
+ state: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_search_suggestions
+
+
+ :param type: (required)
+ :type type: SearchSuggestionType
+ :param country:
+ :type country: str
+ :param include_null: This property was added in v111.0.0
+ :type include_null: bool
+ :param make:
+ :type make: str
+ :param model:
+ :type model: str
+ :param state:
+ :type state: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_search_suggestions_serialize(
+ type=type,
+ country=country,
+ include_null=include_null,
+ make=make,
+ model=model,
+ state=state,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_search_suggestions_serialize(
+ self,
+ type,
+ country,
+ include_null,
+ make,
+ model,
+ state,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if country is not None:
+
+ _query_params.append(('country', country))
+
+ if include_null is not None:
+
+ _query_params.append(('includeNull', include_null))
+
+ if make is not None:
+
+ _query_params.append(('make', make))
+
+ if model is not None:
+
+ _query_params.append(('model', model))
+
+ if state is not None:
+
+ _query_params.append(('state', state))
+
+ if type is not None:
+
+ _query_params.append(('type', type.value))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/search/suggestions',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_assets(
+ self,
+ metadata_search_dto: MetadataSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SearchResponseDto:
+ """search_assets
+
+
+ :param metadata_search_dto: (required)
+ :type metadata_search_dto: MetadataSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_assets_serialize(
+ metadata_search_dto=metadata_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SearchResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_assets_with_http_info(
+ self,
+ metadata_search_dto: MetadataSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SearchResponseDto]:
+ """search_assets
+
+
+ :param metadata_search_dto: (required)
+ :type metadata_search_dto: MetadataSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_assets_serialize(
+ metadata_search_dto=metadata_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SearchResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_assets_without_preload_content(
+ self,
+ metadata_search_dto: MetadataSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_assets
+
+
+ :param metadata_search_dto: (required)
+ :type metadata_search_dto: MetadataSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_assets_serialize(
+ metadata_search_dto=metadata_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SearchResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_assets_serialize(
+ self,
+ metadata_search_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if metadata_search_dto is not None:
+ _body_params = metadata_search_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/search/metadata',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_person(
+ self,
+ name: StrictStr,
+ with_hidden: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[PersonResponseDto]:
+ """search_person
+
+
+ :param name: (required)
+ :type name: str
+ :param with_hidden:
+ :type with_hidden: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_person_serialize(
+ name=name,
+ with_hidden=with_hidden,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PersonResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_person_with_http_info(
+ self,
+ name: StrictStr,
+ with_hidden: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[PersonResponseDto]]:
+ """search_person
+
+
+ :param name: (required)
+ :type name: str
+ :param with_hidden:
+ :type with_hidden: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_person_serialize(
+ name=name,
+ with_hidden=with_hidden,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PersonResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_person_without_preload_content(
+ self,
+ name: StrictStr,
+ with_hidden: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_person
+
+
+ :param name: (required)
+ :type name: str
+ :param with_hidden:
+ :type with_hidden: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_person_serialize(
+ name=name,
+ with_hidden=with_hidden,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PersonResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_person_serialize(
+ self,
+ name,
+ with_hidden,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if name is not None:
+
+ _query_params.append(('name', name))
+
+ if with_hidden is not None:
+
+ _query_params.append(('withHidden', with_hidden))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/search/person',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_places(
+ self,
+ name: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[PlacesResponseDto]:
+ """search_places
+
+
+ :param name: (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_places_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PlacesResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_places_with_http_info(
+ self,
+ name: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[PlacesResponseDto]]:
+ """search_places
+
+
+ :param name: (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_places_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PlacesResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_places_without_preload_content(
+ self,
+ name: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_places
+
+
+ :param name: (required)
+ :type name: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_places_serialize(
+ name=name,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[PlacesResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_places_serialize(
+ self,
+ name,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if name is not None:
+
+ _query_params.append(('name', name))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/search/places',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_random(
+ self,
+ random_search_dto: RandomSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetResponseDto]:
+ """search_random
+
+
+ :param random_search_dto: (required)
+ :type random_search_dto: RandomSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_random_serialize(
+ random_search_dto=random_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_random_with_http_info(
+ self,
+ random_search_dto: RandomSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetResponseDto]]:
+ """search_random
+
+
+ :param random_search_dto: (required)
+ :type random_search_dto: RandomSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_random_serialize(
+ random_search_dto=random_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_random_without_preload_content(
+ self,
+ random_search_dto: RandomSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_random
+
+
+ :param random_search_dto: (required)
+ :type random_search_dto: RandomSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_random_serialize(
+ random_search_dto=random_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_random_serialize(
+ self,
+ random_search_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if random_search_dto is not None:
+ _body_params = random_search_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/search/random',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_smart(
+ self,
+ smart_search_dto: SmartSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SearchResponseDto:
+ """search_smart
+
+
+ :param smart_search_dto: (required)
+ :type smart_search_dto: SmartSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_smart_serialize(
+ smart_search_dto=smart_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SearchResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_smart_with_http_info(
+ self,
+ smart_search_dto: SmartSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SearchResponseDto]:
+ """search_smart
+
+
+ :param smart_search_dto: (required)
+ :type smart_search_dto: SmartSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_smart_serialize(
+ smart_search_dto=smart_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SearchResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_smart_without_preload_content(
+ self,
+ smart_search_dto: SmartSearchDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_smart
+
+
+ :param smart_search_dto: (required)
+ :type smart_search_dto: SmartSearchDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_smart_serialize(
+ smart_search_dto=smart_search_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SearchResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_smart_serialize(
+ self,
+ smart_search_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if smart_search_dto is not None:
+ _body_params = smart_search_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/search/smart',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/server_api.py b/generated/immich/openapi_client/api/server_api.py
new file mode 100644
index 0000000..5df43e0
--- /dev/null
+++ b/generated/immich/openapi_client/api/server_api.py
@@ -0,0 +1,3236 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from typing import List
+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.server_about_response_dto import ServerAboutResponseDto
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class ServerApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def delete_server_license(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_server_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_server_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_server_license_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_server_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_server_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_server_license_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_server_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_server_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_server_license_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/server/license',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_about_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerAboutResponseDto:
+ """get_about_info
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_about_info_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerAboutResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_about_info_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerAboutResponseDto]:
+ """get_about_info
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_about_info_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerAboutResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_about_info_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_about_info
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_about_info_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerAboutResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_about_info_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/about',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_server_config(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerConfigDto:
+ """get_server_config
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_config_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_server_config_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerConfigDto]:
+ """get_server_config
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_config_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_server_config_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_server_config
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_config_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_server_config_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/config',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_server_features(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerFeaturesDto:
+ """get_server_features
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_features_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerFeaturesDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_server_features_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerFeaturesDto]:
+ """get_server_features
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_features_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerFeaturesDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_server_features_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_server_features
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_features_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerFeaturesDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_server_features_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/features',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_server_license(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LicenseResponseDto:
+ """get_server_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ '404': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_server_license_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LicenseResponseDto]:
+ """get_server_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ '404': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_server_license_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_server_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ '404': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_server_license_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/license',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_server_statistics(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerStatsResponseDto:
+ """get_server_statistics
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_statistics_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_server_statistics_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerStatsResponseDto]:
+ """get_server_statistics
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_statistics_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_server_statistics_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_server_statistics
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_statistics_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerStatsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_server_statistics_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/statistics',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_server_version(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerVersionResponseDto:
+ """get_server_version
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_version_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerVersionResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_server_version_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerVersionResponseDto]:
+ """get_server_version
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_version_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerVersionResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_server_version_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_server_version
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_server_version_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerVersionResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_server_version_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/version',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_storage(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerStorageResponseDto:
+ """get_storage
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_storage_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerStorageResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_storage_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerStorageResponseDto]:
+ """get_storage
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_storage_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerStorageResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_storage_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_storage
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_storage_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerStorageResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_storage_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/storage',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_supported_media_types(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerMediaTypesResponseDto:
+ """get_supported_media_types
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_supported_media_types_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerMediaTypesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_supported_media_types_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerMediaTypesResponseDto]:
+ """get_supported_media_types
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_supported_media_types_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerMediaTypesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_supported_media_types_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_supported_media_types
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_supported_media_types_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerMediaTypesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_supported_media_types_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/media-types',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_theme(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerThemeDto:
+ """get_theme
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_theme_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerThemeDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_theme_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerThemeDto]:
+ """get_theme
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_theme_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerThemeDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_theme_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_theme
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_theme_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerThemeDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_theme_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/theme',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_version_history(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[ServerVersionHistoryResponseDto]:
+ """get_version_history
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_version_history_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[ServerVersionHistoryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_version_history_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[ServerVersionHistoryResponseDto]]:
+ """get_version_history
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_version_history_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[ServerVersionHistoryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_version_history_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_version_history
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_version_history_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[ServerVersionHistoryResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_version_history_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/version-history',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def ping_server(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServerPingResponse:
+ """ping_server
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._ping_server_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerPingResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def ping_server_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServerPingResponse]:
+ """ping_server
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._ping_server_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerPingResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def ping_server_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """ping_server
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._ping_server_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServerPingResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _ping_server_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/server/ping',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def set_server_license(
+ self,
+ license_key_dto: LicenseKeyDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LicenseResponseDto:
+ """set_server_license
+
+
+ :param license_key_dto: (required)
+ :type license_key_dto: LicenseKeyDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._set_server_license_serialize(
+ license_key_dto=license_key_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def set_server_license_with_http_info(
+ self,
+ license_key_dto: LicenseKeyDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LicenseResponseDto]:
+ """set_server_license
+
+
+ :param license_key_dto: (required)
+ :type license_key_dto: LicenseKeyDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._set_server_license_serialize(
+ license_key_dto=license_key_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def set_server_license_without_preload_content(
+ self,
+ license_key_dto: LicenseKeyDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """set_server_license
+
+
+ :param license_key_dto: (required)
+ :type license_key_dto: LicenseKeyDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._set_server_license_serialize(
+ license_key_dto=license_key_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _set_server_license_serialize(
+ self,
+ license_key_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if license_key_dto is not None:
+ _body_params = license_key_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/server/license',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/sessions_api.py b/generated/immich/openapi_client/api/sessions_api.py
new file mode 100644
index 0000000..be1c640
--- /dev/null
+++ b/generated/immich/openapi_client/api/sessions_api.py
@@ -0,0 +1,774 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List
+from generated.immich.openapi_client.models.session_response_dto import SessionResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class SessionsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def delete_all_sessions(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_all_sessions
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_all_sessions_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_all_sessions_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_all_sessions
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_all_sessions_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_all_sessions_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_all_sessions
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_all_sessions_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_all_sessions_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/sessions',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_session(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_session
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_session_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_session_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_session
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_session_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_session_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_session
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_session_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_session_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/sessions/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_sessions(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[SessionResponseDto]:
+ """get_sessions
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sessions_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SessionResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_sessions_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[SessionResponseDto]]:
+ """get_sessions
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sessions_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SessionResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_sessions_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_sessions
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sessions_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SessionResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_sessions_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/sessions',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/shared_links_api.py b/generated/immich/openapi_client/api/shared_links_api.py
new file mode 100644
index 0000000..4cdca95
--- /dev/null
+++ b/generated/immich/openapi_client/api/shared_links_api.py
@@ -0,0 +1,2284 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List, Optional
+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.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_response_dto import SharedLinkResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class SharedLinksApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def add_shared_link_assets(
+ self,
+ id: StrictStr,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetIdsResponseDto]:
+ """add_shared_link_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_shared_link_assets_serialize(
+ id=id,
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetIdsResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def add_shared_link_assets_with_http_info(
+ self,
+ id: StrictStr,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetIdsResponseDto]]:
+ """add_shared_link_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_shared_link_assets_serialize(
+ id=id,
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetIdsResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def add_shared_link_assets_without_preload_content(
+ self,
+ id: StrictStr,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """add_shared_link_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._add_shared_link_assets_serialize(
+ id=id,
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetIdsResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _add_shared_link_assets_serialize(
+ self,
+ id,
+ asset_ids_dto,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_ids_dto is not None:
+ _body_params = asset_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/shared-links/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def create_shared_link(
+ self,
+ shared_link_create_dto: SharedLinkCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SharedLinkResponseDto:
+ """create_shared_link
+
+
+ :param shared_link_create_dto: (required)
+ :type shared_link_create_dto: SharedLinkCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_shared_link_serialize(
+ shared_link_create_dto=shared_link_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_shared_link_with_http_info(
+ self,
+ shared_link_create_dto: SharedLinkCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SharedLinkResponseDto]:
+ """create_shared_link
+
+
+ :param shared_link_create_dto: (required)
+ :type shared_link_create_dto: SharedLinkCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_shared_link_serialize(
+ shared_link_create_dto=shared_link_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_shared_link_without_preload_content(
+ self,
+ shared_link_create_dto: SharedLinkCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_shared_link
+
+
+ :param shared_link_create_dto: (required)
+ :type shared_link_create_dto: SharedLinkCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_shared_link_serialize(
+ shared_link_create_dto=shared_link_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_shared_link_serialize(
+ self,
+ shared_link_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if shared_link_create_dto is not None:
+ _body_params = shared_link_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/shared-links',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_all_shared_links(
+ self,
+ album_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[SharedLinkResponseDto]:
+ """get_all_shared_links
+
+
+ :param album_id:
+ :type album_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_shared_links_serialize(
+ album_id=album_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SharedLinkResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_all_shared_links_with_http_info(
+ self,
+ album_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[SharedLinkResponseDto]]:
+ """get_all_shared_links
+
+
+ :param album_id:
+ :type album_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_shared_links_serialize(
+ album_id=album_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SharedLinkResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_all_shared_links_without_preload_content(
+ self,
+ album_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_all_shared_links
+
+
+ :param album_id:
+ :type album_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_shared_links_serialize(
+ album_id=album_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SharedLinkResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_all_shared_links_serialize(
+ self,
+ album_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if album_id is not None:
+
+ _query_params.append(('albumId', album_id))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/shared-links',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_my_shared_link(
+ self,
+ key: Optional[StrictStr] = None,
+ password: Optional[StrictStr] = None,
+ token: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SharedLinkResponseDto:
+ """get_my_shared_link
+
+
+ :param key:
+ :type key: str
+ :param password:
+ :type password: str
+ :param token:
+ :type token: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_shared_link_serialize(
+ key=key,
+ password=password,
+ token=token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_my_shared_link_with_http_info(
+ self,
+ key: Optional[StrictStr] = None,
+ password: Optional[StrictStr] = None,
+ token: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SharedLinkResponseDto]:
+ """get_my_shared_link
+
+
+ :param key:
+ :type key: str
+ :param password:
+ :type password: str
+ :param token:
+ :type token: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_shared_link_serialize(
+ key=key,
+ password=password,
+ token=token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_my_shared_link_without_preload_content(
+ self,
+ key: Optional[StrictStr] = None,
+ password: Optional[StrictStr] = None,
+ token: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_my_shared_link
+
+
+ :param key:
+ :type key: str
+ :param password:
+ :type password: str
+ :param token:
+ :type token: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_shared_link_serialize(
+ key=key,
+ password=password,
+ token=token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_my_shared_link_serialize(
+ self,
+ key,
+ password,
+ token,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ if password is not None:
+
+ _query_params.append(('password', password))
+
+ if token is not None:
+
+ _query_params.append(('token', token))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/shared-links/me',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_shared_link_by_id(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SharedLinkResponseDto:
+ """get_shared_link_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_shared_link_by_id_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_shared_link_by_id_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SharedLinkResponseDto]:
+ """get_shared_link_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_shared_link_by_id_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_shared_link_by_id_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_shared_link_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_shared_link_by_id_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_shared_link_by_id_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/shared-links/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def remove_shared_link(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """remove_shared_link
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_shared_link_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def remove_shared_link_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """remove_shared_link
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_shared_link_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def remove_shared_link_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """remove_shared_link
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_shared_link_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_shared_link_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/shared-links/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def remove_shared_link_assets(
+ self,
+ id: StrictStr,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetIdsResponseDto]:
+ """remove_shared_link_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_shared_link_assets_serialize(
+ id=id,
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetIdsResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def remove_shared_link_assets_with_http_info(
+ self,
+ id: StrictStr,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetIdsResponseDto]]:
+ """remove_shared_link_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_shared_link_assets_serialize(
+ id=id,
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetIdsResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def remove_shared_link_assets_without_preload_content(
+ self,
+ id: StrictStr,
+ asset_ids_dto: AssetIdsDto,
+ key: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """remove_shared_link_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param asset_ids_dto: (required)
+ :type asset_ids_dto: AssetIdsDto
+ :param key:
+ :type key: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._remove_shared_link_assets_serialize(
+ id=id,
+ asset_ids_dto=asset_ids_dto,
+ key=key,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetIdsResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_shared_link_assets_serialize(
+ self,
+ id,
+ asset_ids_dto,
+ key,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_ids_dto is not None:
+ _body_params = asset_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/shared-links/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_shared_link(
+ self,
+ id: StrictStr,
+ shared_link_edit_dto: SharedLinkEditDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SharedLinkResponseDto:
+ """update_shared_link
+
+
+ :param id: (required)
+ :type id: str
+ :param shared_link_edit_dto: (required)
+ :type shared_link_edit_dto: SharedLinkEditDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_shared_link_serialize(
+ id=id,
+ shared_link_edit_dto=shared_link_edit_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_shared_link_with_http_info(
+ self,
+ id: StrictStr,
+ shared_link_edit_dto: SharedLinkEditDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SharedLinkResponseDto]:
+ """update_shared_link
+
+
+ :param id: (required)
+ :type id: str
+ :param shared_link_edit_dto: (required)
+ :type shared_link_edit_dto: SharedLinkEditDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_shared_link_serialize(
+ id=id,
+ shared_link_edit_dto=shared_link_edit_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_shared_link_without_preload_content(
+ self,
+ id: StrictStr,
+ shared_link_edit_dto: SharedLinkEditDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_shared_link
+
+
+ :param id: (required)
+ :type id: str
+ :param shared_link_edit_dto: (required)
+ :type shared_link_edit_dto: SharedLinkEditDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_shared_link_serialize(
+ id=id,
+ shared_link_edit_dto=shared_link_edit_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SharedLinkResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_shared_link_serialize(
+ self,
+ id,
+ shared_link_edit_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if shared_link_edit_dto is not None:
+ _body_params = shared_link_edit_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/shared-links/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/stacks_api.py b/generated/immich/openapi_client/api/stacks_api.py
new file mode 100644
index 0000000..cc0b326
--- /dev/null
+++ b/generated/immich/openapi_client/api/stacks_api.py
@@ -0,0 +1,1643 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List, Optional
+from generated.immich.openapi_client.models.bulk_ids_dto import BulkIdsDto
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class StacksApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_stack(
+ self,
+ stack_create_dto: StackCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> StackResponseDto:
+ """create_stack
+
+
+ :param stack_create_dto: (required)
+ :type stack_create_dto: StackCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_stack_serialize(
+ stack_create_dto=stack_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_stack_with_http_info(
+ self,
+ stack_create_dto: StackCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[StackResponseDto]:
+ """create_stack
+
+
+ :param stack_create_dto: (required)
+ :type stack_create_dto: StackCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_stack_serialize(
+ stack_create_dto=stack_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_stack_without_preload_content(
+ self,
+ stack_create_dto: StackCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_stack
+
+
+ :param stack_create_dto: (required)
+ :type stack_create_dto: StackCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_stack_serialize(
+ stack_create_dto=stack_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_stack_serialize(
+ self,
+ stack_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if stack_create_dto is not None:
+ _body_params = stack_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/stacks',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_stack(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_stack_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_stack_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_stack_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_stack_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_stack_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_stack_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/stacks/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_stacks(
+ self,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_stacks
+
+
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_stacks_serialize(
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_stacks_with_http_info(
+ self,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_stacks
+
+
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_stacks_serialize(
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_stacks_without_preload_content(
+ self,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_stacks
+
+
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_stacks_serialize(
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_stacks_serialize(
+ self,
+ bulk_ids_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/stacks',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_stack(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> StackResponseDto:
+ """get_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_stack_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_stack_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[StackResponseDto]:
+ """get_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_stack_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_stack_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_stack_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_stack_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/stacks/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_stacks(
+ self,
+ primary_asset_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[StackResponseDto]:
+ """search_stacks
+
+
+ :param primary_asset_id:
+ :type primary_asset_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_stacks_serialize(
+ primary_asset_id=primary_asset_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[StackResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_stacks_with_http_info(
+ self,
+ primary_asset_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[StackResponseDto]]:
+ """search_stacks
+
+
+ :param primary_asset_id:
+ :type primary_asset_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_stacks_serialize(
+ primary_asset_id=primary_asset_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[StackResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_stacks_without_preload_content(
+ self,
+ primary_asset_id: Optional[StrictStr] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_stacks
+
+
+ :param primary_asset_id:
+ :type primary_asset_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_stacks_serialize(
+ primary_asset_id=primary_asset_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[StackResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_stacks_serialize(
+ self,
+ primary_asset_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if primary_asset_id is not None:
+
+ _query_params.append(('primaryAssetId', primary_asset_id))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/stacks',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_stack(
+ self,
+ id: StrictStr,
+ stack_update_dto: StackUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> StackResponseDto:
+ """update_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param stack_update_dto: (required)
+ :type stack_update_dto: StackUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_stack_serialize(
+ id=id,
+ stack_update_dto=stack_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_stack_with_http_info(
+ self,
+ id: StrictStr,
+ stack_update_dto: StackUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[StackResponseDto]:
+ """update_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param stack_update_dto: (required)
+ :type stack_update_dto: StackUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_stack_serialize(
+ id=id,
+ stack_update_dto=stack_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_stack_without_preload_content(
+ self,
+ id: StrictStr,
+ stack_update_dto: StackUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_stack
+
+
+ :param id: (required)
+ :type id: str
+ :param stack_update_dto: (required)
+ :type stack_update_dto: StackUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_stack_serialize(
+ id=id,
+ stack_update_dto=stack_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "StackResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_stack_serialize(
+ self,
+ id,
+ stack_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if stack_update_dto is not None:
+ _body_params = stack_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/stacks/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/sync_api.py b/generated/immich/openapi_client/api/sync_api.py
new file mode 100644
index 0000000..078a2e9
--- /dev/null
+++ b/generated/immich/openapi_client/api/sync_api.py
@@ -0,0 +1,1633 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from typing import List
+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_full_sync_dto import AssetFullSyncDto
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+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_stream_dto import SyncStreamDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class SyncApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def delete_sync_ack(
+ self,
+ sync_ack_delete_dto: SyncAckDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_sync_ack
+
+
+ :param sync_ack_delete_dto: (required)
+ :type sync_ack_delete_dto: SyncAckDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_sync_ack_serialize(
+ sync_ack_delete_dto=sync_ack_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_sync_ack_with_http_info(
+ self,
+ sync_ack_delete_dto: SyncAckDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_sync_ack
+
+
+ :param sync_ack_delete_dto: (required)
+ :type sync_ack_delete_dto: SyncAckDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_sync_ack_serialize(
+ sync_ack_delete_dto=sync_ack_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_sync_ack_without_preload_content(
+ self,
+ sync_ack_delete_dto: SyncAckDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_sync_ack
+
+
+ :param sync_ack_delete_dto: (required)
+ :type sync_ack_delete_dto: SyncAckDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_sync_ack_serialize(
+ sync_ack_delete_dto=sync_ack_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_sync_ack_serialize(
+ self,
+ sync_ack_delete_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if sync_ack_delete_dto is not None:
+ _body_params = sync_ack_delete_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/sync/ack',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_delta_sync(
+ self,
+ asset_delta_sync_dto: AssetDeltaSyncDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AssetDeltaSyncResponseDto:
+ """get_delta_sync
+
+
+ :param asset_delta_sync_dto: (required)
+ :type asset_delta_sync_dto: AssetDeltaSyncDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_delta_sync_serialize(
+ asset_delta_sync_dto=asset_delta_sync_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetDeltaSyncResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_delta_sync_with_http_info(
+ self,
+ asset_delta_sync_dto: AssetDeltaSyncDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AssetDeltaSyncResponseDto]:
+ """get_delta_sync
+
+
+ :param asset_delta_sync_dto: (required)
+ :type asset_delta_sync_dto: AssetDeltaSyncDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_delta_sync_serialize(
+ asset_delta_sync_dto=asset_delta_sync_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetDeltaSyncResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_delta_sync_without_preload_content(
+ self,
+ asset_delta_sync_dto: AssetDeltaSyncDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_delta_sync
+
+
+ :param asset_delta_sync_dto: (required)
+ :type asset_delta_sync_dto: AssetDeltaSyncDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_delta_sync_serialize(
+ asset_delta_sync_dto=asset_delta_sync_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AssetDeltaSyncResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_delta_sync_serialize(
+ self,
+ asset_delta_sync_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_delta_sync_dto is not None:
+ _body_params = asset_delta_sync_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/sync/delta-sync',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_full_sync_for_user(
+ self,
+ asset_full_sync_dto: AssetFullSyncDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetResponseDto]:
+ """get_full_sync_for_user
+
+
+ :param asset_full_sync_dto: (required)
+ :type asset_full_sync_dto: AssetFullSyncDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_full_sync_for_user_serialize(
+ asset_full_sync_dto=asset_full_sync_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_full_sync_for_user_with_http_info(
+ self,
+ asset_full_sync_dto: AssetFullSyncDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetResponseDto]]:
+ """get_full_sync_for_user
+
+
+ :param asset_full_sync_dto: (required)
+ :type asset_full_sync_dto: AssetFullSyncDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_full_sync_for_user_serialize(
+ asset_full_sync_dto=asset_full_sync_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_full_sync_for_user_without_preload_content(
+ self,
+ asset_full_sync_dto: AssetFullSyncDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_full_sync_for_user
+
+
+ :param asset_full_sync_dto: (required)
+ :type asset_full_sync_dto: AssetFullSyncDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_full_sync_for_user_serialize(
+ asset_full_sync_dto=asset_full_sync_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_full_sync_for_user_serialize(
+ self,
+ asset_full_sync_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if asset_full_sync_dto is not None:
+ _body_params = asset_full_sync_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/sync/full-sync',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_sync_ack(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[SyncAckDto]:
+ """get_sync_ack
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sync_ack_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SyncAckDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_sync_ack_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[SyncAckDto]]:
+ """get_sync_ack
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sync_ack_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SyncAckDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_sync_ack_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_sync_ack
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sync_ack_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[SyncAckDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_sync_ack_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/sync/ack',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_sync_stream(
+ self,
+ sync_stream_dto: SyncStreamDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """get_sync_stream
+
+
+ :param sync_stream_dto: (required)
+ :type sync_stream_dto: SyncStreamDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sync_stream_serialize(
+ sync_stream_dto=sync_stream_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_sync_stream_with_http_info(
+ self,
+ sync_stream_dto: SyncStreamDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """get_sync_stream
+
+
+ :param sync_stream_dto: (required)
+ :type sync_stream_dto: SyncStreamDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sync_stream_serialize(
+ sync_stream_dto=sync_stream_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_sync_stream_without_preload_content(
+ self,
+ sync_stream_dto: SyncStreamDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_sync_stream
+
+
+ :param sync_stream_dto: (required)
+ :type sync_stream_dto: SyncStreamDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_sync_stream_serialize(
+ sync_stream_dto=sync_stream_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_sync_stream_serialize(
+ self,
+ sync_stream_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if sync_stream_dto is not None:
+ _body_params = sync_stream_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/sync/stream',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def send_sync_ack(
+ self,
+ sync_ack_set_dto: SyncAckSetDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """send_sync_ack
+
+
+ :param sync_ack_set_dto: (required)
+ :type sync_ack_set_dto: SyncAckSetDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_sync_ack_serialize(
+ sync_ack_set_dto=sync_ack_set_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def send_sync_ack_with_http_info(
+ self,
+ sync_ack_set_dto: SyncAckSetDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """send_sync_ack
+
+
+ :param sync_ack_set_dto: (required)
+ :type sync_ack_set_dto: SyncAckSetDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_sync_ack_serialize(
+ sync_ack_set_dto=sync_ack_set_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def send_sync_ack_without_preload_content(
+ self,
+ sync_ack_set_dto: SyncAckSetDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """send_sync_ack
+
+
+ :param sync_ack_set_dto: (required)
+ :type sync_ack_set_dto: SyncAckSetDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._send_sync_ack_serialize(
+ sync_ack_set_dto=sync_ack_set_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _send_sync_ack_serialize(
+ self,
+ sync_ack_set_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if sync_ack_set_dto is not None:
+ _body_params = sync_ack_set_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/sync/ack',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/system_config_api.py b/generated/immich/openapi_client/api/system_config_api.py
new file mode 100644
index 0000000..97f4e66
--- /dev/null
+++ b/generated/immich/openapi_client/api/system_config_api.py
@@ -0,0 +1,1045 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from generated.immich.openapi_client.models.system_config_dto import SystemConfigDto
+from generated.immich.openapi_client.models.system_config_template_storage_option_dto import SystemConfigTemplateStorageOptionDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class SystemConfigApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_config(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SystemConfigDto:
+ """get_config
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_config_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_config_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SystemConfigDto]:
+ """get_config
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_config_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_config_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_config
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_config_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_config_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/system-config',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_config_defaults(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SystemConfigDto:
+ """get_config_defaults
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_config_defaults_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_config_defaults_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SystemConfigDto]:
+ """get_config_defaults
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_config_defaults_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_config_defaults_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_config_defaults
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_config_defaults_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_config_defaults_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/system-config/defaults',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_storage_template_options(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SystemConfigTemplateStorageOptionDto:
+ """get_storage_template_options
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_storage_template_options_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigTemplateStorageOptionDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_storage_template_options_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SystemConfigTemplateStorageOptionDto]:
+ """get_storage_template_options
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_storage_template_options_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigTemplateStorageOptionDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_storage_template_options_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_storage_template_options
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_storage_template_options_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigTemplateStorageOptionDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_storage_template_options_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/system-config/storage-template-options',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_config(
+ self,
+ system_config_dto: SystemConfigDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> SystemConfigDto:
+ """update_config
+
+
+ :param system_config_dto: (required)
+ :type system_config_dto: SystemConfigDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_config_serialize(
+ system_config_dto=system_config_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_config_with_http_info(
+ self,
+ system_config_dto: SystemConfigDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[SystemConfigDto]:
+ """update_config
+
+
+ :param system_config_dto: (required)
+ :type system_config_dto: SystemConfigDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_config_serialize(
+ system_config_dto=system_config_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_config_without_preload_content(
+ self,
+ system_config_dto: SystemConfigDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_config
+
+
+ :param system_config_dto: (required)
+ :type system_config_dto: SystemConfigDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_config_serialize(
+ system_config_dto=system_config_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SystemConfigDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_config_serialize(
+ self,
+ system_config_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if system_config_dto is not None:
+ _body_params = system_config_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/system-config',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/system_metadata_api.py b/generated/immich/openapi_client/api/system_metadata_api.py
new file mode 100644
index 0000000..f5ab473
--- /dev/null
+++ b/generated/immich/openapi_client/api/system_metadata_api.py
@@ -0,0 +1,793 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from generated.immich.openapi_client.models.admin_onboarding_update_dto import AdminOnboardingUpdateDto
+from generated.immich.openapi_client.models.reverse_geocoding_state_response_dto import ReverseGeocodingStateResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class SystemMetadataApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_admin_onboarding(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AdminOnboardingUpdateDto:
+ """get_admin_onboarding
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_admin_onboarding_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AdminOnboardingUpdateDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_admin_onboarding_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AdminOnboardingUpdateDto]:
+ """get_admin_onboarding
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_admin_onboarding_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AdminOnboardingUpdateDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_admin_onboarding_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_admin_onboarding
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_admin_onboarding_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AdminOnboardingUpdateDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_admin_onboarding_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/system-metadata/admin-onboarding',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_reverse_geocoding_state(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ReverseGeocodingStateResponseDto:
+ """get_reverse_geocoding_state
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_reverse_geocoding_state_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ReverseGeocodingStateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_reverse_geocoding_state_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ReverseGeocodingStateResponseDto]:
+ """get_reverse_geocoding_state
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_reverse_geocoding_state_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ReverseGeocodingStateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_reverse_geocoding_state_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_reverse_geocoding_state
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_reverse_geocoding_state_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ReverseGeocodingStateResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_reverse_geocoding_state_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/system-metadata/reverse-geocoding-state',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_admin_onboarding(
+ self,
+ admin_onboarding_update_dto: AdminOnboardingUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """update_admin_onboarding
+
+
+ :param admin_onboarding_update_dto: (required)
+ :type admin_onboarding_update_dto: AdminOnboardingUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_admin_onboarding_serialize(
+ admin_onboarding_update_dto=admin_onboarding_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_admin_onboarding_with_http_info(
+ self,
+ admin_onboarding_update_dto: AdminOnboardingUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """update_admin_onboarding
+
+
+ :param admin_onboarding_update_dto: (required)
+ :type admin_onboarding_update_dto: AdminOnboardingUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_admin_onboarding_serialize(
+ admin_onboarding_update_dto=admin_onboarding_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_admin_onboarding_without_preload_content(
+ self,
+ admin_onboarding_update_dto: AdminOnboardingUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_admin_onboarding
+
+
+ :param admin_onboarding_update_dto: (required)
+ :type admin_onboarding_update_dto: AdminOnboardingUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_admin_onboarding_serialize(
+ admin_onboarding_update_dto=admin_onboarding_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_admin_onboarding_serialize(
+ self,
+ admin_onboarding_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if admin_onboarding_update_dto is not None:
+ _body_params = admin_onboarding_update_dto
+
+
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/system-metadata/admin-onboarding',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/tags_api.py b/generated/immich/openapi_client/api/tags_api.py
new file mode 100644
index 0000000..1006e81
--- /dev/null
+++ b/generated/immich/openapi_client/api/tags_api.py
@@ -0,0 +1,2486 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List
+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.tag_bulk_assets_dto import TagBulkAssetsDto
+from generated.immich.openapi_client.models.tag_bulk_assets_response_dto import TagBulkAssetsResponseDto
+from generated.immich.openapi_client.models.tag_create_dto import TagCreateDto
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.models.tag_update_dto import TagUpdateDto
+from generated.immich.openapi_client.models.tag_upsert_dto import TagUpsertDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class TagsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def bulk_tag_assets(
+ self,
+ tag_bulk_assets_dto: TagBulkAssetsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TagBulkAssetsResponseDto:
+ """bulk_tag_assets
+
+
+ :param tag_bulk_assets_dto: (required)
+ :type tag_bulk_assets_dto: TagBulkAssetsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._bulk_tag_assets_serialize(
+ tag_bulk_assets_dto=tag_bulk_assets_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagBulkAssetsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def bulk_tag_assets_with_http_info(
+ self,
+ tag_bulk_assets_dto: TagBulkAssetsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TagBulkAssetsResponseDto]:
+ """bulk_tag_assets
+
+
+ :param tag_bulk_assets_dto: (required)
+ :type tag_bulk_assets_dto: TagBulkAssetsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._bulk_tag_assets_serialize(
+ tag_bulk_assets_dto=tag_bulk_assets_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagBulkAssetsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def bulk_tag_assets_without_preload_content(
+ self,
+ tag_bulk_assets_dto: TagBulkAssetsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """bulk_tag_assets
+
+
+ :param tag_bulk_assets_dto: (required)
+ :type tag_bulk_assets_dto: TagBulkAssetsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._bulk_tag_assets_serialize(
+ tag_bulk_assets_dto=tag_bulk_assets_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagBulkAssetsResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _bulk_tag_assets_serialize(
+ self,
+ tag_bulk_assets_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if tag_bulk_assets_dto is not None:
+ _body_params = tag_bulk_assets_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/tags/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def create_tag(
+ self,
+ tag_create_dto: TagCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TagResponseDto:
+ """create_tag
+
+
+ :param tag_create_dto: (required)
+ :type tag_create_dto: TagCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_tag_serialize(
+ tag_create_dto=tag_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_tag_with_http_info(
+ self,
+ tag_create_dto: TagCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TagResponseDto]:
+ """create_tag
+
+
+ :param tag_create_dto: (required)
+ :type tag_create_dto: TagCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_tag_serialize(
+ tag_create_dto=tag_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_tag_without_preload_content(
+ self,
+ tag_create_dto: TagCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_tag
+
+
+ :param tag_create_dto: (required)
+ :type tag_create_dto: TagCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_tag_serialize(
+ tag_create_dto=tag_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_tag_serialize(
+ self,
+ tag_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if tag_create_dto is not None:
+ _body_params = tag_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/tags',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_tag(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_tag
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_tag_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_tag_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_tag
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_tag_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_tag_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_tag
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_tag_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_tag_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/tags/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_all_tags(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[TagResponseDto]:
+ """get_all_tags
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_tags_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TagResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_all_tags_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[TagResponseDto]]:
+ """get_all_tags
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_tags_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TagResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_all_tags_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_all_tags
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_all_tags_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TagResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_all_tags_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/tags',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_tag_by_id(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TagResponseDto:
+ """get_tag_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_tag_by_id_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_tag_by_id_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TagResponseDto]:
+ """get_tag_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_tag_by_id_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_tag_by_id_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_tag_by_id
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_tag_by_id_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_tag_by_id_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/tags/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def tag_assets(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """tag_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._tag_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def tag_assets_with_http_info(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """tag_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._tag_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def tag_assets_without_preload_content(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """tag_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._tag_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _tag_assets_serialize(
+ self,
+ id,
+ bulk_ids_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/tags/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def untag_assets(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[BulkIdResponseDto]:
+ """untag_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._untag_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def untag_assets_with_http_info(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[BulkIdResponseDto]]:
+ """untag_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._untag_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def untag_assets_without_preload_content(
+ self,
+ id: StrictStr,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """untag_assets
+
+
+ :param id: (required)
+ :type id: str
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._untag_assets_serialize(
+ id=id,
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[BulkIdResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _untag_assets_serialize(
+ self,
+ id,
+ bulk_ids_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/tags/{id}/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_tag(
+ self,
+ id: StrictStr,
+ tag_update_dto: TagUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TagResponseDto:
+ """update_tag
+
+
+ :param id: (required)
+ :type id: str
+ :param tag_update_dto: (required)
+ :type tag_update_dto: TagUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_tag_serialize(
+ id=id,
+ tag_update_dto=tag_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_tag_with_http_info(
+ self,
+ id: StrictStr,
+ tag_update_dto: TagUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TagResponseDto]:
+ """update_tag
+
+
+ :param id: (required)
+ :type id: str
+ :param tag_update_dto: (required)
+ :type tag_update_dto: TagUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_tag_serialize(
+ id=id,
+ tag_update_dto=tag_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_tag_without_preload_content(
+ self,
+ id: StrictStr,
+ tag_update_dto: TagUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_tag
+
+
+ :param id: (required)
+ :type id: str
+ :param tag_update_dto: (required)
+ :type tag_update_dto: TagUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_tag_serialize(
+ id=id,
+ tag_update_dto=tag_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_tag_serialize(
+ self,
+ id,
+ tag_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if tag_update_dto is not None:
+ _body_params = tag_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/tags/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def upsert_tags(
+ self,
+ tag_upsert_dto: TagUpsertDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[TagResponseDto]:
+ """upsert_tags
+
+
+ :param tag_upsert_dto: (required)
+ :type tag_upsert_dto: TagUpsertDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._upsert_tags_serialize(
+ tag_upsert_dto=tag_upsert_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TagResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def upsert_tags_with_http_info(
+ self,
+ tag_upsert_dto: TagUpsertDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[TagResponseDto]]:
+ """upsert_tags
+
+
+ :param tag_upsert_dto: (required)
+ :type tag_upsert_dto: TagUpsertDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._upsert_tags_serialize(
+ tag_upsert_dto=tag_upsert_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TagResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def upsert_tags_without_preload_content(
+ self,
+ tag_upsert_dto: TagUpsertDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """upsert_tags
+
+
+ :param tag_upsert_dto: (required)
+ :type tag_upsert_dto: TagUpsertDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._upsert_tags_serialize(
+ tag_upsert_dto=tag_upsert_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TagResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _upsert_tags_serialize(
+ self,
+ tag_upsert_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if tag_upsert_dto is not None:
+ _body_params = tag_upsert_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/tags',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/timeline_api.py b/generated/immich/openapi_client/api/timeline_api.py
new file mode 100644
index 0000000..f43d76d
--- /dev/null
+++ b/generated/immich/openapi_client/api/timeline_api.py
@@ -0,0 +1,956 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictBool, StrictStr
+from typing import List, Optional
+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.time_bucket_response_dto import TimeBucketResponseDto
+from generated.immich.openapi_client.models.time_bucket_size import TimeBucketSize
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class TimelineApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_time_bucket(
+ self,
+ size: TimeBucketSize,
+ time_bucket: StrictStr,
+ album_id: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ key: Optional[StrictStr] = None,
+ order: Optional[AssetOrder] = None,
+ person_id: Optional[StrictStr] = None,
+ tag_id: Optional[StrictStr] = None,
+ user_id: Optional[StrictStr] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_stacked: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetResponseDto]:
+ """get_time_bucket
+
+
+ :param size: (required)
+ :type size: TimeBucketSize
+ :param time_bucket: (required)
+ :type time_bucket: str
+ :param album_id:
+ :type album_id: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param key:
+ :type key: str
+ :param order:
+ :type order: AssetOrder
+ :param person_id:
+ :type person_id: str
+ :param tag_id:
+ :type tag_id: str
+ :param user_id:
+ :type user_id: str
+ :param with_partners:
+ :type with_partners: bool
+ :param with_stacked:
+ :type with_stacked: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_time_bucket_serialize(
+ size=size,
+ time_bucket=time_bucket,
+ album_id=album_id,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ key=key,
+ order=order,
+ person_id=person_id,
+ tag_id=tag_id,
+ user_id=user_id,
+ with_partners=with_partners,
+ with_stacked=with_stacked,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_time_bucket_with_http_info(
+ self,
+ size: TimeBucketSize,
+ time_bucket: StrictStr,
+ album_id: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ key: Optional[StrictStr] = None,
+ order: Optional[AssetOrder] = None,
+ person_id: Optional[StrictStr] = None,
+ tag_id: Optional[StrictStr] = None,
+ user_id: Optional[StrictStr] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_stacked: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetResponseDto]]:
+ """get_time_bucket
+
+
+ :param size: (required)
+ :type size: TimeBucketSize
+ :param time_bucket: (required)
+ :type time_bucket: str
+ :param album_id:
+ :type album_id: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param key:
+ :type key: str
+ :param order:
+ :type order: AssetOrder
+ :param person_id:
+ :type person_id: str
+ :param tag_id:
+ :type tag_id: str
+ :param user_id:
+ :type user_id: str
+ :param with_partners:
+ :type with_partners: bool
+ :param with_stacked:
+ :type with_stacked: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_time_bucket_serialize(
+ size=size,
+ time_bucket=time_bucket,
+ album_id=album_id,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ key=key,
+ order=order,
+ person_id=person_id,
+ tag_id=tag_id,
+ user_id=user_id,
+ with_partners=with_partners,
+ with_stacked=with_stacked,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_time_bucket_without_preload_content(
+ self,
+ size: TimeBucketSize,
+ time_bucket: StrictStr,
+ album_id: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ key: Optional[StrictStr] = None,
+ order: Optional[AssetOrder] = None,
+ person_id: Optional[StrictStr] = None,
+ tag_id: Optional[StrictStr] = None,
+ user_id: Optional[StrictStr] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_stacked: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_time_bucket
+
+
+ :param size: (required)
+ :type size: TimeBucketSize
+ :param time_bucket: (required)
+ :type time_bucket: str
+ :param album_id:
+ :type album_id: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param key:
+ :type key: str
+ :param order:
+ :type order: AssetOrder
+ :param person_id:
+ :type person_id: str
+ :param tag_id:
+ :type tag_id: str
+ :param user_id:
+ :type user_id: str
+ :param with_partners:
+ :type with_partners: bool
+ :param with_stacked:
+ :type with_stacked: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_time_bucket_serialize(
+ size=size,
+ time_bucket=time_bucket,
+ album_id=album_id,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ key=key,
+ order=order,
+ person_id=person_id,
+ tag_id=tag_id,
+ user_id=user_id,
+ with_partners=with_partners,
+ with_stacked=with_stacked,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_time_bucket_serialize(
+ self,
+ size,
+ time_bucket,
+ album_id,
+ is_archived,
+ is_favorite,
+ is_trashed,
+ key,
+ order,
+ person_id,
+ tag_id,
+ user_id,
+ with_partners,
+ with_stacked,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if album_id is not None:
+
+ _query_params.append(('albumId', album_id))
+
+ if is_archived is not None:
+
+ _query_params.append(('isArchived', is_archived))
+
+ if is_favorite is not None:
+
+ _query_params.append(('isFavorite', is_favorite))
+
+ if is_trashed is not None:
+
+ _query_params.append(('isTrashed', is_trashed))
+
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ if order is not None:
+
+ _query_params.append(('order', order.value))
+
+ if person_id is not None:
+
+ _query_params.append(('personId', person_id))
+
+ if size is not None:
+
+ _query_params.append(('size', size.value))
+
+ if tag_id is not None:
+
+ _query_params.append(('tagId', tag_id))
+
+ if time_bucket is not None:
+
+ _query_params.append(('timeBucket', time_bucket))
+
+ if user_id is not None:
+
+ _query_params.append(('userId', user_id))
+
+ if with_partners is not None:
+
+ _query_params.append(('withPartners', with_partners))
+
+ if with_stacked is not None:
+
+ _query_params.append(('withStacked', with_stacked))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/timeline/bucket',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_time_buckets(
+ self,
+ size: TimeBucketSize,
+ album_id: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ key: Optional[StrictStr] = None,
+ order: Optional[AssetOrder] = None,
+ person_id: Optional[StrictStr] = None,
+ tag_id: Optional[StrictStr] = None,
+ user_id: Optional[StrictStr] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_stacked: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[TimeBucketResponseDto]:
+ """get_time_buckets
+
+
+ :param size: (required)
+ :type size: TimeBucketSize
+ :param album_id:
+ :type album_id: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param key:
+ :type key: str
+ :param order:
+ :type order: AssetOrder
+ :param person_id:
+ :type person_id: str
+ :param tag_id:
+ :type tag_id: str
+ :param user_id:
+ :type user_id: str
+ :param with_partners:
+ :type with_partners: bool
+ :param with_stacked:
+ :type with_stacked: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_time_buckets_serialize(
+ size=size,
+ album_id=album_id,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ key=key,
+ order=order,
+ person_id=person_id,
+ tag_id=tag_id,
+ user_id=user_id,
+ with_partners=with_partners,
+ with_stacked=with_stacked,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TimeBucketResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_time_buckets_with_http_info(
+ self,
+ size: TimeBucketSize,
+ album_id: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ key: Optional[StrictStr] = None,
+ order: Optional[AssetOrder] = None,
+ person_id: Optional[StrictStr] = None,
+ tag_id: Optional[StrictStr] = None,
+ user_id: Optional[StrictStr] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_stacked: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[TimeBucketResponseDto]]:
+ """get_time_buckets
+
+
+ :param size: (required)
+ :type size: TimeBucketSize
+ :param album_id:
+ :type album_id: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param key:
+ :type key: str
+ :param order:
+ :type order: AssetOrder
+ :param person_id:
+ :type person_id: str
+ :param tag_id:
+ :type tag_id: str
+ :param user_id:
+ :type user_id: str
+ :param with_partners:
+ :type with_partners: bool
+ :param with_stacked:
+ :type with_stacked: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_time_buckets_serialize(
+ size=size,
+ album_id=album_id,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ key=key,
+ order=order,
+ person_id=person_id,
+ tag_id=tag_id,
+ user_id=user_id,
+ with_partners=with_partners,
+ with_stacked=with_stacked,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TimeBucketResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_time_buckets_without_preload_content(
+ self,
+ size: TimeBucketSize,
+ album_id: Optional[StrictStr] = None,
+ is_archived: Optional[StrictBool] = None,
+ is_favorite: Optional[StrictBool] = None,
+ is_trashed: Optional[StrictBool] = None,
+ key: Optional[StrictStr] = None,
+ order: Optional[AssetOrder] = None,
+ person_id: Optional[StrictStr] = None,
+ tag_id: Optional[StrictStr] = None,
+ user_id: Optional[StrictStr] = None,
+ with_partners: Optional[StrictBool] = None,
+ with_stacked: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_time_buckets
+
+
+ :param size: (required)
+ :type size: TimeBucketSize
+ :param album_id:
+ :type album_id: str
+ :param is_archived:
+ :type is_archived: bool
+ :param is_favorite:
+ :type is_favorite: bool
+ :param is_trashed:
+ :type is_trashed: bool
+ :param key:
+ :type key: str
+ :param order:
+ :type order: AssetOrder
+ :param person_id:
+ :type person_id: str
+ :param tag_id:
+ :type tag_id: str
+ :param user_id:
+ :type user_id: str
+ :param with_partners:
+ :type with_partners: bool
+ :param with_stacked:
+ :type with_stacked: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_time_buckets_serialize(
+ size=size,
+ album_id=album_id,
+ is_archived=is_archived,
+ is_favorite=is_favorite,
+ is_trashed=is_trashed,
+ key=key,
+ order=order,
+ person_id=person_id,
+ tag_id=tag_id,
+ user_id=user_id,
+ with_partners=with_partners,
+ with_stacked=with_stacked,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[TimeBucketResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_time_buckets_serialize(
+ self,
+ size,
+ album_id,
+ is_archived,
+ is_favorite,
+ is_trashed,
+ key,
+ order,
+ person_id,
+ tag_id,
+ user_id,
+ with_partners,
+ with_stacked,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if album_id is not None:
+
+ _query_params.append(('albumId', album_id))
+
+ if is_archived is not None:
+
+ _query_params.append(('isArchived', is_archived))
+
+ if is_favorite is not None:
+
+ _query_params.append(('isFavorite', is_favorite))
+
+ if is_trashed is not None:
+
+ _query_params.append(('isTrashed', is_trashed))
+
+ if key is not None:
+
+ _query_params.append(('key', key))
+
+ if order is not None:
+
+ _query_params.append(('order', order.value))
+
+ if person_id is not None:
+
+ _query_params.append(('personId', person_id))
+
+ if size is not None:
+
+ _query_params.append(('size', size.value))
+
+ if tag_id is not None:
+
+ _query_params.append(('tagId', tag_id))
+
+ if user_id is not None:
+
+ _query_params.append(('userId', user_id))
+
+ if with_partners is not None:
+
+ _query_params.append(('withPartners', with_partners))
+
+ if with_stacked is not None:
+
+ _query_params.append(('withStacked', with_stacked))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/timeline/buckets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/trash_api.py b/generated/immich/openapi_client/api/trash_api.py
new file mode 100644
index 0000000..86b2762
--- /dev/null
+++ b/generated/immich/openapi_client/api/trash_api.py
@@ -0,0 +1,800 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from generated.immich.openapi_client.models.bulk_ids_dto import BulkIdsDto
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class TrashApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def empty_trash(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TrashResponseDto:
+ """empty_trash
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._empty_trash_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def empty_trash_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TrashResponseDto]:
+ """empty_trash
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._empty_trash_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def empty_trash_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """empty_trash
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._empty_trash_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _empty_trash_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/trash/empty',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def restore_assets(
+ self,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TrashResponseDto:
+ """restore_assets
+
+
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_assets_serialize(
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def restore_assets_with_http_info(
+ self,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TrashResponseDto]:
+ """restore_assets
+
+
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_assets_serialize(
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def restore_assets_without_preload_content(
+ self,
+ bulk_ids_dto: BulkIdsDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """restore_assets
+
+
+ :param bulk_ids_dto: (required)
+ :type bulk_ids_dto: BulkIdsDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_assets_serialize(
+ bulk_ids_dto=bulk_ids_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _restore_assets_serialize(
+ self,
+ bulk_ids_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if bulk_ids_dto is not None:
+ _body_params = bulk_ids_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/trash/restore/assets',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def restore_trash(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TrashResponseDto:
+ """restore_trash
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_trash_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def restore_trash_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TrashResponseDto]:
+ """restore_trash
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_trash_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def restore_trash_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """restore_trash
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_trash_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TrashResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _restore_trash_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/trash/restore',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/users_admin_api.py b/generated/immich/openapi_client/api/users_admin_api.py
new file mode 100644
index 0000000..c9849b8
--- /dev/null
+++ b/generated/immich/openapi_client/api/users_admin_api.py
@@ -0,0 +1,2222 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictBool, StrictStr
+from typing import List, Optional
+from generated.immich.openapi_client.models.user_admin_create_dto import UserAdminCreateDto
+from generated.immich.openapi_client.models.user_admin_delete_dto import UserAdminDeleteDto
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.models.user_admin_update_dto import UserAdminUpdateDto
+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.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class UsersAdminApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_user_admin(
+ self,
+ user_admin_create_dto: UserAdminCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """create_user_admin
+
+
+ :param user_admin_create_dto: (required)
+ :type user_admin_create_dto: UserAdminCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_user_admin_serialize(
+ user_admin_create_dto=user_admin_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_user_admin_with_http_info(
+ self,
+ user_admin_create_dto: UserAdminCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """create_user_admin
+
+
+ :param user_admin_create_dto: (required)
+ :type user_admin_create_dto: UserAdminCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_user_admin_serialize(
+ user_admin_create_dto=user_admin_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_user_admin_without_preload_content(
+ self,
+ user_admin_create_dto: UserAdminCreateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_user_admin
+
+
+ :param user_admin_create_dto: (required)
+ :type user_admin_create_dto: UserAdminCreateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_user_admin_serialize(
+ user_admin_create_dto=user_admin_create_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_user_admin_serialize(
+ self,
+ user_admin_create_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if user_admin_create_dto is not None:
+ _body_params = user_admin_create_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/admin/users',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_user_admin(
+ self,
+ id: StrictStr,
+ user_admin_delete_dto: UserAdminDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """delete_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_admin_delete_dto: (required)
+ :type user_admin_delete_dto: UserAdminDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_user_admin_serialize(
+ id=id,
+ user_admin_delete_dto=user_admin_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_user_admin_with_http_info(
+ self,
+ id: StrictStr,
+ user_admin_delete_dto: UserAdminDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """delete_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_admin_delete_dto: (required)
+ :type user_admin_delete_dto: UserAdminDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_user_admin_serialize(
+ id=id,
+ user_admin_delete_dto=user_admin_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_user_admin_without_preload_content(
+ self,
+ id: StrictStr,
+ user_admin_delete_dto: UserAdminDeleteDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_admin_delete_dto: (required)
+ :type user_admin_delete_dto: UserAdminDeleteDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_user_admin_serialize(
+ id=id,
+ user_admin_delete_dto=user_admin_delete_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_user_admin_serialize(
+ self,
+ id,
+ user_admin_delete_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if user_admin_delete_dto is not None:
+ _body_params = user_admin_delete_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/admin/users/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_user_admin(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """get_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_user_admin_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """get_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_user_admin_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_user_admin_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/admin/users/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_user_preferences_admin(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserPreferencesResponseDto:
+ """get_user_preferences_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_preferences_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_user_preferences_admin_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserPreferencesResponseDto]:
+ """get_user_preferences_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_preferences_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_user_preferences_admin_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_user_preferences_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_preferences_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_user_preferences_admin_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/admin/users/{id}/preferences',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def restore_user_admin(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """restore_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_user_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def restore_user_admin_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """restore_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_user_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def restore_user_admin_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """restore_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._restore_user_admin_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _restore_user_admin_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/admin/users/{id}/restore',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_users_admin(
+ self,
+ with_deleted: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[UserAdminResponseDto]:
+ """search_users_admin
+
+
+ :param with_deleted:
+ :type with_deleted: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_users_admin_serialize(
+ with_deleted=with_deleted,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[UserAdminResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_users_admin_with_http_info(
+ self,
+ with_deleted: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[UserAdminResponseDto]]:
+ """search_users_admin
+
+
+ :param with_deleted:
+ :type with_deleted: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_users_admin_serialize(
+ with_deleted=with_deleted,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[UserAdminResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_users_admin_without_preload_content(
+ self,
+ with_deleted: Optional[StrictBool] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_users_admin
+
+
+ :param with_deleted:
+ :type with_deleted: bool
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_users_admin_serialize(
+ with_deleted=with_deleted,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[UserAdminResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_users_admin_serialize(
+ self,
+ with_deleted,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if with_deleted is not None:
+
+ _query_params.append(('withDeleted', with_deleted))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/admin/users',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_user_admin(
+ self,
+ id: StrictStr,
+ user_admin_update_dto: UserAdminUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """update_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_admin_update_dto: (required)
+ :type user_admin_update_dto: UserAdminUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_user_admin_serialize(
+ id=id,
+ user_admin_update_dto=user_admin_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_user_admin_with_http_info(
+ self,
+ id: StrictStr,
+ user_admin_update_dto: UserAdminUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """update_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_admin_update_dto: (required)
+ :type user_admin_update_dto: UserAdminUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_user_admin_serialize(
+ id=id,
+ user_admin_update_dto=user_admin_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_user_admin_without_preload_content(
+ self,
+ id: StrictStr,
+ user_admin_update_dto: UserAdminUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_user_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_admin_update_dto: (required)
+ :type user_admin_update_dto: UserAdminUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_user_admin_serialize(
+ id=id,
+ user_admin_update_dto=user_admin_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_user_admin_serialize(
+ self,
+ id,
+ user_admin_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if user_admin_update_dto is not None:
+ _body_params = user_admin_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/admin/users/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_user_preferences_admin(
+ self,
+ id: StrictStr,
+ user_preferences_update_dto: UserPreferencesUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserPreferencesResponseDto:
+ """update_user_preferences_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_preferences_update_dto: (required)
+ :type user_preferences_update_dto: UserPreferencesUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_user_preferences_admin_serialize(
+ id=id,
+ user_preferences_update_dto=user_preferences_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_user_preferences_admin_with_http_info(
+ self,
+ id: StrictStr,
+ user_preferences_update_dto: UserPreferencesUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserPreferencesResponseDto]:
+ """update_user_preferences_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_preferences_update_dto: (required)
+ :type user_preferences_update_dto: UserPreferencesUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_user_preferences_admin_serialize(
+ id=id,
+ user_preferences_update_dto=user_preferences_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_user_preferences_admin_without_preload_content(
+ self,
+ id: StrictStr,
+ user_preferences_update_dto: UserPreferencesUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_user_preferences_admin
+
+
+ :param id: (required)
+ :type id: str
+ :param user_preferences_update_dto: (required)
+ :type user_preferences_update_dto: UserPreferencesUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_user_preferences_admin_serialize(
+ id=id,
+ user_preferences_update_dto=user_preferences_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_user_preferences_admin_serialize(
+ self,
+ id,
+ user_preferences_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if user_preferences_update_dto is not None:
+ _body_params = user_preferences_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/admin/users/{id}/preferences',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/users_api.py b/generated/immich/openapi_client/api/users_api.py
new file mode 100644
index 0000000..ec4614f
--- /dev/null
+++ b/generated/immich/openapi_client/api/users_api.py
@@ -0,0 +1,3113 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictBytes, StrictStr
+from typing import List, Tuple, Union
+from generated.immich.openapi_client.models.create_profile_image_response_dto import CreateProfileImageResponseDto
+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.user_admin_response_dto import UserAdminResponseDto
+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
+from generated.immich.openapi_client.models.user_update_me_dto import UserUpdateMeDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class UsersApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_profile_image(
+ self,
+ file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CreateProfileImageResponseDto:
+ """create_profile_image
+
+
+ :param file: (required)
+ :type file: bytearray
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_profile_image_serialize(
+ file=file,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CreateProfileImageResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_profile_image_with_http_info(
+ self,
+ file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CreateProfileImageResponseDto]:
+ """create_profile_image
+
+
+ :param file: (required)
+ :type file: bytearray
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_profile_image_serialize(
+ file=file,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CreateProfileImageResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_profile_image_without_preload_content(
+ self,
+ file: Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """create_profile_image
+
+
+ :param file: (required)
+ :type file: bytearray
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_profile_image_serialize(
+ file=file,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CreateProfileImageResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_profile_image_serialize(
+ self,
+ file,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ if file is not None:
+ _files['file'] = file
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'multipart/form-data'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/users/profile-image',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_profile_image(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_profile_image
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_profile_image_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_profile_image_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_profile_image
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_profile_image_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_profile_image_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_profile_image
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_profile_image_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '204': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_profile_image_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/users/profile-image',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_user_license(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> None:
+ """delete_user_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_user_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_user_license_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[None]:
+ """delete_user_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_user_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_user_license_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """delete_user_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_user_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_user_license_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/users/me/license',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_my_preferences(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserPreferencesResponseDto:
+ """get_my_preferences
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_preferences_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_my_preferences_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserPreferencesResponseDto]:
+ """get_my_preferences
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_preferences_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_my_preferences_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_my_preferences
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_preferences_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_my_preferences_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/users/me/preferences',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_my_user(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """get_my_user
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_user_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_my_user_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """get_my_user
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_user_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_my_user_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_my_user
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_my_user_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_my_user_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/users/me',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_profile_image(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> bytearray:
+ """get_profile_image
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_profile_image_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_profile_image_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[bytearray]:
+ """get_profile_image
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_profile_image_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_profile_image_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_profile_image
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_profile_image_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_profile_image_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/octet-stream'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/users/{id}/profile-image',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_user(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserResponseDto:
+ """get_user
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_user_with_http_info(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserResponseDto]:
+ """get_user
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_user_without_preload_content(
+ self,
+ id: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_user
+
+
+ :param id: (required)
+ :type id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_serialize(
+ id=id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_user_serialize(
+ self,
+ id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if id is not None:
+ _path_params['id'] = id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/users/{id}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_user_license(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LicenseResponseDto:
+ """get_user_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_user_license_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LicenseResponseDto]:
+ """get_user_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_user_license_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_user_license
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_user_license_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_user_license_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/users/me/license',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_users(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[UserResponseDto]:
+ """search_users
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_users_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[UserResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_users_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[UserResponseDto]]:
+ """search_users
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_users_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[UserResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_users_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """search_users
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_users_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[UserResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_users_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/users',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def set_user_license(
+ self,
+ license_key_dto: LicenseKeyDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LicenseResponseDto:
+ """set_user_license
+
+
+ :param license_key_dto: (required)
+ :type license_key_dto: LicenseKeyDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._set_user_license_serialize(
+ license_key_dto=license_key_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def set_user_license_with_http_info(
+ self,
+ license_key_dto: LicenseKeyDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LicenseResponseDto]:
+ """set_user_license
+
+
+ :param license_key_dto: (required)
+ :type license_key_dto: LicenseKeyDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._set_user_license_serialize(
+ license_key_dto=license_key_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def set_user_license_without_preload_content(
+ self,
+ license_key_dto: LicenseKeyDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """set_user_license
+
+
+ :param license_key_dto: (required)
+ :type license_key_dto: LicenseKeyDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._set_user_license_serialize(
+ license_key_dto=license_key_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "LicenseResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _set_user_license_serialize(
+ self,
+ license_key_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if license_key_dto is not None:
+ _body_params = license_key_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/users/me/license',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_my_preferences(
+ self,
+ user_preferences_update_dto: UserPreferencesUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserPreferencesResponseDto:
+ """update_my_preferences
+
+
+ :param user_preferences_update_dto: (required)
+ :type user_preferences_update_dto: UserPreferencesUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_my_preferences_serialize(
+ user_preferences_update_dto=user_preferences_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_my_preferences_with_http_info(
+ self,
+ user_preferences_update_dto: UserPreferencesUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserPreferencesResponseDto]:
+ """update_my_preferences
+
+
+ :param user_preferences_update_dto: (required)
+ :type user_preferences_update_dto: UserPreferencesUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_my_preferences_serialize(
+ user_preferences_update_dto=user_preferences_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_my_preferences_without_preload_content(
+ self,
+ user_preferences_update_dto: UserPreferencesUpdateDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_my_preferences
+
+
+ :param user_preferences_update_dto: (required)
+ :type user_preferences_update_dto: UserPreferencesUpdateDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_my_preferences_serialize(
+ user_preferences_update_dto=user_preferences_update_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserPreferencesResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_my_preferences_serialize(
+ self,
+ user_preferences_update_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if user_preferences_update_dto is not None:
+ _body_params = user_preferences_update_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/users/me/preferences',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def update_my_user(
+ self,
+ user_update_me_dto: UserUpdateMeDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> UserAdminResponseDto:
+ """update_my_user
+
+
+ :param user_update_me_dto: (required)
+ :type user_update_me_dto: UserUpdateMeDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_my_user_serialize(
+ user_update_me_dto=user_update_me_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def update_my_user_with_http_info(
+ self,
+ user_update_me_dto: UserUpdateMeDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[UserAdminResponseDto]:
+ """update_my_user
+
+
+ :param user_update_me_dto: (required)
+ :type user_update_me_dto: UserUpdateMeDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_my_user_serialize(
+ user_update_me_dto=user_update_me_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def update_my_user_without_preload_content(
+ self,
+ user_update_me_dto: UserUpdateMeDto,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """update_my_user
+
+
+ :param user_update_me_dto: (required)
+ :type user_update_me_dto: UserUpdateMeDto
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._update_my_user_serialize(
+ user_update_me_dto=user_update_me_dto,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UserAdminResponseDto",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_my_user_serialize(
+ self,
+ user_update_me_dto,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if user_update_me_dto is not None:
+ _body_params = user_update_me_dto
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/users/me',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api/view_api.py b/generated/immich/openapi_client/api/view_api.py
new file mode 100644
index 0000000..c824cca
--- /dev/null
+++ b/generated/immich/openapi_client/api/view_api.py
@@ -0,0 +1,545 @@
+# 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
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import StrictStr
+from typing import List
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+
+from generated.immich.openapi_client.api_client import ApiClient, RequestSerialized
+from generated.immich.openapi_client.api_response import ApiResponse
+from generated.immich.openapi_client.rest import RESTResponseType
+
+
+class ViewApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_assets_by_original_path(
+ self,
+ path: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[AssetResponseDto]:
+ """get_assets_by_original_path
+
+
+ :param path: (required)
+ :type path: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_assets_by_original_path_serialize(
+ path=path,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_assets_by_original_path_with_http_info(
+ self,
+ path: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[AssetResponseDto]]:
+ """get_assets_by_original_path
+
+
+ :param path: (required)
+ :type path: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_assets_by_original_path_serialize(
+ path=path,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_assets_by_original_path_without_preload_content(
+ self,
+ path: StrictStr,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_assets_by_original_path
+
+
+ :param path: (required)
+ :type path: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_assets_by_original_path_serialize(
+ path=path,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[AssetResponseDto]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_assets_by_original_path_serialize(
+ self,
+ path,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if path is not None:
+
+ _query_params.append(('path', path))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/view/folder',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_unique_original_paths(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> List[str]:
+ """get_unique_original_paths
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_unique_original_paths_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_unique_original_paths_with_http_info(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[List[str]]:
+ """get_unique_original_paths
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_unique_original_paths_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_unique_original_paths_without_preload_content(
+ self,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_unique_original_paths
+
+
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_unique_original_paths_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "List[str]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_unique_original_paths_serialize(
+ self,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'cookie',
+ 'api_key',
+ 'bearer'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/view/folder/unique-paths',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/generated/immich/openapi_client/api_client.py b/generated/immich/openapi_client/api_client.py
new file mode 100644
index 0000000..efa90a4
--- /dev/null
+++ b/generated/immich/openapi_client/api_client.py
@@ -0,0 +1,797 @@
+# 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
+
+
+import datetime
+from dateutil.parser import parse
+from enum import Enum
+import decimal
+import json
+import mimetypes
+import os
+import re
+import tempfile
+
+from urllib.parse import quote
+from typing import Tuple, Optional, List, Dict, Union
+from pydantic import SecretStr
+
+from generated.immich.openapi_client.configuration import Configuration
+from generated.immich.openapi_client.api_response import ApiResponse, T as ApiResponseT
+import generated.immich.openapi_client.models
+from generated.immich.openapi_client import rest
+from generated.immich.openapi_client.exceptions import (
+ ApiValueError,
+ ApiException,
+ BadRequestException,
+ UnauthorizedException,
+ ForbiddenException,
+ NotFoundException,
+ ServiceException
+)
+
+RequestSerialized = Tuple[str, str, Dict[str, str], Optional[str], List[str]]
+
+class ApiClient:
+ """Generic API client for OpenAPI client library builds.
+
+ OpenAPI generic API client. This client handles the client-
+ server communication, and is invariant across implementations. Specifics of
+ the methods and models for each application are generated from the OpenAPI
+ templates.
+
+ :param configuration: .Configuration object for this client
+ :param header_name: a header to pass when making calls to the API.
+ :param header_value: a header value to pass when making calls to
+ the API.
+ :param cookie: a cookie to include in the header when making calls
+ to the API
+ """
+
+ PRIMITIVE_TYPES = (float, bool, bytes, str, int)
+ NATIVE_TYPES_MAPPING = {
+ 'int': int,
+ 'long': int, # TODO remove as only py3 is supported?
+ 'float': float,
+ 'str': str,
+ 'bool': bool,
+ 'date': datetime.date,
+ 'datetime': datetime.datetime,
+ 'decimal': decimal.Decimal,
+ 'object': object,
+ }
+ _pool = None
+
+ def __init__(
+ self,
+ configuration=None,
+ header_name=None,
+ header_value=None,
+ cookie=None
+ ) -> None:
+ # use default configuration if none is provided
+ if configuration is None:
+ configuration = Configuration.get_default()
+ self.configuration = configuration
+
+ self.rest_client = rest.RESTClientObject(configuration)
+ self.default_headers = {}
+ if header_name is not None:
+ self.default_headers[header_name] = header_value
+ self.cookie = cookie
+ # Set default User-Agent.
+ self.user_agent = 'OpenAPI-Generator/1.0.0/python'
+ self.client_side_validation = configuration.client_side_validation
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ pass
+
+ @property
+ def user_agent(self):
+ """User agent for this API client"""
+ return self.default_headers['User-Agent']
+
+ @user_agent.setter
+ def user_agent(self, value):
+ self.default_headers['User-Agent'] = value
+
+ def set_default_header(self, header_name, header_value):
+ self.default_headers[header_name] = header_value
+
+
+ _default = None
+
+ @classmethod
+ def get_default(cls):
+ """Return new instance of ApiClient.
+
+ This method returns newly created, based on default constructor,
+ object of ApiClient class or returns a copy of default
+ ApiClient.
+
+ :return: The ApiClient object.
+ """
+ if cls._default is None:
+ cls._default = ApiClient()
+ return cls._default
+
+ @classmethod
+ def set_default(cls, default):
+ """Set default instance of ApiClient.
+
+ It stores default ApiClient.
+
+ :param default: object of ApiClient.
+ """
+ cls._default = default
+
+ def param_serialize(
+ self,
+ method,
+ resource_path,
+ path_params=None,
+ query_params=None,
+ header_params=None,
+ body=None,
+ post_params=None,
+ files=None, auth_settings=None,
+ collection_formats=None,
+ _host=None,
+ _request_auth=None
+ ) -> RequestSerialized:
+
+ """Builds the HTTP request params needed by the request.
+ :param method: Method to call.
+ :param resource_path: Path to method endpoint.
+ :param path_params: Path parameters in the url.
+ :param query_params: Query parameters in the url.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param auth_settings list: Auth Settings names for the request.
+ :param files dict: key -> filename, value -> filepath,
+ for `multipart/form-data`.
+ :param collection_formats: dict of collection formats for path, query,
+ header, and post parameters.
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ :return: tuple of form (path, http_method, query_params, header_params,
+ body, post_params, files)
+ """
+
+ config = self.configuration
+
+ # header parameters
+ header_params = header_params or {}
+ header_params.update(self.default_headers)
+ if self.cookie:
+ header_params['Cookie'] = self.cookie
+ if header_params:
+ header_params = self.sanitize_for_serialization(header_params)
+ header_params = dict(
+ self.parameters_to_tuples(header_params,collection_formats)
+ )
+
+ # path parameters
+ if path_params:
+ path_params = self.sanitize_for_serialization(path_params)
+ path_params = self.parameters_to_tuples(
+ path_params,
+ collection_formats
+ )
+ for k, v in path_params:
+ # specified safe chars, encode everything
+ resource_path = resource_path.replace(
+ '{%s}' % k,
+ quote(str(v), safe=config.safe_chars_for_path_param)
+ )
+
+ # post parameters
+ if post_params or files:
+ post_params = post_params if post_params else []
+ post_params = self.sanitize_for_serialization(post_params)
+ post_params = self.parameters_to_tuples(
+ post_params,
+ collection_formats
+ )
+ if files:
+ post_params.extend(self.files_parameters(files))
+
+ # auth setting
+ self.update_params_for_auth(
+ header_params,
+ query_params,
+ auth_settings,
+ resource_path,
+ method,
+ body,
+ request_auth=_request_auth
+ )
+
+ # body
+ if body:
+ body = self.sanitize_for_serialization(body)
+
+ # request url
+ if _host is None or self.configuration.ignore_operation_servers:
+ url = self.configuration.host + resource_path
+ else:
+ # use server/host defined in path or operation instead
+ url = _host + resource_path
+
+ # query parameters
+ if query_params:
+ query_params = self.sanitize_for_serialization(query_params)
+ url_query = self.parameters_to_url_query(
+ query_params,
+ collection_formats
+ )
+ url += "?" + url_query
+
+ return method, url, header_params, body, post_params
+
+
+ def call_api(
+ self,
+ method,
+ url,
+ header_params=None,
+ body=None,
+ post_params=None,
+ _request_timeout=None
+ ) -> rest.RESTResponse:
+ """Makes the HTTP request (synchronous)
+ :param method: Method to call.
+ :param url: Path to method endpoint.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param _request_timeout: timeout setting for this request.
+ :return: RESTResponse
+ """
+
+ try:
+ # perform request and return response
+ response_data = self.rest_client.request(
+ method, url,
+ headers=header_params,
+ body=body, post_params=post_params,
+ _request_timeout=_request_timeout
+ )
+
+ except ApiException as e:
+ raise e
+
+ return response_data
+
+ def response_deserialize(
+ self,
+ response_data: rest.RESTResponse,
+ response_types_map: Optional[Dict[str, ApiResponseT]]=None
+ ) -> ApiResponse[ApiResponseT]:
+ """Deserializes response into an object.
+ :param response_data: RESTResponse object to be deserialized.
+ :param response_types_map: dict of response types.
+ :return: ApiResponse
+ """
+
+ msg = "RESTResponse.read() must be called before passing it to response_deserialize()"
+ assert response_data.data is not None, msg
+
+ response_type = response_types_map.get(str(response_data.status), None)
+ if not response_type and isinstance(response_data.status, int) and 100 <= response_data.status <= 599:
+ # if not found, look for '1XX', '2XX', etc.
+ response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
+
+ # deserialize response data
+ response_text = None
+ return_data = None
+ try:
+ if response_type == "bytearray":
+ return_data = response_data.data
+ elif response_type == "file":
+ return_data = self.__deserialize_file(response_data)
+ elif response_type is not None:
+ match = None
+ content_type = response_data.getheader('content-type')
+ if content_type is not None:
+ match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
+ encoding = match.group(1) if match else "utf-8"
+ response_text = response_data.data.decode(encoding)
+ return_data = self.deserialize(response_text, response_type, content_type)
+ finally:
+ if not 200 <= response_data.status <= 299:
+ raise ApiException.from_response(
+ http_resp=response_data,
+ body=response_text,
+ data=return_data,
+ )
+
+ return ApiResponse(
+ status_code = response_data.status,
+ data = return_data,
+ headers = response_data.getheaders(),
+ raw_data = response_data.data
+ )
+
+ def sanitize_for_serialization(self, obj):
+ """Builds a JSON POST object.
+
+ If obj is None, return None.
+ If obj is SecretStr, return obj.get_secret_value()
+ If obj is str, int, long, float, bool, return directly.
+ If obj is datetime.datetime, datetime.date
+ convert to string in iso8601 format.
+ If obj is decimal.Decimal return string representation.
+ If obj is list, sanitize each element in the list.
+ If obj is dict, return the dict.
+ If obj is OpenAPI model, return the properties dict.
+
+ :param obj: The data to serialize.
+ :return: The serialized form of data.
+ """
+ if obj is None:
+ return None
+ elif isinstance(obj, Enum):
+ return obj.value
+ elif isinstance(obj, SecretStr):
+ return obj.get_secret_value()
+ elif isinstance(obj, self.PRIMITIVE_TYPES):
+ return obj
+ elif isinstance(obj, list):
+ return [
+ self.sanitize_for_serialization(sub_obj) for sub_obj in obj
+ ]
+ elif isinstance(obj, tuple):
+ return tuple(
+ self.sanitize_for_serialization(sub_obj) for sub_obj in obj
+ )
+ elif isinstance(obj, (datetime.datetime, datetime.date)):
+ return obj.isoformat()
+ elif isinstance(obj, decimal.Decimal):
+ return str(obj)
+
+ elif isinstance(obj, dict):
+ obj_dict = obj
+ else:
+ # Convert model obj to dict except
+ # attributes `openapi_types`, `attribute_map`
+ # and attributes which value is not None.
+ # Convert attribute name to json key in
+ # model definition for request.
+ if hasattr(obj, 'to_dict') and callable(getattr(obj, 'to_dict')):
+ obj_dict = obj.to_dict()
+ else:
+ obj_dict = obj.__dict__
+
+ return {
+ key: self.sanitize_for_serialization(val)
+ for key, val in obj_dict.items()
+ }
+
+ def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
+ """Deserializes response into an object.
+
+ :param response: RESTResponse object to be deserialized.
+ :param response_type: class literal for
+ deserialized object, or string of class name.
+ :param content_type: content type of response.
+
+ :return: deserialized object.
+ """
+
+ # fetch data from response object
+ if content_type is None:
+ try:
+ data = json.loads(response_text)
+ except ValueError:
+ data = response_text
+ elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
+ if response_text == "":
+ data = ""
+ else:
+ data = json.loads(response_text)
+ elif re.match(r'^text\/[a-z.+-]+\s*(;|$)', content_type, re.IGNORECASE):
+ data = response_text
+ else:
+ raise ApiException(
+ status=0,
+ reason="Unsupported content type: {0}".format(content_type)
+ )
+
+ return self.__deserialize(data, response_type)
+
+ def __deserialize(self, data, klass):
+ """Deserializes dict, list, str into an object.
+
+ :param data: dict, list or str.
+ :param klass: class literal, or string of class name.
+
+ :return: object.
+ """
+ if data is None:
+ return None
+
+ if isinstance(klass, str):
+ if klass.startswith('List['):
+ m = re.match(r'List\[(.*)]', klass)
+ assert m is not None, "Malformed List type definition"
+ sub_kls = m.group(1)
+ return [self.__deserialize(sub_data, sub_kls)
+ for sub_data in data]
+
+ if klass.startswith('Dict['):
+ m = re.match(r'Dict\[([^,]*), (.*)]', klass)
+ assert m is not None, "Malformed Dict type definition"
+ sub_kls = m.group(2)
+ return {k: self.__deserialize(v, sub_kls)
+ for k, v in data.items()}
+
+ # convert str to class
+ if klass in self.NATIVE_TYPES_MAPPING:
+ klass = self.NATIVE_TYPES_MAPPING[klass]
+ else:
+ klass = getattr(generated.immich.openapi_client.models, klass)
+
+ if klass in self.PRIMITIVE_TYPES:
+ return self.__deserialize_primitive(data, klass)
+ elif klass == object:
+ return self.__deserialize_object(data)
+ elif klass == datetime.date:
+ return self.__deserialize_date(data)
+ elif klass == datetime.datetime:
+ return self.__deserialize_datetime(data)
+ elif klass == decimal.Decimal:
+ return decimal.Decimal(data)
+ elif issubclass(klass, Enum):
+ return self.__deserialize_enum(data, klass)
+ else:
+ return self.__deserialize_model(data, klass)
+
+ def parameters_to_tuples(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: Parameters as list of tuples, collections formatted
+ """
+ new_params: List[Tuple[str, str]] = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in params.items() if isinstance(params, dict) else params:
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, value) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(str(value) for value in v)))
+ else:
+ new_params.append((k, v))
+ return new_params
+
+ def parameters_to_url_query(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: URL query string (e.g. a=Hello%20World&b=123)
+ """
+ new_params: List[Tuple[str, str]] = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in params.items() if isinstance(params, dict) else params:
+ if isinstance(v, bool):
+ v = str(v).lower()
+ if isinstance(v, (int, float)):
+ v = str(v)
+ if isinstance(v, dict):
+ v = json.dumps(v)
+
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, quote(str(value))) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(quote(str(value)) for value in v))
+ )
+ else:
+ new_params.append((k, quote(str(v))))
+
+ return "&".join(["=".join(map(str, item)) for item in new_params])
+
+ def files_parameters(
+ self,
+ files: Dict[str, Union[str, bytes, List[str], List[bytes], Tuple[str, bytes]]],
+ ):
+ """Builds form parameters.
+
+ :param files: File parameters.
+ :return: Form parameters with files.
+ """
+ params = []
+ for k, v in files.items():
+ if isinstance(v, str):
+ with open(v, 'rb') as f:
+ filename = os.path.basename(f.name)
+ filedata = f.read()
+ elif isinstance(v, bytes):
+ filename = k
+ filedata = v
+ elif isinstance(v, tuple):
+ filename, filedata = v
+ elif isinstance(v, list):
+ for file_param in v:
+ params.extend(self.files_parameters({k: file_param}))
+ continue
+ else:
+ raise ValueError("Unsupported file value")
+ mimetype = (
+ mimetypes.guess_type(filename)[0]
+ or 'application/octet-stream'
+ )
+ params.append(
+ tuple([k, tuple([filename, filedata, mimetype])])
+ )
+ return params
+
+ def select_header_accept(self, accepts: List[str]) -> Optional[str]:
+ """Returns `Accept` based on an array of accepts provided.
+
+ :param accepts: List of headers.
+ :return: Accept (e.g. application/json).
+ """
+ if not accepts:
+ return None
+
+ for accept in accepts:
+ if re.search('json', accept, re.IGNORECASE):
+ return accept
+
+ return accepts[0]
+
+ def select_header_content_type(self, content_types):
+ """Returns `Content-Type` based on an array of content_types provided.
+
+ :param content_types: List of content-types.
+ :return: Content-Type (e.g. application/json).
+ """
+ if not content_types:
+ return None
+
+ for content_type in content_types:
+ if re.search('json', content_type, re.IGNORECASE):
+ return content_type
+
+ return content_types[0]
+
+ def update_params_for_auth(
+ self,
+ headers,
+ queries,
+ auth_settings,
+ resource_path,
+ method,
+ body,
+ request_auth=None
+ ) -> None:
+ """Updates header and query params based on authentication setting.
+
+ :param headers: Header parameters dict to be updated.
+ :param queries: Query parameters tuple list to be updated.
+ :param auth_settings: Authentication setting identifiers list.
+ :resource_path: A string representation of the HTTP request resource path.
+ :method: A string representation of the HTTP request method.
+ :body: A object representing the body of the HTTP request.
+ The object type is the return value of sanitize_for_serialization().
+ :param request_auth: if set, the provided settings will
+ override the token in the configuration.
+ """
+ if not auth_settings:
+ return
+
+ if request_auth:
+ self._apply_auth_params(
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ request_auth
+ )
+ else:
+ for auth in auth_settings:
+ auth_setting = self.configuration.auth_settings().get(auth)
+ if auth_setting:
+ self._apply_auth_params(
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ auth_setting
+ )
+
+ def _apply_auth_params(
+ self,
+ headers,
+ queries,
+ resource_path,
+ method,
+ body,
+ auth_setting
+ ) -> None:
+ """Updates the request parameters based on a single auth_setting
+
+ :param headers: Header parameters dict to be updated.
+ :param queries: Query parameters tuple list to be updated.
+ :resource_path: A string representation of the HTTP request resource path.
+ :method: A string representation of the HTTP request method.
+ :body: A object representing the body of the HTTP request.
+ The object type is the return value of sanitize_for_serialization().
+ :param auth_setting: auth settings for the endpoint
+ """
+ if auth_setting['in'] == 'cookie':
+ headers['Cookie'] = auth_setting['value']
+ elif auth_setting['in'] == 'header':
+ if auth_setting['type'] != 'http-signature':
+ headers[auth_setting['key']] = auth_setting['value']
+ elif auth_setting['in'] == 'query':
+ queries.append((auth_setting['key'], auth_setting['value']))
+ else:
+ raise ApiValueError(
+ 'Authentication token must be in `query` or `header`'
+ )
+
+ def __deserialize_file(self, response):
+ """Deserializes body to file
+
+ Saves response body into a file in a temporary folder,
+ using the filename from the `Content-Disposition` header if provided.
+
+ handle file downloading
+ save response body into a tmp file and return the instance
+
+ :param response: RESTResponse.
+ :return: file path.
+ """
+ fd, path = tempfile.mkstemp(dir=self.configuration.temp_folder_path)
+ os.close(fd)
+ os.remove(path)
+
+ content_disposition = response.getheader("Content-Disposition")
+ if content_disposition:
+ m = re.search(
+ r'filename=[\'"]?([^\'"\s]+)[\'"]?',
+ content_disposition
+ )
+ assert m is not None, "Unexpected 'content-disposition' header value"
+ filename = m.group(1)
+ path = os.path.join(os.path.dirname(path), filename)
+
+ with open(path, "wb") as f:
+ f.write(response.data)
+
+ return path
+
+ def __deserialize_primitive(self, data, klass):
+ """Deserializes string to primitive type.
+
+ :param data: str.
+ :param klass: class literal.
+
+ :return: int, long, float, str, bool.
+ """
+ try:
+ return klass(data)
+ except UnicodeEncodeError:
+ return str(data)
+ except TypeError:
+ return data
+
+ def __deserialize_object(self, value):
+ """Return an original value.
+
+ :return: object.
+ """
+ return value
+
+ def __deserialize_date(self, string):
+ """Deserializes string to date.
+
+ :param string: str.
+ :return: date.
+ """
+ try:
+ return parse(string).date()
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason="Failed to parse `{0}` as date object".format(string)
+ )
+
+ def __deserialize_datetime(self, string):
+ """Deserializes string to datetime.
+
+ The string should be in iso8601 datetime format.
+
+ :param string: str.
+ :return: datetime.
+ """
+ try:
+ return parse(string)
+ except ImportError:
+ return string
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason=(
+ "Failed to parse `{0}` as datetime object"
+ .format(string)
+ )
+ )
+
+ def __deserialize_enum(self, data, klass):
+ """Deserializes primitive type to enum.
+
+ :param data: primitive type.
+ :param klass: class literal.
+ :return: enum value.
+ """
+ try:
+ return klass(data)
+ except ValueError:
+ raise rest.ApiException(
+ status=0,
+ reason=(
+ "Failed to parse `{0}` as `{1}`"
+ .format(data, klass)
+ )
+ )
+
+ def __deserialize_model(self, data, klass):
+ """Deserializes list or dict to model.
+
+ :param data: dict, list.
+ :param klass: class literal.
+ :return: model object.
+ """
+
+ return klass.from_dict(data)
diff --git a/generated/immich/openapi_client/api_response.py b/generated/immich/openapi_client/api_response.py
new file mode 100644
index 0000000..9bc7c11
--- /dev/null
+++ b/generated/immich/openapi_client/api_response.py
@@ -0,0 +1,21 @@
+"""API response object."""
+
+from __future__ import annotations
+from typing import Optional, Generic, Mapping, TypeVar
+from pydantic import Field, StrictInt, StrictBytes, BaseModel
+
+T = TypeVar("T")
+
+class ApiResponse(BaseModel, Generic[T]):
+ """
+ API response object
+ """
+
+ status_code: StrictInt = Field(description="HTTP status code")
+ headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
+ data: T = Field(description="Deserialized data given the data type")
+ raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
+
+ model_config = {
+ "arbitrary_types_allowed": True
+ }
diff --git a/generated/immich/openapi_client/configuration.py b/generated/immich/openapi_client/configuration.py
new file mode 100644
index 0000000..bc78f4b
--- /dev/null
+++ b/generated/immich/openapi_client/configuration.py
@@ -0,0 +1,621 @@
+# 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
+
+
+import copy
+import http.client as httplib
+import logging
+from logging import FileHandler
+import multiprocessing
+import sys
+from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
+from typing_extensions import NotRequired, Self
+
+import urllib3
+
+
+JSON_SCHEMA_VALIDATION_KEYWORDS = {
+ 'multipleOf', 'maximum', 'exclusiveMaximum',
+ 'minimum', 'exclusiveMinimum', 'maxLength',
+ 'minLength', 'pattern', 'maxItems', 'minItems'
+}
+
+ServerVariablesT = Dict[str, str]
+
+GenericAuthSetting = TypedDict(
+ "GenericAuthSetting",
+ {
+ "type": str,
+ "in": str,
+ "key": str,
+ "value": str,
+ },
+)
+
+
+OAuth2AuthSetting = TypedDict(
+ "OAuth2AuthSetting",
+ {
+ "type": Literal["oauth2"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+APIKeyAuthSetting = TypedDict(
+ "APIKeyAuthSetting",
+ {
+ "type": Literal["api_key"],
+ "in": str,
+ "key": str,
+ "value": Optional[str],
+ },
+)
+
+
+BasicAuthSetting = TypedDict(
+ "BasicAuthSetting",
+ {
+ "type": Literal["basic"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": Optional[str],
+ },
+)
+
+
+BearerFormatAuthSetting = TypedDict(
+ "BearerFormatAuthSetting",
+ {
+ "type": Literal["bearer"],
+ "in": Literal["header"],
+ "format": Literal["JWT"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+BearerAuthSetting = TypedDict(
+ "BearerAuthSetting",
+ {
+ "type": Literal["bearer"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": str,
+ },
+)
+
+
+HTTPSignatureAuthSetting = TypedDict(
+ "HTTPSignatureAuthSetting",
+ {
+ "type": Literal["http-signature"],
+ "in": Literal["header"],
+ "key": Literal["Authorization"],
+ "value": None,
+ },
+)
+
+
+AuthSettings = TypedDict(
+ "AuthSettings",
+ {
+ "bearer": BearerFormatAuthSetting,
+ "cookie": APIKeyAuthSetting,
+ "api_key": APIKeyAuthSetting,
+ },
+ total=False,
+)
+
+
+class HostSettingVariable(TypedDict):
+ description: str
+ default_value: str
+ enum_values: List[str]
+
+
+class HostSetting(TypedDict):
+ url: str
+ description: str
+ variables: NotRequired[Dict[str, HostSettingVariable]]
+
+
+class Configuration:
+ """This class contains various settings of the API client.
+
+ :param host: Base url.
+ :param ignore_operation_servers
+ Boolean to ignore operation servers for the API client.
+ Config will use `host` as the base url regardless of the operation servers.
+ :param api_key: Dict to store API key(s).
+ Each entry in the dict specifies an API key.
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is the API key secret.
+ :param api_key_prefix: Dict to store API prefix (e.g. Bearer).
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is an API key prefix when generating the auth data.
+ :param username: Username for HTTP basic authentication.
+ :param password: Password for HTTP basic authentication.
+ :param access_token: Access token.
+ :param server_index: Index to servers configuration.
+ :param server_variables: Mapping with string values to replace variables in
+ templated server configuration. The validation of enums is performed for
+ variables with defined enum values before.
+ :param server_operation_index: Mapping from operation ID to an index to server
+ configuration.
+ :param server_operation_variables: Mapping from operation ID to a mapping with
+ string values to replace variables in templated server configuration.
+ The validation of enums is performed for variables with defined enum
+ values before.
+ :param ssl_ca_cert: str - the path to a file of concatenated CA certificates
+ in PEM format.
+ :param retries: Number of retries for API requests.
+ :param ca_cert_data: verify the peer using concatenated CA certificate data
+ in PEM (str) or DER (bytes) format.
+
+ :Example:
+
+ API Key Authentication Example.
+ Given the following security scheme in the OpenAPI specification:
+ components:
+ securitySchemes:
+ cookieAuth: # name for the security scheme
+ type: apiKey
+ in: cookie
+ name: JSESSIONID # cookie name
+
+ You can programmatically set the cookie:
+
+conf = generated.immich.openapi_client.Configuration(
+ api_key={'cookieAuth': 'abc123'}
+ api_key_prefix={'cookieAuth': 'JSESSIONID'}
+)
+
+ The following cookie will be added to the HTTP request:
+ Cookie: JSESSIONID abc123
+ """
+
+ _default: ClassVar[Optional[Self]] = None
+
+ def __init__(
+ self,
+ host: Optional[str]=None,
+ api_key: Optional[Dict[str, str]]=None,
+ api_key_prefix: Optional[Dict[str, str]]=None,
+ username: Optional[str]=None,
+ password: Optional[str]=None,
+ access_token: Optional[str]=None,
+ server_index: Optional[int]=None,
+ server_variables: Optional[ServerVariablesT]=None,
+ server_operation_index: Optional[Dict[int, int]]=None,
+ server_operation_variables: Optional[Dict[int, ServerVariablesT]]=None,
+ ignore_operation_servers: bool=False,
+ ssl_ca_cert: Optional[str]=None,
+ retries: Optional[int] = None,
+ ca_cert_data: Optional[Union[str, bytes]] = None,
+ *,
+ debug: Optional[bool] = None,
+ ) -> None:
+ """Constructor
+ """
+ self._base_path = "https://github.com/api" if host is None else host
+ """Default Base url
+ """
+ self.server_index = 0 if server_index is None and host is None else server_index
+ self.server_operation_index = server_operation_index or {}
+ """Default server index
+ """
+ self.server_variables = server_variables or {}
+ self.server_operation_variables = server_operation_variables or {}
+ """Default server variables
+ """
+ self.ignore_operation_servers = ignore_operation_servers
+ """Ignore operation servers
+ """
+ self.temp_folder_path = None
+ """Temp file folder for downloading files
+ """
+ # Authentication Settings
+ self.api_key = {}
+ if api_key:
+ self.api_key = api_key
+ """dict to store API key(s)
+ """
+ self.api_key_prefix = {}
+ if api_key_prefix:
+ self.api_key_prefix = api_key_prefix
+ """dict to store API prefix (e.g. Bearer)
+ """
+ self.refresh_api_key_hook = None
+ """function hook to refresh API key if expired
+ """
+ self.username = username
+ """Username for HTTP basic authentication
+ """
+ self.password = password
+ """Password for HTTP basic authentication
+ """
+ self.access_token = access_token
+ """Access token
+ """
+ self.logger = {}
+ """Logging Settings
+ """
+ self.logger["package_logger"] = logging.getLogger("generated.immich.openapi_client")
+ self.logger["urllib3_logger"] = logging.getLogger("urllib3")
+ self.logger_format = '%(asctime)s %(levelname)s %(message)s'
+ """Log format
+ """
+ self.logger_stream_handler = None
+ """Log stream handler
+ """
+ self.logger_file_handler: Optional[FileHandler] = None
+ """Log file handler
+ """
+ self.logger_file = None
+ """Debug file location
+ """
+ if debug is not None:
+ self.debug = debug
+ else:
+ self.__debug = False
+ """Debug switch
+ """
+
+ self.verify_ssl = True
+ """SSL/TLS verification
+ Set this to false to skip verifying SSL certificate when calling API
+ from https server.
+ """
+ self.ssl_ca_cert = ssl_ca_cert
+ """Set this to customize the certificate file to verify the peer.
+ """
+ self.ca_cert_data = ca_cert_data
+ """Set this to verify the peer using PEM (str) or DER (bytes)
+ certificate data.
+ """
+ self.cert_file = None
+ """client certificate file
+ """
+ self.key_file = None
+ """client key file
+ """
+ self.assert_hostname = None
+ """Set this to True/False to enable/disable SSL hostname verification.
+ """
+ self.tls_server_name = None
+ """SSL/TLS Server Name Indication (SNI)
+ Set this to the SNI value expected by the server.
+ """
+
+ self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
+ """urllib3 connection pool's maximum number of connections saved
+ per pool. urllib3 uses 1 connection as default value, but this is
+ not the best value when you are making a lot of possibly parallel
+ requests to the same host, which is often the case here.
+ cpu_count * 5 is used as default value to increase performance.
+ """
+
+ self.proxy: Optional[str] = None
+ """Proxy URL
+ """
+ self.proxy_headers = None
+ """Proxy headers
+ """
+ self.safe_chars_for_path_param = ''
+ """Safe chars for path_param
+ """
+ self.retries = retries
+ """Adding retries to override urllib3 default value 3
+ """
+ # Enable client side validation
+ self.client_side_validation = True
+
+ self.socket_options = None
+ """Options to pass down to the underlying urllib3 socket
+ """
+
+ self.datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z"
+ """datetime format
+ """
+
+ self.date_format = "%Y-%m-%d"
+ """date format
+ """
+
+ def __deepcopy__(self, memo: Dict[int, Any]) -> Self:
+ cls = self.__class__
+ result = cls.__new__(cls)
+ memo[id(self)] = result
+ for k, v in self.__dict__.items():
+ if k not in ('logger', 'logger_file_handler'):
+ setattr(result, k, copy.deepcopy(v, memo))
+ # shallow copy of loggers
+ result.logger = copy.copy(self.logger)
+ # use setters to configure loggers
+ result.logger_file = self.logger_file
+ result.debug = self.debug
+ return result
+
+ def __setattr__(self, name: str, value: Any) -> None:
+ object.__setattr__(self, name, value)
+
+ @classmethod
+ def set_default(cls, default: Optional[Self]) -> None:
+ """Set default instance of configuration.
+
+ It stores default configuration, which can be
+ returned by get_default_copy method.
+
+ :param default: object of Configuration
+ """
+ cls._default = default
+
+ @classmethod
+ def get_default_copy(cls) -> Self:
+ """Deprecated. Please use `get_default` instead.
+
+ Deprecated. Please use `get_default` instead.
+
+ :return: The configuration object.
+ """
+ return cls.get_default()
+
+ @classmethod
+ def get_default(cls) -> Self:
+ """Return the default configuration.
+
+ This method returns newly created, based on default constructor,
+ object of Configuration class or returns a copy of default
+ configuration.
+
+ :return: The configuration object.
+ """
+ if cls._default is None:
+ cls._default = cls()
+ return cls._default
+
+ @property
+ def logger_file(self) -> Optional[str]:
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ return self.__logger_file
+
+ @logger_file.setter
+ def logger_file(self, value: Optional[str]) -> None:
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ self.__logger_file = value
+ if self.__logger_file:
+ # If set logging file,
+ # then add file handler and remove stream handler.
+ self.logger_file_handler = logging.FileHandler(self.__logger_file)
+ self.logger_file_handler.setFormatter(self.logger_formatter)
+ for _, logger in self.logger.items():
+ logger.addHandler(self.logger_file_handler)
+
+ @property
+ def debug(self) -> bool:
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ return self.__debug
+
+ @debug.setter
+ def debug(self, value: bool) -> None:
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ self.__debug = value
+ if self.__debug:
+ # if debug status is True, turn on debug logging
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.DEBUG)
+ # turn on httplib debug
+ httplib.HTTPConnection.debuglevel = 1
+ else:
+ # if debug status is False, turn off debug logging,
+ # setting log level to default `logging.WARNING`
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.WARNING)
+ # turn off httplib debug
+ httplib.HTTPConnection.debuglevel = 0
+
+ @property
+ def logger_format(self) -> str:
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ return self.__logger_format
+
+ @logger_format.setter
+ def logger_format(self, value: str) -> None:
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ self.__logger_format = value
+ self.logger_formatter = logging.Formatter(self.__logger_format)
+
+ def get_api_key_with_prefix(self, identifier: str, alias: Optional[str]=None) -> Optional[str]:
+ """Gets API key (with prefix if set).
+
+ :param identifier: The identifier of apiKey.
+ :param alias: The alternative identifier of apiKey.
+ :return: The token for api key authentication.
+ """
+ if self.refresh_api_key_hook is not None:
+ self.refresh_api_key_hook(self)
+ key = self.api_key.get(identifier, self.api_key.get(alias) if alias is not None else None)
+ if key:
+ prefix = self.api_key_prefix.get(identifier)
+ if prefix:
+ return "%s %s" % (prefix, key)
+ else:
+ return key
+
+ return None
+
+ def get_basic_auth_token(self) -> Optional[str]:
+ """Gets HTTP basic authentication header (string).
+
+ :return: The token for basic HTTP authentication.
+ """
+ username = ""
+ if self.username is not None:
+ username = self.username
+ password = ""
+ if self.password is not None:
+ password = self.password
+ return urllib3.util.make_headers(
+ basic_auth=username + ':' + password
+ ).get('authorization')
+
+ def auth_settings(self)-> AuthSettings:
+ """Gets Auth Settings dict for api client.
+
+ :return: The Auth Settings information dict.
+ """
+ auth: AuthSettings = {}
+ if self.access_token is not None:
+ auth['bearer'] = {
+ 'type': 'bearer',
+ 'in': 'header',
+ 'format': 'JWT',
+ 'key': 'Authorization',
+ 'value': 'Bearer ' + self.access_token
+ }
+ if 'cookie' in self.api_key:
+ auth['cookie'] = {
+ 'type': 'api_key',
+ 'in': 'cookie',
+ 'key': 'immich_access_token',
+ 'value': self.get_api_key_with_prefix(
+ 'cookie',
+ ),
+ }
+ if 'api_key' in self.api_key:
+ auth['api_key'] = {
+ 'type': 'api_key',
+ 'in': 'header',
+ 'key': 'x-api-key',
+ 'value': self.get_api_key_with_prefix(
+ 'api_key',
+ ),
+ }
+ return auth
+
+ def to_debug_report(self) -> str:
+ """Gets the essential information for debugging.
+
+ :return: The report for debugging.
+ """
+ return "Python SDK Debug Report:\n"\
+ "OS: {env}\n"\
+ "Python Version: {pyversion}\n"\
+ "Version of the API: 1.131.3\n"\
+ "SDK Package Version: 1.0.0".\
+ format(env=sys.platform, pyversion=sys.version)
+
+ def get_host_settings(self) -> List[HostSetting]:
+ """Gets an array of host settings
+
+ :return: An array of host settings
+ """
+ return [
+ {
+ 'url': "https://github.com/api",
+ 'description': "No description provided",
+ }
+ ]
+
+ def get_host_from_settings(
+ self,
+ index: Optional[int],
+ variables: Optional[ServerVariablesT]=None,
+ servers: Optional[List[HostSetting]]=None,
+ ) -> str:
+ """Gets host URL based on the index and variables
+ :param index: array index of the host settings
+ :param variables: hash of variable and the corresponding value
+ :param servers: an array of host settings or None
+ :return: URL based on host settings
+ """
+ if index is None:
+ return self._base_path
+
+ variables = {} if variables is None else variables
+ servers = self.get_host_settings() if servers is None else servers
+
+ try:
+ server = servers[index]
+ except IndexError:
+ raise ValueError(
+ "Invalid index {0} when selecting the host settings. "
+ "Must be less than {1}".format(index, len(servers)))
+
+ url = server['url']
+
+ # go through variables and replace placeholders
+ for variable_name, variable in server.get('variables', {}).items():
+ used_value = variables.get(
+ variable_name, variable['default_value'])
+
+ if 'enum_values' in variable \
+ and used_value not in variable['enum_values']:
+ raise ValueError(
+ "The variable `{0}` in the host URL has invalid value "
+ "{1}. Must be {2}.".format(
+ variable_name, variables[variable_name],
+ variable['enum_values']))
+
+ url = url.replace("{" + variable_name + "}", used_value)
+
+ return url
+
+ @property
+ def host(self) -> str:
+ """Return generated host."""
+ return self.get_host_from_settings(self.server_index, variables=self.server_variables)
+
+ @host.setter
+ def host(self, value: str) -> None:
+ """Fix base path."""
+ self._base_path = value
+ self.server_index = None
diff --git a/generated/immich/openapi_client/docs/APIKeyCreateDto.md b/generated/immich/openapi_client/docs/APIKeyCreateDto.md
new file mode 100644
index 0000000..35ca571
--- /dev/null
+++ b/generated/immich/openapi_client/docs/APIKeyCreateDto.md
@@ -0,0 +1,30 @@
+# APIKeyCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | | [optional]
+**permissions** | [**List[Permission]**](Permission.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.api_key_create_dto import APIKeyCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of APIKeyCreateDto from a JSON string
+api_key_create_dto_instance = APIKeyCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(APIKeyCreateDto.to_json())
+
+# convert the object into a dict
+api_key_create_dto_dict = api_key_create_dto_instance.to_dict()
+# create an instance of APIKeyCreateDto from a dict
+api_key_create_dto_from_dict = APIKeyCreateDto.from_dict(api_key_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/APIKeyCreateResponseDto.md b/generated/immich/openapi_client/docs/APIKeyCreateResponseDto.md
new file mode 100644
index 0000000..19dacd8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/APIKeyCreateResponseDto.md
@@ -0,0 +1,30 @@
+# APIKeyCreateResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**api_key** | [**APIKeyResponseDto**](APIKeyResponseDto.md) | |
+**secret** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.api_key_create_response_dto import APIKeyCreateResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of APIKeyCreateResponseDto from a JSON string
+api_key_create_response_dto_instance = APIKeyCreateResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(APIKeyCreateResponseDto.to_json())
+
+# convert the object into a dict
+api_key_create_response_dto_dict = api_key_create_response_dto_instance.to_dict()
+# create an instance of APIKeyCreateResponseDto from a dict
+api_key_create_response_dto_from_dict = APIKeyCreateResponseDto.from_dict(api_key_create_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/APIKeyResponseDto.md b/generated/immich/openapi_client/docs/APIKeyResponseDto.md
new file mode 100644
index 0000000..296f8ce
--- /dev/null
+++ b/generated/immich/openapi_client/docs/APIKeyResponseDto.md
@@ -0,0 +1,33 @@
+# APIKeyResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**created_at** | **datetime** | |
+**id** | **str** | |
+**name** | **str** | |
+**permissions** | [**List[Permission]**](Permission.md) | |
+**updated_at** | **datetime** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.api_key_response_dto import APIKeyResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of APIKeyResponseDto from a JSON string
+api_key_response_dto_instance = APIKeyResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(APIKeyResponseDto.to_json())
+
+# convert the object into a dict
+api_key_response_dto_dict = api_key_response_dto_instance.to_dict()
+# create an instance of APIKeyResponseDto from a dict
+api_key_response_dto_from_dict = APIKeyResponseDto.from_dict(api_key_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/APIKeyUpdateDto.md b/generated/immich/openapi_client/docs/APIKeyUpdateDto.md
new file mode 100644
index 0000000..92a54a7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/APIKeyUpdateDto.md
@@ -0,0 +1,29 @@
+# APIKeyUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.api_key_update_dto import APIKeyUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of APIKeyUpdateDto from a JSON string
+api_key_update_dto_instance = APIKeyUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(APIKeyUpdateDto.to_json())
+
+# convert the object into a dict
+api_key_update_dto_dict = api_key_update_dto_instance.to_dict()
+# create an instance of APIKeyUpdateDto from a dict
+api_key_update_dto_from_dict = APIKeyUpdateDto.from_dict(api_key_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/APIKeysApi.md b/generated/immich/openapi_client/docs/APIKeysApi.md
new file mode 100644
index 0000000..7343715
--- /dev/null
+++ b/generated/immich/openapi_client/docs/APIKeysApi.md
@@ -0,0 +1,445 @@
+# generated.immich.openapi_client.APIKeysApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_api_key**](APIKeysApi.md#create_api_key) | **POST** /api-keys |
+[**delete_api_key**](APIKeysApi.md#delete_api_key) | **DELETE** /api-keys/{id} |
+[**get_api_key**](APIKeysApi.md#get_api_key) | **GET** /api-keys/{id} |
+[**get_api_keys**](APIKeysApi.md#get_api_keys) | **GET** /api-keys |
+[**update_api_key**](APIKeysApi.md#update_api_key) | **PUT** /api-keys/{id} |
+
+
+# **create_api_key**
+> APIKeyCreateResponseDto create_api_key(api_key_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.APIKeysApi(api_client)
+ api_key_create_dto = generated.immich.openapi_client.APIKeyCreateDto() # APIKeyCreateDto |
+
+ try:
+ api_response = api_instance.create_api_key(api_key_create_dto)
+ print("The response of APIKeysApi->create_api_key:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling APIKeysApi->create_api_key: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **api_key_create_dto** | [**APIKeyCreateDto**](APIKeyCreateDto.md)| |
+
+### Return type
+
+[**APIKeyCreateResponseDto**](APIKeyCreateResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_api_key**
+> delete_api_key(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.APIKeysApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_api_key(id)
+ except Exception as e:
+ print("Exception when calling APIKeysApi->delete_api_key: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_api_key**
+> APIKeyResponseDto get_api_key(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.api_key_response_dto import APIKeyResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.APIKeysApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_api_key(id)
+ print("The response of APIKeysApi->get_api_key:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling APIKeysApi->get_api_key: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**APIKeyResponseDto**](APIKeyResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_api_keys**
+> List[APIKeyResponseDto] get_api_keys()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.api_key_response_dto import APIKeyResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.APIKeysApi(api_client)
+
+ try:
+ api_response = api_instance.get_api_keys()
+ print("The response of APIKeysApi->get_api_keys:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling APIKeysApi->get_api_keys: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[APIKeyResponseDto]**](APIKeyResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_api_key**
+> APIKeyResponseDto update_api_key(id, api_key_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.APIKeysApi(api_client)
+ id = 'id_example' # str |
+ api_key_update_dto = generated.immich.openapi_client.APIKeyUpdateDto() # APIKeyUpdateDto |
+
+ try:
+ api_response = api_instance.update_api_key(id, api_key_update_dto)
+ print("The response of APIKeysApi->update_api_key:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling APIKeysApi->update_api_key: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **api_key_update_dto** | [**APIKeyUpdateDto**](APIKeyUpdateDto.md)| |
+
+### Return type
+
+[**APIKeyResponseDto**](APIKeyResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/ActivitiesApi.md b/generated/immich/openapi_client/docs/ActivitiesApi.md
new file mode 100644
index 0000000..a1c4446
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ActivitiesApi.md
@@ -0,0 +1,370 @@
+# generated.immich.openapi_client.ActivitiesApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_activity**](ActivitiesApi.md#create_activity) | **POST** /activities |
+[**delete_activity**](ActivitiesApi.md#delete_activity) | **DELETE** /activities/{id} |
+[**get_activities**](ActivitiesApi.md#get_activities) | **GET** /activities |
+[**get_activity_statistics**](ActivitiesApi.md#get_activity_statistics) | **GET** /activities/statistics |
+
+
+# **create_activity**
+> ActivityResponseDto create_activity(activity_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ActivitiesApi(api_client)
+ activity_create_dto = generated.immich.openapi_client.ActivityCreateDto() # ActivityCreateDto |
+
+ try:
+ api_response = api_instance.create_activity(activity_create_dto)
+ print("The response of ActivitiesApi->create_activity:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ActivitiesApi->create_activity: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **activity_create_dto** | [**ActivityCreateDto**](ActivityCreateDto.md)| |
+
+### Return type
+
+[**ActivityResponseDto**](ActivityResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_activity**
+> delete_activity(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ActivitiesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_activity(id)
+ except Exception as e:
+ print("Exception when calling ActivitiesApi->delete_activity: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_activities**
+> List[ActivityResponseDto] get_activities(album_id, asset_id=asset_id, level=level, type=type, user_id=user_id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.activity_response_dto import ActivityResponseDto
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ActivitiesApi(api_client)
+ album_id = 'album_id_example' # str |
+ asset_id = 'asset_id_example' # str | (optional)
+ level = generated.immich.openapi_client.ReactionLevel() # ReactionLevel | (optional)
+ type = generated.immich.openapi_client.ReactionType() # ReactionType | (optional)
+ user_id = 'user_id_example' # str | (optional)
+
+ try:
+ api_response = api_instance.get_activities(album_id, asset_id=asset_id, level=level, type=type, user_id=user_id)
+ print("The response of ActivitiesApi->get_activities:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ActivitiesApi->get_activities: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **album_id** | **str**| |
+ **asset_id** | **str**| | [optional]
+ **level** | [**ReactionLevel**](.md)| | [optional]
+ **type** | [**ReactionType**](.md)| | [optional]
+ **user_id** | **str**| | [optional]
+
+### Return type
+
+[**List[ActivityResponseDto]**](ActivityResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_activity_statistics**
+> ActivityStatisticsResponseDto get_activity_statistics(album_id, asset_id=asset_id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.activity_statistics_response_dto import ActivityStatisticsResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ActivitiesApi(api_client)
+ album_id = 'album_id_example' # str |
+ asset_id = 'asset_id_example' # str | (optional)
+
+ try:
+ api_response = api_instance.get_activity_statistics(album_id, asset_id=asset_id)
+ print("The response of ActivitiesApi->get_activity_statistics:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ActivitiesApi->get_activity_statistics: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **album_id** | **str**| |
+ **asset_id** | **str**| | [optional]
+
+### Return type
+
+[**ActivityStatisticsResponseDto**](ActivityStatisticsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/ActivityCreateDto.md b/generated/immich/openapi_client/docs/ActivityCreateDto.md
new file mode 100644
index 0000000..6a0bdca
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ActivityCreateDto.md
@@ -0,0 +1,32 @@
+# ActivityCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_id** | **str** | |
+**asset_id** | **str** | | [optional]
+**comment** | **str** | | [optional]
+**type** | [**ReactionType**](ReactionType.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.activity_create_dto import ActivityCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ActivityCreateDto from a JSON string
+activity_create_dto_instance = ActivityCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(ActivityCreateDto.to_json())
+
+# convert the object into a dict
+activity_create_dto_dict = activity_create_dto_instance.to_dict()
+# create an instance of ActivityCreateDto from a dict
+activity_create_dto_from_dict = ActivityCreateDto.from_dict(activity_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ActivityResponseDto.md b/generated/immich/openapi_client/docs/ActivityResponseDto.md
new file mode 100644
index 0000000..201b012
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ActivityResponseDto.md
@@ -0,0 +1,34 @@
+# ActivityResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_id** | **str** | |
+**comment** | **str** | | [optional]
+**created_at** | **datetime** | |
+**id** | **str** | |
+**type** | [**ReactionType**](ReactionType.md) | |
+**user** | [**UserResponseDto**](UserResponseDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.activity_response_dto import ActivityResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ActivityResponseDto from a JSON string
+activity_response_dto_instance = ActivityResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ActivityResponseDto.to_json())
+
+# convert the object into a dict
+activity_response_dto_dict = activity_response_dto_instance.to_dict()
+# create an instance of ActivityResponseDto from a dict
+activity_response_dto_from_dict = ActivityResponseDto.from_dict(activity_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ActivityStatisticsResponseDto.md b/generated/immich/openapi_client/docs/ActivityStatisticsResponseDto.md
new file mode 100644
index 0000000..366a3a4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ActivityStatisticsResponseDto.md
@@ -0,0 +1,29 @@
+# ActivityStatisticsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**comments** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.activity_statistics_response_dto import ActivityStatisticsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ActivityStatisticsResponseDto from a JSON string
+activity_statistics_response_dto_instance = ActivityStatisticsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ActivityStatisticsResponseDto.to_json())
+
+# convert the object into a dict
+activity_statistics_response_dto_dict = activity_statistics_response_dto_instance.to_dict()
+# create an instance of ActivityStatisticsResponseDto from a dict
+activity_statistics_response_dto_from_dict = ActivityStatisticsResponseDto.from_dict(activity_statistics_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AddUsersDto.md b/generated/immich/openapi_client/docs/AddUsersDto.md
new file mode 100644
index 0000000..8713872
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AddUsersDto.md
@@ -0,0 +1,29 @@
+# AddUsersDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_users** | [**List[AlbumUserAddDto]**](AlbumUserAddDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.add_users_dto import AddUsersDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AddUsersDto from a JSON string
+add_users_dto_instance = AddUsersDto.from_json(json)
+# print the JSON string representation of the object
+print(AddUsersDto.to_json())
+
+# convert the object into a dict
+add_users_dto_dict = add_users_dto_instance.to_dict()
+# create an instance of AddUsersDto from a dict
+add_users_dto_from_dict = AddUsersDto.from_dict(add_users_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AdminOnboardingUpdateDto.md b/generated/immich/openapi_client/docs/AdminOnboardingUpdateDto.md
new file mode 100644
index 0000000..f16cfc5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AdminOnboardingUpdateDto.md
@@ -0,0 +1,29 @@
+# AdminOnboardingUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**is_onboarded** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.admin_onboarding_update_dto import AdminOnboardingUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AdminOnboardingUpdateDto from a JSON string
+admin_onboarding_update_dto_instance = AdminOnboardingUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(AdminOnboardingUpdateDto.to_json())
+
+# convert the object into a dict
+admin_onboarding_update_dto_dict = admin_onboarding_update_dto_instance.to_dict()
+# create an instance of AdminOnboardingUpdateDto from a dict
+admin_onboarding_update_dto_from_dict = AdminOnboardingUpdateDto.from_dict(admin_onboarding_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AlbumResponseDto.md b/generated/immich/openapi_client/docs/AlbumResponseDto.md
new file mode 100644
index 0000000..f81bfb3
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AlbumResponseDto.md
@@ -0,0 +1,46 @@
+# AlbumResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_name** | **str** | |
+**album_thumbnail_asset_id** | **str** | |
+**album_users** | [**List[AlbumUserResponseDto]**](AlbumUserResponseDto.md) | |
+**asset_count** | **int** | |
+**assets** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+**created_at** | **datetime** | |
+**description** | **str** | |
+**end_date** | **datetime** | | [optional]
+**has_shared_link** | **bool** | |
+**id** | **str** | |
+**is_activity_enabled** | **bool** | |
+**last_modified_asset_timestamp** | **datetime** | | [optional]
+**order** | [**AssetOrder**](AssetOrder.md) | | [optional]
+**owner** | [**UserResponseDto**](UserResponseDto.md) | |
+**owner_id** | **str** | |
+**shared** | **bool** | |
+**start_date** | **datetime** | | [optional]
+**updated_at** | **datetime** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AlbumResponseDto from a JSON string
+album_response_dto_instance = AlbumResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AlbumResponseDto.to_json())
+
+# convert the object into a dict
+album_response_dto_dict = album_response_dto_instance.to_dict()
+# create an instance of AlbumResponseDto from a dict
+album_response_dto_from_dict = AlbumResponseDto.from_dict(album_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AlbumStatisticsResponseDto.md b/generated/immich/openapi_client/docs/AlbumStatisticsResponseDto.md
new file mode 100644
index 0000000..f21994c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AlbumStatisticsResponseDto.md
@@ -0,0 +1,31 @@
+# AlbumStatisticsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**not_shared** | **int** | |
+**owned** | **int** | |
+**shared** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.album_statistics_response_dto import AlbumStatisticsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AlbumStatisticsResponseDto from a JSON string
+album_statistics_response_dto_instance = AlbumStatisticsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AlbumStatisticsResponseDto.to_json())
+
+# convert the object into a dict
+album_statistics_response_dto_dict = album_statistics_response_dto_instance.to_dict()
+# create an instance of AlbumStatisticsResponseDto from a dict
+album_statistics_response_dto_from_dict = AlbumStatisticsResponseDto.from_dict(album_statistics_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AlbumUserAddDto.md b/generated/immich/openapi_client/docs/AlbumUserAddDto.md
new file mode 100644
index 0000000..55c429a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AlbumUserAddDto.md
@@ -0,0 +1,30 @@
+# AlbumUserAddDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role** | [**AlbumUserRole**](AlbumUserRole.md) | | [optional]
+**user_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.album_user_add_dto import AlbumUserAddDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AlbumUserAddDto from a JSON string
+album_user_add_dto_instance = AlbumUserAddDto.from_json(json)
+# print the JSON string representation of the object
+print(AlbumUserAddDto.to_json())
+
+# convert the object into a dict
+album_user_add_dto_dict = album_user_add_dto_instance.to_dict()
+# create an instance of AlbumUserAddDto from a dict
+album_user_add_dto_from_dict = AlbumUserAddDto.from_dict(album_user_add_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AlbumUserCreateDto.md b/generated/immich/openapi_client/docs/AlbumUserCreateDto.md
new file mode 100644
index 0000000..2ca0d7a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AlbumUserCreateDto.md
@@ -0,0 +1,30 @@
+# AlbumUserCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role** | [**AlbumUserRole**](AlbumUserRole.md) | |
+**user_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.album_user_create_dto import AlbumUserCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AlbumUserCreateDto from a JSON string
+album_user_create_dto_instance = AlbumUserCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(AlbumUserCreateDto.to_json())
+
+# convert the object into a dict
+album_user_create_dto_dict = album_user_create_dto_instance.to_dict()
+# create an instance of AlbumUserCreateDto from a dict
+album_user_create_dto_from_dict = AlbumUserCreateDto.from_dict(album_user_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AlbumUserResponseDto.md b/generated/immich/openapi_client/docs/AlbumUserResponseDto.md
new file mode 100644
index 0000000..82ec299
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AlbumUserResponseDto.md
@@ -0,0 +1,30 @@
+# AlbumUserResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role** | [**AlbumUserRole**](AlbumUserRole.md) | |
+**user** | [**UserResponseDto**](UserResponseDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.album_user_response_dto import AlbumUserResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AlbumUserResponseDto from a JSON string
+album_user_response_dto_instance = AlbumUserResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AlbumUserResponseDto.to_json())
+
+# convert the object into a dict
+album_user_response_dto_dict = album_user_response_dto_instance.to_dict()
+# create an instance of AlbumUserResponseDto from a dict
+album_user_response_dto_from_dict = AlbumUserResponseDto.from_dict(album_user_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AlbumUserRole.md b/generated/immich/openapi_client/docs/AlbumUserRole.md
new file mode 100644
index 0000000..285d76a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AlbumUserRole.md
@@ -0,0 +1,12 @@
+# AlbumUserRole
+
+
+## Enum
+
+* `EDITOR` (value: `'editor'`)
+
+* `VIEWER` (value: `'viewer'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AlbumsApi.md b/generated/immich/openapi_client/docs/AlbumsApi.md
new file mode 100644
index 0000000..41b2d8c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AlbumsApi.md
@@ -0,0 +1,991 @@
+# generated.immich.openapi_client.AlbumsApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_assets_to_album**](AlbumsApi.md#add_assets_to_album) | **PUT** /albums/{id}/assets |
+[**add_users_to_album**](AlbumsApi.md#add_users_to_album) | **PUT** /albums/{id}/users |
+[**create_album**](AlbumsApi.md#create_album) | **POST** /albums |
+[**delete_album**](AlbumsApi.md#delete_album) | **DELETE** /albums/{id} |
+[**get_album_info**](AlbumsApi.md#get_album_info) | **GET** /albums/{id} |
+[**get_album_statistics**](AlbumsApi.md#get_album_statistics) | **GET** /albums/statistics |
+[**get_all_albums**](AlbumsApi.md#get_all_albums) | **GET** /albums |
+[**remove_asset_from_album**](AlbumsApi.md#remove_asset_from_album) | **DELETE** /albums/{id}/assets |
+[**remove_user_from_album**](AlbumsApi.md#remove_user_from_album) | **DELETE** /albums/{id}/user/{userId} |
+[**update_album_info**](AlbumsApi.md#update_album_info) | **PATCH** /albums/{id} |
+[**update_album_user**](AlbumsApi.md#update_album_user) | **PUT** /albums/{id}/user/{userId} |
+
+
+# **add_assets_to_album**
+> List[BulkIdResponseDto] add_assets_to_album(id, bulk_ids_dto, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.add_assets_to_album(id, bulk_ids_dto, key=key)
+ print("The response of AlbumsApi->add_assets_to_album:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->add_assets_to_album: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **add_users_to_album**
+> AlbumResponseDto add_users_to_album(id, add_users_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.add_users_dto import AddUsersDto
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+ add_users_dto = generated.immich.openapi_client.AddUsersDto() # AddUsersDto |
+
+ try:
+ api_response = api_instance.add_users_to_album(id, add_users_dto)
+ print("The response of AlbumsApi->add_users_to_album:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->add_users_to_album: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **add_users_dto** | [**AddUsersDto**](AddUsersDto.md)| |
+
+### Return type
+
+[**AlbumResponseDto**](AlbumResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_album**
+> AlbumResponseDto create_album(create_album_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.models.create_album_dto import CreateAlbumDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ create_album_dto = generated.immich.openapi_client.CreateAlbumDto() # CreateAlbumDto |
+
+ try:
+ api_response = api_instance.create_album(create_album_dto)
+ print("The response of AlbumsApi->create_album:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->create_album: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **create_album_dto** | [**CreateAlbumDto**](CreateAlbumDto.md)| |
+
+### Return type
+
+[**AlbumResponseDto**](AlbumResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_album**
+> delete_album(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_album(id)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->delete_album: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_album_info**
+> AlbumResponseDto get_album_info(id, key=key, without_assets=without_assets)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+ key = 'key_example' # str | (optional)
+ without_assets = True # bool | (optional)
+
+ try:
+ api_response = api_instance.get_album_info(id, key=key, without_assets=without_assets)
+ print("The response of AlbumsApi->get_album_info:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->get_album_info: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **key** | **str**| | [optional]
+ **without_assets** | **bool**| | [optional]
+
+### Return type
+
+[**AlbumResponseDto**](AlbumResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_album_statistics**
+> AlbumStatisticsResponseDto get_album_statistics()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.album_statistics_response_dto import AlbumStatisticsResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+
+ try:
+ api_response = api_instance.get_album_statistics()
+ print("The response of AlbumsApi->get_album_statistics:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->get_album_statistics: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**AlbumStatisticsResponseDto**](AlbumStatisticsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_albums**
+> List[AlbumResponseDto] get_all_albums(asset_id=asset_id, shared=shared)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ asset_id = 'asset_id_example' # str | Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums (optional)
+ shared = True # bool | (optional)
+
+ try:
+ api_response = api_instance.get_all_albums(asset_id=asset_id, shared=shared)
+ print("The response of AlbumsApi->get_all_albums:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->get_all_albums: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_id** | **str**| Only returns albums that contain the asset Ignores the shared parameter undefined: get all albums | [optional]
+ **shared** | **bool**| | [optional]
+
+### Return type
+
+[**List[AlbumResponseDto]**](AlbumResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **remove_asset_from_album**
+> List[BulkIdResponseDto] remove_asset_from_album(id, bulk_ids_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+
+ try:
+ api_response = api_instance.remove_asset_from_album(id, bulk_ids_dto)
+ print("The response of AlbumsApi->remove_asset_from_album:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->remove_asset_from_album: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **remove_user_from_album**
+> remove_user_from_album(id, user_id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+ user_id = 'user_id_example' # str |
+
+ try:
+ api_instance.remove_user_from_album(id, user_id)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->remove_user_from_album: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **user_id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_album_info**
+> AlbumResponseDto update_album_info(id, update_album_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.models.update_album_dto import UpdateAlbumDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+ update_album_dto = generated.immich.openapi_client.UpdateAlbumDto() # UpdateAlbumDto |
+
+ try:
+ api_response = api_instance.update_album_info(id, update_album_dto)
+ print("The response of AlbumsApi->update_album_info:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->update_album_info: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **update_album_dto** | [**UpdateAlbumDto**](UpdateAlbumDto.md)| |
+
+### Return type
+
+[**AlbumResponseDto**](AlbumResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_album_user**
+> update_album_user(id, user_id, update_album_user_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.update_album_user_dto import UpdateAlbumUserDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AlbumsApi(api_client)
+ id = 'id_example' # str |
+ user_id = 'user_id_example' # str |
+ update_album_user_dto = generated.immich.openapi_client.UpdateAlbumUserDto() # UpdateAlbumUserDto |
+
+ try:
+ api_instance.update_album_user(id, user_id, update_album_user_dto)
+ except Exception as e:
+ print("Exception when calling AlbumsApi->update_album_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **user_id** | **str**| |
+ **update_album_user_dto** | [**UpdateAlbumUserDto**](UpdateAlbumUserDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/AllJobStatusResponseDto.md b/generated/immich/openapi_client/docs/AllJobStatusResponseDto.md
new file mode 100644
index 0000000..f914df5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AllJobStatusResponseDto.md
@@ -0,0 +1,43 @@
+# AllJobStatusResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**background_task** | [**JobStatusDto**](JobStatusDto.md) | |
+**backup_database** | [**JobStatusDto**](JobStatusDto.md) | |
+**duplicate_detection** | [**JobStatusDto**](JobStatusDto.md) | |
+**face_detection** | [**JobStatusDto**](JobStatusDto.md) | |
+**facial_recognition** | [**JobStatusDto**](JobStatusDto.md) | |
+**library** | [**JobStatusDto**](JobStatusDto.md) | |
+**metadata_extraction** | [**JobStatusDto**](JobStatusDto.md) | |
+**migration** | [**JobStatusDto**](JobStatusDto.md) | |
+**notifications** | [**JobStatusDto**](JobStatusDto.md) | |
+**search** | [**JobStatusDto**](JobStatusDto.md) | |
+**sidecar** | [**JobStatusDto**](JobStatusDto.md) | |
+**smart_search** | [**JobStatusDto**](JobStatusDto.md) | |
+**storage_template_migration** | [**JobStatusDto**](JobStatusDto.md) | |
+**thumbnail_generation** | [**JobStatusDto**](JobStatusDto.md) | |
+**video_conversion** | [**JobStatusDto**](JobStatusDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.all_job_status_response_dto import AllJobStatusResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AllJobStatusResponseDto from a JSON string
+all_job_status_response_dto_instance = AllJobStatusResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AllJobStatusResponseDto.to_json())
+
+# convert the object into a dict
+all_job_status_response_dto_dict = all_job_status_response_dto_instance.to_dict()
+# create an instance of AllJobStatusResponseDto from a dict
+all_job_status_response_dto_from_dict = AllJobStatusResponseDto.from_dict(all_job_status_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetBulkDeleteDto.md b/generated/immich/openapi_client/docs/AssetBulkDeleteDto.md
new file mode 100644
index 0000000..9389f57
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetBulkDeleteDto.md
@@ -0,0 +1,30 @@
+# AssetBulkDeleteDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**force** | **bool** | | [optional]
+**ids** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_bulk_delete_dto import AssetBulkDeleteDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetBulkDeleteDto from a JSON string
+asset_bulk_delete_dto_instance = AssetBulkDeleteDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetBulkDeleteDto.to_json())
+
+# convert the object into a dict
+asset_bulk_delete_dto_dict = asset_bulk_delete_dto_instance.to_dict()
+# create an instance of AssetBulkDeleteDto from a dict
+asset_bulk_delete_dto_from_dict = AssetBulkDeleteDto.from_dict(asset_bulk_delete_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetBulkUpdateDto.md b/generated/immich/openapi_client/docs/AssetBulkUpdateDto.md
new file mode 100644
index 0000000..487808d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetBulkUpdateDto.md
@@ -0,0 +1,36 @@
+# AssetBulkUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**date_time_original** | **str** | | [optional]
+**duplicate_id** | **str** | | [optional]
+**ids** | **List[str]** | |
+**is_archived** | **bool** | | [optional]
+**is_favorite** | **bool** | | [optional]
+**latitude** | **float** | | [optional]
+**longitude** | **float** | | [optional]
+**rating** | **float** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_bulk_update_dto import AssetBulkUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetBulkUpdateDto from a JSON string
+asset_bulk_update_dto_instance = AssetBulkUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetBulkUpdateDto.to_json())
+
+# convert the object into a dict
+asset_bulk_update_dto_dict = asset_bulk_update_dto_instance.to_dict()
+# create an instance of AssetBulkUpdateDto from a dict
+asset_bulk_update_dto_from_dict = AssetBulkUpdateDto.from_dict(asset_bulk_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetBulkUploadCheckDto.md b/generated/immich/openapi_client/docs/AssetBulkUploadCheckDto.md
new file mode 100644
index 0000000..9cb7b25
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetBulkUploadCheckDto.md
@@ -0,0 +1,29 @@
+# AssetBulkUploadCheckDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | [**List[AssetBulkUploadCheckItem]**](AssetBulkUploadCheckItem.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_bulk_upload_check_dto import AssetBulkUploadCheckDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetBulkUploadCheckDto from a JSON string
+asset_bulk_upload_check_dto_instance = AssetBulkUploadCheckDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetBulkUploadCheckDto.to_json())
+
+# convert the object into a dict
+asset_bulk_upload_check_dto_dict = asset_bulk_upload_check_dto_instance.to_dict()
+# create an instance of AssetBulkUploadCheckDto from a dict
+asset_bulk_upload_check_dto_from_dict = AssetBulkUploadCheckDto.from_dict(asset_bulk_upload_check_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetBulkUploadCheckItem.md b/generated/immich/openapi_client/docs/AssetBulkUploadCheckItem.md
new file mode 100644
index 0000000..c143c88
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetBulkUploadCheckItem.md
@@ -0,0 +1,30 @@
+# AssetBulkUploadCheckItem
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**checksum** | **str** | base64 or hex encoded sha1 hash |
+**id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_bulk_upload_check_item import AssetBulkUploadCheckItem
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetBulkUploadCheckItem from a JSON string
+asset_bulk_upload_check_item_instance = AssetBulkUploadCheckItem.from_json(json)
+# print the JSON string representation of the object
+print(AssetBulkUploadCheckItem.to_json())
+
+# convert the object into a dict
+asset_bulk_upload_check_item_dict = asset_bulk_upload_check_item_instance.to_dict()
+# create an instance of AssetBulkUploadCheckItem from a dict
+asset_bulk_upload_check_item_from_dict = AssetBulkUploadCheckItem.from_dict(asset_bulk_upload_check_item_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetBulkUploadCheckResponseDto.md b/generated/immich/openapi_client/docs/AssetBulkUploadCheckResponseDto.md
new file mode 100644
index 0000000..dc7db7a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetBulkUploadCheckResponseDto.md
@@ -0,0 +1,29 @@
+# AssetBulkUploadCheckResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**results** | [**List[AssetBulkUploadCheckResult]**](AssetBulkUploadCheckResult.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_bulk_upload_check_response_dto import AssetBulkUploadCheckResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetBulkUploadCheckResponseDto from a JSON string
+asset_bulk_upload_check_response_dto_instance = AssetBulkUploadCheckResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetBulkUploadCheckResponseDto.to_json())
+
+# convert the object into a dict
+asset_bulk_upload_check_response_dto_dict = asset_bulk_upload_check_response_dto_instance.to_dict()
+# create an instance of AssetBulkUploadCheckResponseDto from a dict
+asset_bulk_upload_check_response_dto_from_dict = AssetBulkUploadCheckResponseDto.from_dict(asset_bulk_upload_check_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetBulkUploadCheckResult.md b/generated/immich/openapi_client/docs/AssetBulkUploadCheckResult.md
new file mode 100644
index 0000000..40037b5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetBulkUploadCheckResult.md
@@ -0,0 +1,33 @@
+# AssetBulkUploadCheckResult
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**action** | **str** | |
+**asset_id** | **str** | | [optional]
+**id** | **str** | |
+**is_trashed** | **bool** | | [optional]
+**reason** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_bulk_upload_check_result import AssetBulkUploadCheckResult
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetBulkUploadCheckResult from a JSON string
+asset_bulk_upload_check_result_instance = AssetBulkUploadCheckResult.from_json(json)
+# print the JSON string representation of the object
+print(AssetBulkUploadCheckResult.to_json())
+
+# convert the object into a dict
+asset_bulk_upload_check_result_dict = asset_bulk_upload_check_result_instance.to_dict()
+# create an instance of AssetBulkUploadCheckResult from a dict
+asset_bulk_upload_check_result_from_dict = AssetBulkUploadCheckResult.from_dict(asset_bulk_upload_check_result_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetDeltaSyncDto.md b/generated/immich/openapi_client/docs/AssetDeltaSyncDto.md
new file mode 100644
index 0000000..acb70b5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetDeltaSyncDto.md
@@ -0,0 +1,30 @@
+# AssetDeltaSyncDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**updated_after** | **datetime** | |
+**user_ids** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_delta_sync_dto import AssetDeltaSyncDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetDeltaSyncDto from a JSON string
+asset_delta_sync_dto_instance = AssetDeltaSyncDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetDeltaSyncDto.to_json())
+
+# convert the object into a dict
+asset_delta_sync_dto_dict = asset_delta_sync_dto_instance.to_dict()
+# create an instance of AssetDeltaSyncDto from a dict
+asset_delta_sync_dto_from_dict = AssetDeltaSyncDto.from_dict(asset_delta_sync_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetDeltaSyncResponseDto.md b/generated/immich/openapi_client/docs/AssetDeltaSyncResponseDto.md
new file mode 100644
index 0000000..5143ba4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetDeltaSyncResponseDto.md
@@ -0,0 +1,31 @@
+# AssetDeltaSyncResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**deleted** | **List[str]** | |
+**needs_full_sync** | **bool** | |
+**upserted** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_delta_sync_response_dto import AssetDeltaSyncResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetDeltaSyncResponseDto from a JSON string
+asset_delta_sync_response_dto_instance = AssetDeltaSyncResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetDeltaSyncResponseDto.to_json())
+
+# convert the object into a dict
+asset_delta_sync_response_dto_dict = asset_delta_sync_response_dto_instance.to_dict()
+# create an instance of AssetDeltaSyncResponseDto from a dict
+asset_delta_sync_response_dto_from_dict = AssetDeltaSyncResponseDto.from_dict(asset_delta_sync_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetFaceCreateDto.md b/generated/immich/openapi_client/docs/AssetFaceCreateDto.md
new file mode 100644
index 0000000..dc0d740
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetFaceCreateDto.md
@@ -0,0 +1,36 @@
+# AssetFaceCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_id** | **str** | |
+**height** | **int** | |
+**image_height** | **int** | |
+**image_width** | **int** | |
+**person_id** | **str** | |
+**width** | **int** | |
+**x** | **int** | |
+**y** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_face_create_dto import AssetFaceCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetFaceCreateDto from a JSON string
+asset_face_create_dto_instance = AssetFaceCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetFaceCreateDto.to_json())
+
+# convert the object into a dict
+asset_face_create_dto_dict = asset_face_create_dto_instance.to_dict()
+# create an instance of AssetFaceCreateDto from a dict
+asset_face_create_dto_from_dict = AssetFaceCreateDto.from_dict(asset_face_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetFaceDeleteDto.md b/generated/immich/openapi_client/docs/AssetFaceDeleteDto.md
new file mode 100644
index 0000000..7f6f66b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetFaceDeleteDto.md
@@ -0,0 +1,29 @@
+# AssetFaceDeleteDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**force** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_face_delete_dto import AssetFaceDeleteDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetFaceDeleteDto from a JSON string
+asset_face_delete_dto_instance = AssetFaceDeleteDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetFaceDeleteDto.to_json())
+
+# convert the object into a dict
+asset_face_delete_dto_dict = asset_face_delete_dto_instance.to_dict()
+# create an instance of AssetFaceDeleteDto from a dict
+asset_face_delete_dto_from_dict = AssetFaceDeleteDto.from_dict(asset_face_delete_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetFaceResponseDto.md b/generated/immich/openapi_client/docs/AssetFaceResponseDto.md
new file mode 100644
index 0000000..8c86cf5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetFaceResponseDto.md
@@ -0,0 +1,37 @@
+# AssetFaceResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bounding_box_x1** | **int** | |
+**bounding_box_x2** | **int** | |
+**bounding_box_y1** | **int** | |
+**bounding_box_y2** | **int** | |
+**id** | **str** | |
+**image_height** | **int** | |
+**image_width** | **int** | |
+**person** | [**PersonResponseDto**](PersonResponseDto.md) | |
+**source_type** | [**SourceType**](SourceType.md) | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_face_response_dto import AssetFaceResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetFaceResponseDto from a JSON string
+asset_face_response_dto_instance = AssetFaceResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetFaceResponseDto.to_json())
+
+# convert the object into a dict
+asset_face_response_dto_dict = asset_face_response_dto_instance.to_dict()
+# create an instance of AssetFaceResponseDto from a dict
+asset_face_response_dto_from_dict = AssetFaceResponseDto.from_dict(asset_face_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetFaceUpdateDto.md b/generated/immich/openapi_client/docs/AssetFaceUpdateDto.md
new file mode 100644
index 0000000..2fe01ac
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetFaceUpdateDto.md
@@ -0,0 +1,29 @@
+# AssetFaceUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**List[AssetFaceUpdateItem]**](AssetFaceUpdateItem.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_face_update_dto import AssetFaceUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetFaceUpdateDto from a JSON string
+asset_face_update_dto_instance = AssetFaceUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetFaceUpdateDto.to_json())
+
+# convert the object into a dict
+asset_face_update_dto_dict = asset_face_update_dto_instance.to_dict()
+# create an instance of AssetFaceUpdateDto from a dict
+asset_face_update_dto_from_dict = AssetFaceUpdateDto.from_dict(asset_face_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetFaceUpdateItem.md b/generated/immich/openapi_client/docs/AssetFaceUpdateItem.md
new file mode 100644
index 0000000..ba72217
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetFaceUpdateItem.md
@@ -0,0 +1,30 @@
+# AssetFaceUpdateItem
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_id** | **str** | |
+**person_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_face_update_item import AssetFaceUpdateItem
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetFaceUpdateItem from a JSON string
+asset_face_update_item_instance = AssetFaceUpdateItem.from_json(json)
+# print the JSON string representation of the object
+print(AssetFaceUpdateItem.to_json())
+
+# convert the object into a dict
+asset_face_update_item_dict = asset_face_update_item_instance.to_dict()
+# create an instance of AssetFaceUpdateItem from a dict
+asset_face_update_item_from_dict = AssetFaceUpdateItem.from_dict(asset_face_update_item_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetFaceWithoutPersonResponseDto.md b/generated/immich/openapi_client/docs/AssetFaceWithoutPersonResponseDto.md
new file mode 100644
index 0000000..c7d76cc
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetFaceWithoutPersonResponseDto.md
@@ -0,0 +1,36 @@
+# AssetFaceWithoutPersonResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bounding_box_x1** | **int** | |
+**bounding_box_x2** | **int** | |
+**bounding_box_y1** | **int** | |
+**bounding_box_y2** | **int** | |
+**id** | **str** | |
+**image_height** | **int** | |
+**image_width** | **int** | |
+**source_type** | [**SourceType**](SourceType.md) | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_face_without_person_response_dto import AssetFaceWithoutPersonResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetFaceWithoutPersonResponseDto from a JSON string
+asset_face_without_person_response_dto_instance = AssetFaceWithoutPersonResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetFaceWithoutPersonResponseDto.to_json())
+
+# convert the object into a dict
+asset_face_without_person_response_dto_dict = asset_face_without_person_response_dto_instance.to_dict()
+# create an instance of AssetFaceWithoutPersonResponseDto from a dict
+asset_face_without_person_response_dto_from_dict = AssetFaceWithoutPersonResponseDto.from_dict(asset_face_without_person_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetFullSyncDto.md b/generated/immich/openapi_client/docs/AssetFullSyncDto.md
new file mode 100644
index 0000000..093b9b6
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetFullSyncDto.md
@@ -0,0 +1,32 @@
+# AssetFullSyncDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**last_id** | **str** | | [optional]
+**limit** | **int** | |
+**updated_until** | **datetime** | |
+**user_id** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_full_sync_dto import AssetFullSyncDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetFullSyncDto from a JSON string
+asset_full_sync_dto_instance = AssetFullSyncDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetFullSyncDto.to_json())
+
+# convert the object into a dict
+asset_full_sync_dto_dict = asset_full_sync_dto_instance.to_dict()
+# create an instance of AssetFullSyncDto from a dict
+asset_full_sync_dto_from_dict = AssetFullSyncDto.from_dict(asset_full_sync_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetIdsDto.md b/generated/immich/openapi_client/docs/AssetIdsDto.md
new file mode 100644
index 0000000..8779d73
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetIdsDto.md
@@ -0,0 +1,29 @@
+# AssetIdsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_ids** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_ids_dto import AssetIdsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetIdsDto from a JSON string
+asset_ids_dto_instance = AssetIdsDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetIdsDto.to_json())
+
+# convert the object into a dict
+asset_ids_dto_dict = asset_ids_dto_instance.to_dict()
+# create an instance of AssetIdsDto from a dict
+asset_ids_dto_from_dict = AssetIdsDto.from_dict(asset_ids_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetIdsResponseDto.md b/generated/immich/openapi_client/docs/AssetIdsResponseDto.md
new file mode 100644
index 0000000..a7a62c5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetIdsResponseDto.md
@@ -0,0 +1,31 @@
+# AssetIdsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_id** | **str** | |
+**error** | **str** | | [optional]
+**success** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_ids_response_dto import AssetIdsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetIdsResponseDto from a JSON string
+asset_ids_response_dto_instance = AssetIdsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetIdsResponseDto.to_json())
+
+# convert the object into a dict
+asset_ids_response_dto_dict = asset_ids_response_dto_instance.to_dict()
+# create an instance of AssetIdsResponseDto from a dict
+asset_ids_response_dto_from_dict = AssetIdsResponseDto.from_dict(asset_ids_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetJobName.md b/generated/immich/openapi_client/docs/AssetJobName.md
new file mode 100644
index 0000000..6a2f0c1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetJobName.md
@@ -0,0 +1,16 @@
+# AssetJobName
+
+
+## Enum
+
+* `REFRESH_MINUS_FACES` (value: `'refresh-faces'`)
+
+* `REFRESH_MINUS_METADATA` (value: `'refresh-metadata'`)
+
+* `REGENERATE_MINUS_THUMBNAIL` (value: `'regenerate-thumbnail'`)
+
+* `TRANSCODE_MINUS_VIDEO` (value: `'transcode-video'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetJobsDto.md b/generated/immich/openapi_client/docs/AssetJobsDto.md
new file mode 100644
index 0000000..c57af01
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetJobsDto.md
@@ -0,0 +1,30 @@
+# AssetJobsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_ids** | **List[str]** | |
+**name** | [**AssetJobName**](AssetJobName.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_jobs_dto import AssetJobsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetJobsDto from a JSON string
+asset_jobs_dto_instance = AssetJobsDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetJobsDto.to_json())
+
+# convert the object into a dict
+asset_jobs_dto_dict = asset_jobs_dto_instance.to_dict()
+# create an instance of AssetJobsDto from a dict
+asset_jobs_dto_from_dict = AssetJobsDto.from_dict(asset_jobs_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetMediaResponseDto.md b/generated/immich/openapi_client/docs/AssetMediaResponseDto.md
new file mode 100644
index 0000000..9443430
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetMediaResponseDto.md
@@ -0,0 +1,30 @@
+# AssetMediaResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**status** | [**AssetMediaStatus**](AssetMediaStatus.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_media_response_dto import AssetMediaResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetMediaResponseDto from a JSON string
+asset_media_response_dto_instance = AssetMediaResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetMediaResponseDto.to_json())
+
+# convert the object into a dict
+asset_media_response_dto_dict = asset_media_response_dto_instance.to_dict()
+# create an instance of AssetMediaResponseDto from a dict
+asset_media_response_dto_from_dict = AssetMediaResponseDto.from_dict(asset_media_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetMediaSize.md b/generated/immich/openapi_client/docs/AssetMediaSize.md
new file mode 100644
index 0000000..f60289b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetMediaSize.md
@@ -0,0 +1,14 @@
+# AssetMediaSize
+
+
+## Enum
+
+* `FULLSIZE` (value: `'fullsize'`)
+
+* `PREVIEW` (value: `'preview'`)
+
+* `THUMBNAIL` (value: `'thumbnail'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetMediaStatus.md b/generated/immich/openapi_client/docs/AssetMediaStatus.md
new file mode 100644
index 0000000..16f5f77
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetMediaStatus.md
@@ -0,0 +1,14 @@
+# AssetMediaStatus
+
+
+## Enum
+
+* `CREATED` (value: `'created'`)
+
+* `REPLACED` (value: `'replaced'`)
+
+* `DUPLICATE` (value: `'duplicate'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetOrder.md b/generated/immich/openapi_client/docs/AssetOrder.md
new file mode 100644
index 0000000..e1ce9b1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetOrder.md
@@ -0,0 +1,12 @@
+# AssetOrder
+
+
+## Enum
+
+* `ASC` (value: `'asc'`)
+
+* `DESC` (value: `'desc'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetResponseDto.md b/generated/immich/openapi_client/docs/AssetResponseDto.md
new file mode 100644
index 0000000..4993c80
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetResponseDto.md
@@ -0,0 +1,58 @@
+# AssetResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**checksum** | **str** | base64 encoded sha1 hash |
+**device_asset_id** | **str** | |
+**device_id** | **str** | |
+**duplicate_id** | **str** | | [optional]
+**duration** | **str** | |
+**exif_info** | [**ExifResponseDto**](ExifResponseDto.md) | | [optional]
+**file_created_at** | **datetime** | |
+**file_modified_at** | **datetime** | |
+**has_metadata** | **bool** | |
+**id** | **str** | |
+**is_archived** | **bool** | |
+**is_favorite** | **bool** | |
+**is_offline** | **bool** | |
+**is_trashed** | **bool** | |
+**library_id** | **str** | This property was deprecated in v1.106.0 | [optional]
+**live_photo_video_id** | **str** | | [optional]
+**local_date_time** | **datetime** | |
+**original_file_name** | **str** | |
+**original_mime_type** | **str** | | [optional]
+**original_path** | **str** | |
+**owner** | [**UserResponseDto**](UserResponseDto.md) | | [optional]
+**owner_id** | **str** | |
+**people** | [**List[PersonWithFacesResponseDto]**](PersonWithFacesResponseDto.md) | | [optional]
+**resized** | **bool** | This property was deprecated in v1.113.0 | [optional]
+**stack** | [**AssetStackResponseDto**](AssetStackResponseDto.md) | | [optional]
+**tags** | [**List[TagResponseDto]**](TagResponseDto.md) | | [optional]
+**thumbhash** | **str** | |
+**type** | [**AssetTypeEnum**](AssetTypeEnum.md) | |
+**unassigned_faces** | [**List[AssetFaceWithoutPersonResponseDto]**](AssetFaceWithoutPersonResponseDto.md) | | [optional]
+**updated_at** | **datetime** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetResponseDto from a JSON string
+asset_response_dto_instance = AssetResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetResponseDto.to_json())
+
+# convert the object into a dict
+asset_response_dto_dict = asset_response_dto_instance.to_dict()
+# create an instance of AssetResponseDto from a dict
+asset_response_dto_from_dict = AssetResponseDto.from_dict(asset_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetStackResponseDto.md b/generated/immich/openapi_client/docs/AssetStackResponseDto.md
new file mode 100644
index 0000000..ceb2691
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetStackResponseDto.md
@@ -0,0 +1,31 @@
+# AssetStackResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_count** | **int** | |
+**id** | **str** | |
+**primary_asset_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_stack_response_dto import AssetStackResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetStackResponseDto from a JSON string
+asset_stack_response_dto_instance = AssetStackResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetStackResponseDto.to_json())
+
+# convert the object into a dict
+asset_stack_response_dto_dict = asset_stack_response_dto_instance.to_dict()
+# create an instance of AssetStackResponseDto from a dict
+asset_stack_response_dto_from_dict = AssetStackResponseDto.from_dict(asset_stack_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetStatsResponseDto.md b/generated/immich/openapi_client/docs/AssetStatsResponseDto.md
new file mode 100644
index 0000000..b582d7b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetStatsResponseDto.md
@@ -0,0 +1,31 @@
+# AssetStatsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**images** | **int** | |
+**total** | **int** | |
+**videos** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.asset_stats_response_dto import AssetStatsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AssetStatsResponseDto from a JSON string
+asset_stats_response_dto_instance = AssetStatsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(AssetStatsResponseDto.to_json())
+
+# convert the object into a dict
+asset_stats_response_dto_dict = asset_stats_response_dto_instance.to_dict()
+# create an instance of AssetStatsResponseDto from a dict
+asset_stats_response_dto_from_dict = AssetStatsResponseDto.from_dict(asset_stats_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetTypeEnum.md b/generated/immich/openapi_client/docs/AssetTypeEnum.md
new file mode 100644
index 0000000..3fb834a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetTypeEnum.md
@@ -0,0 +1,16 @@
+# AssetTypeEnum
+
+
+## Enum
+
+* `IMAGE` (value: `'IMAGE'`)
+
+* `VIDEO` (value: `'VIDEO'`)
+
+* `AUDIO` (value: `'AUDIO'`)
+
+* `OTHER` (value: `'OTHER'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AssetsApi.md b/generated/immich/openapi_client/docs/AssetsApi.md
new file mode 100644
index 0000000..c9269fc
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AssetsApi.md
@@ -0,0 +1,1488 @@
+# generated.immich.openapi_client.AssetsApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**check_bulk_upload**](AssetsApi.md#check_bulk_upload) | **POST** /assets/bulk-upload-check | checkBulkUpload
+[**check_existing_assets**](AssetsApi.md#check_existing_assets) | **POST** /assets/exist | checkExistingAssets
+[**delete_assets**](AssetsApi.md#delete_assets) | **DELETE** /assets |
+[**download_asset**](AssetsApi.md#download_asset) | **GET** /assets/{id}/original |
+[**get_all_user_assets_by_device_id**](AssetsApi.md#get_all_user_assets_by_device_id) | **GET** /assets/device/{deviceId} | getAllUserAssetsByDeviceId
+[**get_asset_info**](AssetsApi.md#get_asset_info) | **GET** /assets/{id} |
+[**get_asset_statistics**](AssetsApi.md#get_asset_statistics) | **GET** /assets/statistics |
+[**get_memory_lane**](AssetsApi.md#get_memory_lane) | **GET** /assets/memory-lane |
+[**get_random**](AssetsApi.md#get_random) | **GET** /assets/random |
+[**play_asset_video**](AssetsApi.md#play_asset_video) | **GET** /assets/{id}/video/playback |
+[**replace_asset**](AssetsApi.md#replace_asset) | **PUT** /assets/{id}/original | replaceAsset
+[**run_asset_jobs**](AssetsApi.md#run_asset_jobs) | **POST** /assets/jobs |
+[**update_asset**](AssetsApi.md#update_asset) | **PUT** /assets/{id} |
+[**update_assets**](AssetsApi.md#update_assets) | **PUT** /assets |
+[**upload_asset**](AssetsApi.md#upload_asset) | **POST** /assets |
+[**view_asset**](AssetsApi.md#view_asset) | **GET** /assets/{id}/thumbnail |
+
+
+# **check_bulk_upload**
+> AssetBulkUploadCheckResponseDto check_bulk_upload(asset_bulk_upload_check_dto)
+
+checkBulkUpload
+
+Checks if assets exist by checksums
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_bulk_upload_check_dto import AssetBulkUploadCheckDto
+from generated.immich.openapi_client.models.asset_bulk_upload_check_response_dto import AssetBulkUploadCheckResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ asset_bulk_upload_check_dto = generated.immich.openapi_client.AssetBulkUploadCheckDto() # AssetBulkUploadCheckDto |
+
+ try:
+ # checkBulkUpload
+ api_response = api_instance.check_bulk_upload(asset_bulk_upload_check_dto)
+ print("The response of AssetsApi->check_bulk_upload:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->check_bulk_upload: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_bulk_upload_check_dto** | [**AssetBulkUploadCheckDto**](AssetBulkUploadCheckDto.md)| |
+
+### Return type
+
+[**AssetBulkUploadCheckResponseDto**](AssetBulkUploadCheckResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **check_existing_assets**
+> CheckExistingAssetsResponseDto check_existing_assets(check_existing_assets_dto)
+
+checkExistingAssets
+
+Checks if multiple assets exist on the server and returns all existing - used by background backup
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ check_existing_assets_dto = generated.immich.openapi_client.CheckExistingAssetsDto() # CheckExistingAssetsDto |
+
+ try:
+ # checkExistingAssets
+ api_response = api_instance.check_existing_assets(check_existing_assets_dto)
+ print("The response of AssetsApi->check_existing_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->check_existing_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **check_existing_assets_dto** | [**CheckExistingAssetsDto**](CheckExistingAssetsDto.md)| |
+
+### Return type
+
+[**CheckExistingAssetsResponseDto**](CheckExistingAssetsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_assets**
+> delete_assets(asset_bulk_delete_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_bulk_delete_dto import AssetBulkDeleteDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ asset_bulk_delete_dto = generated.immich.openapi_client.AssetBulkDeleteDto() # AssetBulkDeleteDto |
+
+ try:
+ api_instance.delete_assets(asset_bulk_delete_dto)
+ except Exception as e:
+ print("Exception when calling AssetsApi->delete_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_bulk_delete_dto** | [**AssetBulkDeleteDto**](AssetBulkDeleteDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **download_asset**
+> bytearray download_asset(id, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ id = 'id_example' # str |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.download_asset(id, key=key)
+ print("The response of AssetsApi->download_asset:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->download_asset: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/octet-stream
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_user_assets_by_device_id**
+> List[str] get_all_user_assets_by_device_id(device_id)
+
+getAllUserAssetsByDeviceId
+
+Get all asset of a device that are in the database, ID only.
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ device_id = 'device_id_example' # str |
+
+ try:
+ # getAllUserAssetsByDeviceId
+ api_response = api_instance.get_all_user_assets_by_device_id(device_id)
+ print("The response of AssetsApi->get_all_user_assets_by_device_id:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->get_all_user_assets_by_device_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **device_id** | **str**| |
+
+### Return type
+
+**List[str]**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_asset_info**
+> AssetResponseDto get_asset_info(id, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ id = 'id_example' # str |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.get_asset_info(id, key=key)
+ print("The response of AssetsApi->get_asset_info:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->get_asset_info: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+[**AssetResponseDto**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_asset_statistics**
+> AssetStatsResponseDto get_asset_statistics(is_archived=is_archived, is_favorite=is_favorite, is_trashed=is_trashed)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_stats_response_dto import AssetStatsResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ is_archived = True # bool | (optional)
+ is_favorite = True # bool | (optional)
+ is_trashed = True # bool | (optional)
+
+ try:
+ api_response = api_instance.get_asset_statistics(is_archived=is_archived, is_favorite=is_favorite, is_trashed=is_trashed)
+ print("The response of AssetsApi->get_asset_statistics:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->get_asset_statistics: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **is_archived** | **bool**| | [optional]
+ **is_favorite** | **bool**| | [optional]
+ **is_trashed** | **bool**| | [optional]
+
+### Return type
+
+[**AssetStatsResponseDto**](AssetStatsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_memory_lane**
+> List[MemoryLaneResponseDto] get_memory_lane(day, month)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.memory_lane_response_dto import MemoryLaneResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ day = 56 # int |
+ month = 56 # int |
+
+ try:
+ api_response = api_instance.get_memory_lane(day, month)
+ print("The response of AssetsApi->get_memory_lane:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->get_memory_lane: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **day** | **int**| |
+ **month** | **int**| |
+
+### Return type
+
+[**List[MemoryLaneResponseDto]**](MemoryLaneResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_random**
+> List[AssetResponseDto] get_random(count=count)
+
+This property was deprecated in v1.116.0
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ count = 3.4 # float | (optional)
+
+ try:
+ api_response = api_instance.get_random(count=count)
+ print("The response of AssetsApi->get_random:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->get_random: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **count** | **float**| | [optional]
+
+### Return type
+
+[**List[AssetResponseDto]**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **play_asset_video**
+> bytearray play_asset_video(id, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ id = 'id_example' # str |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.play_asset_video(id, key=key)
+ print("The response of AssetsApi->play_asset_video:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->play_asset_video: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/octet-stream
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **replace_asset**
+> AssetMediaResponseDto replace_asset(id, asset_data, device_asset_id, device_id, file_created_at, file_modified_at, key=key, duration=duration)
+
+replaceAsset
+
+Replace the asset with new file, without changing its id
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_media_response_dto import AssetMediaResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ id = 'id_example' # str |
+ asset_data = None # bytearray |
+ device_asset_id = 'device_asset_id_example' # str |
+ device_id = 'device_id_example' # str |
+ file_created_at = '2013-10-20T19:20:30+01:00' # datetime |
+ file_modified_at = '2013-10-20T19:20:30+01:00' # datetime |
+ key = 'key_example' # str | (optional)
+ duration = 'duration_example' # str | (optional)
+
+ try:
+ # replaceAsset
+ api_response = api_instance.replace_asset(id, asset_data, device_asset_id, device_id, file_created_at, file_modified_at, key=key, duration=duration)
+ print("The response of AssetsApi->replace_asset:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->replace_asset: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **asset_data** | **bytearray**| |
+ **device_asset_id** | **str**| |
+ **device_id** | **str**| |
+ **file_created_at** | **datetime**| |
+ **file_modified_at** | **datetime**| |
+ **key** | **str**| | [optional]
+ **duration** | **str**| | [optional]
+
+### Return type
+
+[**AssetMediaResponseDto**](AssetMediaResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **run_asset_jobs**
+> run_asset_jobs(asset_jobs_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_jobs_dto import AssetJobsDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ asset_jobs_dto = generated.immich.openapi_client.AssetJobsDto() # AssetJobsDto |
+
+ try:
+ api_instance.run_asset_jobs(asset_jobs_dto)
+ except Exception as e:
+ print("Exception when calling AssetsApi->run_asset_jobs: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_jobs_dto** | [**AssetJobsDto**](AssetJobsDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_asset**
+> AssetResponseDto update_asset(id, update_asset_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.models.update_asset_dto import UpdateAssetDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ id = 'id_example' # str |
+ update_asset_dto = generated.immich.openapi_client.UpdateAssetDto() # UpdateAssetDto |
+
+ try:
+ api_response = api_instance.update_asset(id, update_asset_dto)
+ print("The response of AssetsApi->update_asset:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->update_asset: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **update_asset_dto** | [**UpdateAssetDto**](UpdateAssetDto.md)| |
+
+### Return type
+
+[**AssetResponseDto**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_assets**
+> update_assets(asset_bulk_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_bulk_update_dto import AssetBulkUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ asset_bulk_update_dto = generated.immich.openapi_client.AssetBulkUpdateDto() # AssetBulkUpdateDto |
+
+ try:
+ api_instance.update_assets(asset_bulk_update_dto)
+ except Exception as e:
+ print("Exception when calling AssetsApi->update_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_bulk_update_dto** | [**AssetBulkUpdateDto**](AssetBulkUpdateDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **upload_asset**
+> AssetMediaResponseDto upload_asset(asset_data, device_asset_id, device_id, file_created_at, file_modified_at, key=key, x_immich_checksum=x_immich_checksum, duration=duration, is_archived=is_archived, is_favorite=is_favorite, is_visible=is_visible, live_photo_video_id=live_photo_video_id, sidecar_data=sidecar_data)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_media_response_dto import AssetMediaResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ asset_data = None # bytearray |
+ device_asset_id = 'device_asset_id_example' # str |
+ device_id = 'device_id_example' # str |
+ file_created_at = '2013-10-20T19:20:30+01:00' # datetime |
+ file_modified_at = '2013-10-20T19:20:30+01:00' # datetime |
+ key = 'key_example' # str | (optional)
+ x_immich_checksum = 'x_immich_checksum_example' # str | sha1 checksum that can be used for duplicate detection before the file is uploaded (optional)
+ duration = 'duration_example' # str | (optional)
+ is_archived = True # bool | (optional)
+ is_favorite = True # bool | (optional)
+ is_visible = True # bool | (optional)
+ live_photo_video_id = 'live_photo_video_id_example' # str | (optional)
+ sidecar_data = None # bytearray | (optional)
+
+ try:
+ api_response = api_instance.upload_asset(asset_data, device_asset_id, device_id, file_created_at, file_modified_at, key=key, x_immich_checksum=x_immich_checksum, duration=duration, is_archived=is_archived, is_favorite=is_favorite, is_visible=is_visible, live_photo_video_id=live_photo_video_id, sidecar_data=sidecar_data)
+ print("The response of AssetsApi->upload_asset:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->upload_asset: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_data** | **bytearray**| |
+ **device_asset_id** | **str**| |
+ **device_id** | **str**| |
+ **file_created_at** | **datetime**| |
+ **file_modified_at** | **datetime**| |
+ **key** | **str**| | [optional]
+ **x_immich_checksum** | **str**| sha1 checksum that can be used for duplicate detection before the file is uploaded | [optional]
+ **duration** | **str**| | [optional]
+ **is_archived** | **bool**| | [optional]
+ **is_favorite** | **bool**| | [optional]
+ **is_visible** | **bool**| | [optional]
+ **live_photo_video_id** | **str**| | [optional]
+ **sidecar_data** | **bytearray**| | [optional]
+
+### Return type
+
+[**AssetMediaResponseDto**](AssetMediaResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **view_asset**
+> bytearray view_asset(id, key=key, size=size)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_media_size import AssetMediaSize
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AssetsApi(api_client)
+ id = 'id_example' # str |
+ key = 'key_example' # str | (optional)
+ size = generated.immich.openapi_client.AssetMediaSize() # AssetMediaSize | (optional)
+
+ try:
+ api_response = api_instance.view_asset(id, key=key, size=size)
+ print("The response of AssetsApi->view_asset:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AssetsApi->view_asset: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **key** | **str**| | [optional]
+ **size** | [**AssetMediaSize**](.md)| | [optional]
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/octet-stream
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/AudioCodec.md b/generated/immich/openapi_client/docs/AudioCodec.md
new file mode 100644
index 0000000..8360386
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AudioCodec.md
@@ -0,0 +1,16 @@
+# AudioCodec
+
+
+## Enum
+
+* `MP3` (value: `'mp3'`)
+
+* `AAC` (value: `'aac'`)
+
+* `LIBOPUS` (value: `'libopus'`)
+
+* `PCM_S16LE` (value: `'pcm_s16le'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AuthenticationApi.md b/generated/immich/openapi_client/docs/AuthenticationApi.md
new file mode 100644
index 0000000..764195d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AuthenticationApi.md
@@ -0,0 +1,395 @@
+# generated.immich.openapi_client.AuthenticationApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**change_password**](AuthenticationApi.md#change_password) | **POST** /auth/change-password |
+[**login**](AuthenticationApi.md#login) | **POST** /auth/login |
+[**logout**](AuthenticationApi.md#logout) | **POST** /auth/logout |
+[**sign_up_admin**](AuthenticationApi.md#sign_up_admin) | **POST** /auth/admin-sign-up |
+[**validate_access_token**](AuthenticationApi.md#validate_access_token) | **POST** /auth/validateToken |
+
+
+# **change_password**
+> UserAdminResponseDto change_password(change_password_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.change_password_dto import ChangePasswordDto
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AuthenticationApi(api_client)
+ change_password_dto = generated.immich.openapi_client.ChangePasswordDto() # ChangePasswordDto |
+
+ try:
+ api_response = api_instance.change_password(change_password_dto)
+ print("The response of AuthenticationApi->change_password:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AuthenticationApi->change_password: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **change_password_dto** | [**ChangePasswordDto**](ChangePasswordDto.md)| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **login**
+> LoginResponseDto login(login_credential_dto)
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AuthenticationApi(api_client)
+ login_credential_dto = generated.immich.openapi_client.LoginCredentialDto() # LoginCredentialDto |
+
+ try:
+ api_response = api_instance.login(login_credential_dto)
+ print("The response of AuthenticationApi->login:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AuthenticationApi->login: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **login_credential_dto** | [**LoginCredentialDto**](LoginCredentialDto.md)| |
+
+### Return type
+
+[**LoginResponseDto**](LoginResponseDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **logout**
+> LogoutResponseDto logout()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.logout_response_dto import LogoutResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AuthenticationApi(api_client)
+
+ try:
+ api_response = api_instance.logout()
+ print("The response of AuthenticationApi->logout:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AuthenticationApi->logout: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**LogoutResponseDto**](LogoutResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **sign_up_admin**
+> UserAdminResponseDto sign_up_admin(sign_up_dto)
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.sign_up_dto import SignUpDto
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AuthenticationApi(api_client)
+ sign_up_dto = generated.immich.openapi_client.SignUpDto() # SignUpDto |
+
+ try:
+ api_response = api_instance.sign_up_admin(sign_up_dto)
+ print("The response of AuthenticationApi->sign_up_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AuthenticationApi->sign_up_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **sign_up_dto** | [**SignUpDto**](SignUpDto.md)| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **validate_access_token**
+> ValidateAccessTokenResponseDto validate_access_token()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.validate_access_token_response_dto import ValidateAccessTokenResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.AuthenticationApi(api_client)
+
+ try:
+ api_response = api_instance.validate_access_token()
+ print("The response of AuthenticationApi->validate_access_token:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AuthenticationApi->validate_access_token: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ValidateAccessTokenResponseDto**](ValidateAccessTokenResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/AvatarResponse.md b/generated/immich/openapi_client/docs/AvatarResponse.md
new file mode 100644
index 0000000..39f4e9b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AvatarResponse.md
@@ -0,0 +1,29 @@
+# AvatarResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**color** | [**UserAvatarColor**](UserAvatarColor.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.avatar_response import AvatarResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AvatarResponse from a JSON string
+avatar_response_instance = AvatarResponse.from_json(json)
+# print the JSON string representation of the object
+print(AvatarResponse.to_json())
+
+# convert the object into a dict
+avatar_response_dict = avatar_response_instance.to_dict()
+# create an instance of AvatarResponse from a dict
+avatar_response_from_dict = AvatarResponse.from_dict(avatar_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/AvatarUpdate.md b/generated/immich/openapi_client/docs/AvatarUpdate.md
new file mode 100644
index 0000000..58f933c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/AvatarUpdate.md
@@ -0,0 +1,29 @@
+# AvatarUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**color** | [**UserAvatarColor**](UserAvatarColor.md) | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.avatar_update import AvatarUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AvatarUpdate from a JSON string
+avatar_update_instance = AvatarUpdate.from_json(json)
+# print the JSON string representation of the object
+print(AvatarUpdate.to_json())
+
+# convert the object into a dict
+avatar_update_dict = avatar_update_instance.to_dict()
+# create an instance of AvatarUpdate from a dict
+avatar_update_from_dict = AvatarUpdate.from_dict(avatar_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/BulkIdResponseDto.md b/generated/immich/openapi_client/docs/BulkIdResponseDto.md
new file mode 100644
index 0000000..9f9352a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/BulkIdResponseDto.md
@@ -0,0 +1,31 @@
+# BulkIdResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**error** | **str** | | [optional]
+**id** | **str** | |
+**success** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.bulk_id_response_dto import BulkIdResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of BulkIdResponseDto from a JSON string
+bulk_id_response_dto_instance = BulkIdResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(BulkIdResponseDto.to_json())
+
+# convert the object into a dict
+bulk_id_response_dto_dict = bulk_id_response_dto_instance.to_dict()
+# create an instance of BulkIdResponseDto from a dict
+bulk_id_response_dto_from_dict = BulkIdResponseDto.from_dict(bulk_id_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/BulkIdsDto.md b/generated/immich/openapi_client/docs/BulkIdsDto.md
new file mode 100644
index 0000000..5cde6ee
--- /dev/null
+++ b/generated/immich/openapi_client/docs/BulkIdsDto.md
@@ -0,0 +1,29 @@
+# BulkIdsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ids** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.bulk_ids_dto import BulkIdsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of BulkIdsDto from a JSON string
+bulk_ids_dto_instance = BulkIdsDto.from_json(json)
+# print the JSON string representation of the object
+print(BulkIdsDto.to_json())
+
+# convert the object into a dict
+bulk_ids_dto_dict = bulk_ids_dto_instance.to_dict()
+# create an instance of BulkIdsDto from a dict
+bulk_ids_dto_from_dict = BulkIdsDto.from_dict(bulk_ids_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/CLIPConfig.md b/generated/immich/openapi_client/docs/CLIPConfig.md
new file mode 100644
index 0000000..d86b4e0
--- /dev/null
+++ b/generated/immich/openapi_client/docs/CLIPConfig.md
@@ -0,0 +1,30 @@
+# CLIPConfig
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+**model_name** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.clip_config import CLIPConfig
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CLIPConfig from a JSON string
+clip_config_instance = CLIPConfig.from_json(json)
+# print the JSON string representation of the object
+print(CLIPConfig.to_json())
+
+# convert the object into a dict
+clip_config_dict = clip_config_instance.to_dict()
+# create an instance of CLIPConfig from a dict
+clip_config_from_dict = CLIPConfig.from_dict(clip_config_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/CQMode.md b/generated/immich/openapi_client/docs/CQMode.md
new file mode 100644
index 0000000..8a7610d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/CQMode.md
@@ -0,0 +1,14 @@
+# CQMode
+
+
+## Enum
+
+* `AUTO` (value: `'auto'`)
+
+* `CQP` (value: `'cqp'`)
+
+* `ICQ` (value: `'icq'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ChangePasswordDto.md b/generated/immich/openapi_client/docs/ChangePasswordDto.md
new file mode 100644
index 0000000..2476696
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ChangePasswordDto.md
@@ -0,0 +1,30 @@
+# ChangePasswordDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**new_password** | **str** | |
+**password** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.change_password_dto import ChangePasswordDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ChangePasswordDto from a JSON string
+change_password_dto_instance = ChangePasswordDto.from_json(json)
+# print the JSON string representation of the object
+print(ChangePasswordDto.to_json())
+
+# convert the object into a dict
+change_password_dto_dict = change_password_dto_instance.to_dict()
+# create an instance of ChangePasswordDto from a dict
+change_password_dto_from_dict = ChangePasswordDto.from_dict(change_password_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/CheckExistingAssetsDto.md b/generated/immich/openapi_client/docs/CheckExistingAssetsDto.md
new file mode 100644
index 0000000..14750ab
--- /dev/null
+++ b/generated/immich/openapi_client/docs/CheckExistingAssetsDto.md
@@ -0,0 +1,30 @@
+# CheckExistingAssetsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**device_asset_ids** | **List[str]** | |
+**device_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.check_existing_assets_dto import CheckExistingAssetsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CheckExistingAssetsDto from a JSON string
+check_existing_assets_dto_instance = CheckExistingAssetsDto.from_json(json)
+# print the JSON string representation of the object
+print(CheckExistingAssetsDto.to_json())
+
+# convert the object into a dict
+check_existing_assets_dto_dict = check_existing_assets_dto_instance.to_dict()
+# create an instance of CheckExistingAssetsDto from a dict
+check_existing_assets_dto_from_dict = CheckExistingAssetsDto.from_dict(check_existing_assets_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/CheckExistingAssetsResponseDto.md b/generated/immich/openapi_client/docs/CheckExistingAssetsResponseDto.md
new file mode 100644
index 0000000..47300c0
--- /dev/null
+++ b/generated/immich/openapi_client/docs/CheckExistingAssetsResponseDto.md
@@ -0,0 +1,29 @@
+# CheckExistingAssetsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**existing_ids** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.check_existing_assets_response_dto import CheckExistingAssetsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CheckExistingAssetsResponseDto from a JSON string
+check_existing_assets_response_dto_instance = CheckExistingAssetsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(CheckExistingAssetsResponseDto.to_json())
+
+# convert the object into a dict
+check_existing_assets_response_dto_dict = check_existing_assets_response_dto_instance.to_dict()
+# create an instance of CheckExistingAssetsResponseDto from a dict
+check_existing_assets_response_dto_from_dict = CheckExistingAssetsResponseDto.from_dict(check_existing_assets_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/Colorspace.md b/generated/immich/openapi_client/docs/Colorspace.md
new file mode 100644
index 0000000..5b7e03e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/Colorspace.md
@@ -0,0 +1,12 @@
+# Colorspace
+
+
+## Enum
+
+* `SRGB` (value: `'srgb'`)
+
+* `P3` (value: `'p3'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/CreateAlbumDto.md b/generated/immich/openapi_client/docs/CreateAlbumDto.md
new file mode 100644
index 0000000..5daa292
--- /dev/null
+++ b/generated/immich/openapi_client/docs/CreateAlbumDto.md
@@ -0,0 +1,32 @@
+# CreateAlbumDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_name** | **str** | |
+**album_users** | [**List[AlbumUserCreateDto]**](AlbumUserCreateDto.md) | | [optional]
+**asset_ids** | **List[str]** | | [optional]
+**description** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.create_album_dto import CreateAlbumDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CreateAlbumDto from a JSON string
+create_album_dto_instance = CreateAlbumDto.from_json(json)
+# print the JSON string representation of the object
+print(CreateAlbumDto.to_json())
+
+# convert the object into a dict
+create_album_dto_dict = create_album_dto_instance.to_dict()
+# create an instance of CreateAlbumDto from a dict
+create_album_dto_from_dict = CreateAlbumDto.from_dict(create_album_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/CreateLibraryDto.md b/generated/immich/openapi_client/docs/CreateLibraryDto.md
new file mode 100644
index 0000000..e02b333
--- /dev/null
+++ b/generated/immich/openapi_client/docs/CreateLibraryDto.md
@@ -0,0 +1,32 @@
+# CreateLibraryDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**exclusion_patterns** | **List[str]** | | [optional]
+**import_paths** | **List[str]** | | [optional]
+**name** | **str** | | [optional]
+**owner_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.create_library_dto import CreateLibraryDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CreateLibraryDto from a JSON string
+create_library_dto_instance = CreateLibraryDto.from_json(json)
+# print the JSON string representation of the object
+print(CreateLibraryDto.to_json())
+
+# convert the object into a dict
+create_library_dto_dict = create_library_dto_instance.to_dict()
+# create an instance of CreateLibraryDto from a dict
+create_library_dto_from_dict = CreateLibraryDto.from_dict(create_library_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/CreateProfileImageResponseDto.md b/generated/immich/openapi_client/docs/CreateProfileImageResponseDto.md
new file mode 100644
index 0000000..6d270ee
--- /dev/null
+++ b/generated/immich/openapi_client/docs/CreateProfileImageResponseDto.md
@@ -0,0 +1,31 @@
+# CreateProfileImageResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**profile_changed_at** | **datetime** | |
+**profile_image_path** | **str** | |
+**user_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.create_profile_image_response_dto import CreateProfileImageResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CreateProfileImageResponseDto from a JSON string
+create_profile_image_response_dto_instance = CreateProfileImageResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(CreateProfileImageResponseDto.to_json())
+
+# convert the object into a dict
+create_profile_image_response_dto_dict = create_profile_image_response_dto_instance.to_dict()
+# create an instance of CreateProfileImageResponseDto from a dict
+create_profile_image_response_dto_from_dict = CreateProfileImageResponseDto.from_dict(create_profile_image_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DatabaseBackupConfig.md b/generated/immich/openapi_client/docs/DatabaseBackupConfig.md
new file mode 100644
index 0000000..0450578
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DatabaseBackupConfig.md
@@ -0,0 +1,31 @@
+# DatabaseBackupConfig
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**cron_expression** | **str** | |
+**enabled** | **bool** | |
+**keep_last_amount** | **float** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.database_backup_config import DatabaseBackupConfig
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DatabaseBackupConfig from a JSON string
+database_backup_config_instance = DatabaseBackupConfig.from_json(json)
+# print the JSON string representation of the object
+print(DatabaseBackupConfig.to_json())
+
+# convert the object into a dict
+database_backup_config_dict = database_backup_config_instance.to_dict()
+# create an instance of DatabaseBackupConfig from a dict
+database_backup_config_from_dict = DatabaseBackupConfig.from_dict(database_backup_config_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DeprecatedApi.md b/generated/immich/openapi_client/docs/DeprecatedApi.md
new file mode 100644
index 0000000..9dc125d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DeprecatedApi.md
@@ -0,0 +1,98 @@
+# generated.immich.openapi_client.DeprecatedApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_random**](DeprecatedApi.md#get_random) | **GET** /assets/random |
+
+
+# **get_random**
+> List[AssetResponseDto] get_random(count=count)
+
+This property was deprecated in v1.116.0
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.DeprecatedApi(api_client)
+ count = 3.4 # float | (optional)
+
+ try:
+ api_response = api_instance.get_random(count=count)
+ print("The response of DeprecatedApi->get_random:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling DeprecatedApi->get_random: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **count** | **float**| | [optional]
+
+### Return type
+
+[**List[AssetResponseDto]**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/DownloadApi.md b/generated/immich/openapi_client/docs/DownloadApi.md
new file mode 100644
index 0000000..34bfcb5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DownloadApi.md
@@ -0,0 +1,189 @@
+# generated.immich.openapi_client.DownloadApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**download_archive**](DownloadApi.md#download_archive) | **POST** /download/archive |
+[**get_download_info**](DownloadApi.md#get_download_info) | **POST** /download/info |
+
+
+# **download_archive**
+> bytearray download_archive(asset_ids_dto, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_ids_dto import AssetIdsDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.DownloadApi(api_client)
+ asset_ids_dto = generated.immich.openapi_client.AssetIdsDto() # AssetIdsDto |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.download_archive(asset_ids_dto, key=key)
+ print("The response of DownloadApi->download_archive:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling DownloadApi->download_archive: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_ids_dto** | [**AssetIdsDto**](AssetIdsDto.md)| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/octet-stream
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_download_info**
+> DownloadResponseDto get_download_info(download_info_dto, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.download_info_dto import DownloadInfoDto
+from generated.immich.openapi_client.models.download_response_dto import DownloadResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.DownloadApi(api_client)
+ download_info_dto = generated.immich.openapi_client.DownloadInfoDto() # DownloadInfoDto |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.get_download_info(download_info_dto, key=key)
+ print("The response of DownloadApi->get_download_info:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling DownloadApi->get_download_info: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **download_info_dto** | [**DownloadInfoDto**](DownloadInfoDto.md)| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+[**DownloadResponseDto**](DownloadResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/DownloadArchiveInfo.md b/generated/immich/openapi_client/docs/DownloadArchiveInfo.md
new file mode 100644
index 0000000..a55cb82
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DownloadArchiveInfo.md
@@ -0,0 +1,30 @@
+# DownloadArchiveInfo
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_ids** | **List[str]** | |
+**size** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.download_archive_info import DownloadArchiveInfo
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DownloadArchiveInfo from a JSON string
+download_archive_info_instance = DownloadArchiveInfo.from_json(json)
+# print the JSON string representation of the object
+print(DownloadArchiveInfo.to_json())
+
+# convert the object into a dict
+download_archive_info_dict = download_archive_info_instance.to_dict()
+# create an instance of DownloadArchiveInfo from a dict
+download_archive_info_from_dict = DownloadArchiveInfo.from_dict(download_archive_info_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DownloadInfoDto.md b/generated/immich/openapi_client/docs/DownloadInfoDto.md
new file mode 100644
index 0000000..c329c58
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DownloadInfoDto.md
@@ -0,0 +1,32 @@
+# DownloadInfoDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_id** | **str** | | [optional]
+**archive_size** | **int** | | [optional]
+**asset_ids** | **List[str]** | | [optional]
+**user_id** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.download_info_dto import DownloadInfoDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DownloadInfoDto from a JSON string
+download_info_dto_instance = DownloadInfoDto.from_json(json)
+# print the JSON string representation of the object
+print(DownloadInfoDto.to_json())
+
+# convert the object into a dict
+download_info_dto_dict = download_info_dto_instance.to_dict()
+# create an instance of DownloadInfoDto from a dict
+download_info_dto_from_dict = DownloadInfoDto.from_dict(download_info_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DownloadResponse.md b/generated/immich/openapi_client/docs/DownloadResponse.md
new file mode 100644
index 0000000..64961cf
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DownloadResponse.md
@@ -0,0 +1,30 @@
+# DownloadResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**archive_size** | **int** | |
+**include_embedded_videos** | **bool** | | [default to False]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.download_response import DownloadResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DownloadResponse from a JSON string
+download_response_instance = DownloadResponse.from_json(json)
+# print the JSON string representation of the object
+print(DownloadResponse.to_json())
+
+# convert the object into a dict
+download_response_dict = download_response_instance.to_dict()
+# create an instance of DownloadResponse from a dict
+download_response_from_dict = DownloadResponse.from_dict(download_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DownloadResponseDto.md b/generated/immich/openapi_client/docs/DownloadResponseDto.md
new file mode 100644
index 0000000..b19032c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DownloadResponseDto.md
@@ -0,0 +1,30 @@
+# DownloadResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**archives** | [**List[DownloadArchiveInfo]**](DownloadArchiveInfo.md) | |
+**total_size** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.download_response_dto import DownloadResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DownloadResponseDto from a JSON string
+download_response_dto_instance = DownloadResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(DownloadResponseDto.to_json())
+
+# convert the object into a dict
+download_response_dto_dict = download_response_dto_instance.to_dict()
+# create an instance of DownloadResponseDto from a dict
+download_response_dto_from_dict = DownloadResponseDto.from_dict(download_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DownloadUpdate.md b/generated/immich/openapi_client/docs/DownloadUpdate.md
new file mode 100644
index 0000000..c94dfc5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DownloadUpdate.md
@@ -0,0 +1,30 @@
+# DownloadUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**archive_size** | **int** | | [optional]
+**include_embedded_videos** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.download_update import DownloadUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DownloadUpdate from a JSON string
+download_update_instance = DownloadUpdate.from_json(json)
+# print the JSON string representation of the object
+print(DownloadUpdate.to_json())
+
+# convert the object into a dict
+download_update_dict = download_update_instance.to_dict()
+# create an instance of DownloadUpdate from a dict
+download_update_from_dict = DownloadUpdate.from_dict(download_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DuplicateDetectionConfig.md b/generated/immich/openapi_client/docs/DuplicateDetectionConfig.md
new file mode 100644
index 0000000..46b71fe
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DuplicateDetectionConfig.md
@@ -0,0 +1,30 @@
+# DuplicateDetectionConfig
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+**max_distance** | **float** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.duplicate_detection_config import DuplicateDetectionConfig
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DuplicateDetectionConfig from a JSON string
+duplicate_detection_config_instance = DuplicateDetectionConfig.from_json(json)
+# print the JSON string representation of the object
+print(DuplicateDetectionConfig.to_json())
+
+# convert the object into a dict
+duplicate_detection_config_dict = duplicate_detection_config_instance.to_dict()
+# create an instance of DuplicateDetectionConfig from a dict
+duplicate_detection_config_from_dict = DuplicateDetectionConfig.from_dict(duplicate_detection_config_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DuplicateResponseDto.md b/generated/immich/openapi_client/docs/DuplicateResponseDto.md
new file mode 100644
index 0000000..1f972a1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DuplicateResponseDto.md
@@ -0,0 +1,30 @@
+# DuplicateResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+**duplicate_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.duplicate_response_dto import DuplicateResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of DuplicateResponseDto from a JSON string
+duplicate_response_dto_instance = DuplicateResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(DuplicateResponseDto.to_json())
+
+# convert the object into a dict
+duplicate_response_dto_dict = duplicate_response_dto_instance.to_dict()
+# create an instance of DuplicateResponseDto from a dict
+duplicate_response_dto_from_dict = DuplicateResponseDto.from_dict(duplicate_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/DuplicatesApi.md b/generated/immich/openapi_client/docs/DuplicatesApi.md
new file mode 100644
index 0000000..a19663e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/DuplicatesApi.md
@@ -0,0 +1,92 @@
+# generated.immich.openapi_client.DuplicatesApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_asset_duplicates**](DuplicatesApi.md#get_asset_duplicates) | **GET** /duplicates |
+
+
+# **get_asset_duplicates**
+> List[DuplicateResponseDto] get_asset_duplicates()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.duplicate_response_dto import DuplicateResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.DuplicatesApi(api_client)
+
+ try:
+ api_response = api_instance.get_asset_duplicates()
+ print("The response of DuplicatesApi->get_asset_duplicates:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling DuplicatesApi->get_asset_duplicates: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[DuplicateResponseDto]**](DuplicateResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/EmailNotificationsResponse.md b/generated/immich/openapi_client/docs/EmailNotificationsResponse.md
new file mode 100644
index 0000000..1452472
--- /dev/null
+++ b/generated/immich/openapi_client/docs/EmailNotificationsResponse.md
@@ -0,0 +1,31 @@
+# EmailNotificationsResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_invite** | **bool** | |
+**album_update** | **bool** | |
+**enabled** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.email_notifications_response import EmailNotificationsResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of EmailNotificationsResponse from a JSON string
+email_notifications_response_instance = EmailNotificationsResponse.from_json(json)
+# print the JSON string representation of the object
+print(EmailNotificationsResponse.to_json())
+
+# convert the object into a dict
+email_notifications_response_dict = email_notifications_response_instance.to_dict()
+# create an instance of EmailNotificationsResponse from a dict
+email_notifications_response_from_dict = EmailNotificationsResponse.from_dict(email_notifications_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/EmailNotificationsUpdate.md b/generated/immich/openapi_client/docs/EmailNotificationsUpdate.md
new file mode 100644
index 0000000..d5ade6b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/EmailNotificationsUpdate.md
@@ -0,0 +1,31 @@
+# EmailNotificationsUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_invite** | **bool** | | [optional]
+**album_update** | **bool** | | [optional]
+**enabled** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.email_notifications_update import EmailNotificationsUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of EmailNotificationsUpdate from a JSON string
+email_notifications_update_instance = EmailNotificationsUpdate.from_json(json)
+# print the JSON string representation of the object
+print(EmailNotificationsUpdate.to_json())
+
+# convert the object into a dict
+email_notifications_update_dict = email_notifications_update_instance.to_dict()
+# create an instance of EmailNotificationsUpdate from a dict
+email_notifications_update_from_dict = EmailNotificationsUpdate.from_dict(email_notifications_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ExifResponseDto.md b/generated/immich/openapi_client/docs/ExifResponseDto.md
new file mode 100644
index 0000000..54c306c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ExifResponseDto.md
@@ -0,0 +1,50 @@
+# ExifResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**city** | **str** | | [optional]
+**country** | **str** | | [optional]
+**date_time_original** | **datetime** | | [optional]
+**description** | **str** | | [optional]
+**exif_image_height** | **float** | | [optional]
+**exif_image_width** | **float** | | [optional]
+**exposure_time** | **str** | | [optional]
+**f_number** | **float** | | [optional]
+**file_size_in_byte** | **int** | | [optional]
+**focal_length** | **float** | | [optional]
+**iso** | **float** | | [optional]
+**latitude** | **float** | | [optional]
+**lens_model** | **str** | | [optional]
+**longitude** | **float** | | [optional]
+**make** | **str** | | [optional]
+**model** | **str** | | [optional]
+**modify_date** | **datetime** | | [optional]
+**orientation** | **str** | | [optional]
+**projection_type** | **str** | | [optional]
+**rating** | **float** | | [optional]
+**state** | **str** | | [optional]
+**time_zone** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.exif_response_dto import ExifResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ExifResponseDto from a JSON string
+exif_response_dto_instance = ExifResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ExifResponseDto.to_json())
+
+# convert the object into a dict
+exif_response_dto_dict = exif_response_dto_instance.to_dict()
+# create an instance of ExifResponseDto from a dict
+exif_response_dto_from_dict = ExifResponseDto.from_dict(exif_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FaceDto.md b/generated/immich/openapi_client/docs/FaceDto.md
new file mode 100644
index 0000000..41465b5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FaceDto.md
@@ -0,0 +1,29 @@
+# FaceDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.face_dto import FaceDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FaceDto from a JSON string
+face_dto_instance = FaceDto.from_json(json)
+# print the JSON string representation of the object
+print(FaceDto.to_json())
+
+# convert the object into a dict
+face_dto_dict = face_dto_instance.to_dict()
+# create an instance of FaceDto from a dict
+face_dto_from_dict = FaceDto.from_dict(face_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FacesApi.md b/generated/immich/openapi_client/docs/FacesApi.md
new file mode 100644
index 0000000..7c99ccc
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FacesApi.md
@@ -0,0 +1,361 @@
+# generated.immich.openapi_client.FacesApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_face**](FacesApi.md#create_face) | **POST** /faces |
+[**delete_face**](FacesApi.md#delete_face) | **DELETE** /faces/{id} |
+[**get_faces**](FacesApi.md#get_faces) | **GET** /faces |
+[**reassign_faces_by_id**](FacesApi.md#reassign_faces_by_id) | **PUT** /faces/{id} |
+
+
+# **create_face**
+> create_face(asset_face_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_face_create_dto import AssetFaceCreateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.FacesApi(api_client)
+ asset_face_create_dto = generated.immich.openapi_client.AssetFaceCreateDto() # AssetFaceCreateDto |
+
+ try:
+ api_instance.create_face(asset_face_create_dto)
+ except Exception as e:
+ print("Exception when calling FacesApi->create_face: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_face_create_dto** | [**AssetFaceCreateDto**](AssetFaceCreateDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_face**
+> delete_face(id, asset_face_delete_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_face_delete_dto import AssetFaceDeleteDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.FacesApi(api_client)
+ id = 'id_example' # str |
+ asset_face_delete_dto = generated.immich.openapi_client.AssetFaceDeleteDto() # AssetFaceDeleteDto |
+
+ try:
+ api_instance.delete_face(id, asset_face_delete_dto)
+ except Exception as e:
+ print("Exception when calling FacesApi->delete_face: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **asset_face_delete_dto** | [**AssetFaceDeleteDto**](AssetFaceDeleteDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_faces**
+> List[AssetFaceResponseDto] get_faces(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_face_response_dto import AssetFaceResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.FacesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_faces(id)
+ print("The response of FacesApi->get_faces:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling FacesApi->get_faces: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**List[AssetFaceResponseDto]**](AssetFaceResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **reassign_faces_by_id**
+> PersonResponseDto reassign_faces_by_id(id, face_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.face_dto import FaceDto
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.FacesApi(api_client)
+ id = 'id_example' # str |
+ face_dto = generated.immich.openapi_client.FaceDto() # FaceDto |
+
+ try:
+ api_response = api_instance.reassign_faces_by_id(id, face_dto)
+ print("The response of FacesApi->reassign_faces_by_id:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling FacesApi->reassign_faces_by_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **face_dto** | [**FaceDto**](FaceDto.md)| |
+
+### Return type
+
+[**PersonResponseDto**](PersonResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/FacialRecognitionConfig.md b/generated/immich/openapi_client/docs/FacialRecognitionConfig.md
new file mode 100644
index 0000000..912aca4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FacialRecognitionConfig.md
@@ -0,0 +1,33 @@
+# FacialRecognitionConfig
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+**max_distance** | **float** | |
+**min_faces** | **int** | |
+**min_score** | **float** | |
+**model_name** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.facial_recognition_config import FacialRecognitionConfig
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FacialRecognitionConfig from a JSON string
+facial_recognition_config_instance = FacialRecognitionConfig.from_json(json)
+# print the JSON string representation of the object
+print(FacialRecognitionConfig.to_json())
+
+# convert the object into a dict
+facial_recognition_config_dict = facial_recognition_config_instance.to_dict()
+# create an instance of FacialRecognitionConfig from a dict
+facial_recognition_config_from_dict = FacialRecognitionConfig.from_dict(facial_recognition_config_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FileChecksumDto.md b/generated/immich/openapi_client/docs/FileChecksumDto.md
new file mode 100644
index 0000000..129f396
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FileChecksumDto.md
@@ -0,0 +1,29 @@
+# FileChecksumDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**filenames** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.file_checksum_dto import FileChecksumDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FileChecksumDto from a JSON string
+file_checksum_dto_instance = FileChecksumDto.from_json(json)
+# print the JSON string representation of the object
+print(FileChecksumDto.to_json())
+
+# convert the object into a dict
+file_checksum_dto_dict = file_checksum_dto_instance.to_dict()
+# create an instance of FileChecksumDto from a dict
+file_checksum_dto_from_dict = FileChecksumDto.from_dict(file_checksum_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FileChecksumResponseDto.md b/generated/immich/openapi_client/docs/FileChecksumResponseDto.md
new file mode 100644
index 0000000..a5d651d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FileChecksumResponseDto.md
@@ -0,0 +1,30 @@
+# FileChecksumResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**checksum** | **str** | |
+**filename** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.file_checksum_response_dto import FileChecksumResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FileChecksumResponseDto from a JSON string
+file_checksum_response_dto_instance = FileChecksumResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(FileChecksumResponseDto.to_json())
+
+# convert the object into a dict
+file_checksum_response_dto_dict = file_checksum_response_dto_instance.to_dict()
+# create an instance of FileChecksumResponseDto from a dict
+file_checksum_response_dto_from_dict = FileChecksumResponseDto.from_dict(file_checksum_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FileReportDto.md b/generated/immich/openapi_client/docs/FileReportDto.md
new file mode 100644
index 0000000..6cf03b2
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FileReportDto.md
@@ -0,0 +1,30 @@
+# FileReportDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**extras** | **List[str]** | |
+**orphans** | [**List[FileReportItemDto]**](FileReportItemDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.file_report_dto import FileReportDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FileReportDto from a JSON string
+file_report_dto_instance = FileReportDto.from_json(json)
+# print the JSON string representation of the object
+print(FileReportDto.to_json())
+
+# convert the object into a dict
+file_report_dto_dict = file_report_dto_instance.to_dict()
+# create an instance of FileReportDto from a dict
+file_report_dto_from_dict = FileReportDto.from_dict(file_report_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FileReportFixDto.md b/generated/immich/openapi_client/docs/FileReportFixDto.md
new file mode 100644
index 0000000..a06822d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FileReportFixDto.md
@@ -0,0 +1,29 @@
+# FileReportFixDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**items** | [**List[FileReportItemDto]**](FileReportItemDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.file_report_fix_dto import FileReportFixDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FileReportFixDto from a JSON string
+file_report_fix_dto_instance = FileReportFixDto.from_json(json)
+# print the JSON string representation of the object
+print(FileReportFixDto.to_json())
+
+# convert the object into a dict
+file_report_fix_dto_dict = file_report_fix_dto_instance.to_dict()
+# create an instance of FileReportFixDto from a dict
+file_report_fix_dto_from_dict = FileReportFixDto.from_dict(file_report_fix_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FileReportItemDto.md b/generated/immich/openapi_client/docs/FileReportItemDto.md
new file mode 100644
index 0000000..17b4b62
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FileReportItemDto.md
@@ -0,0 +1,33 @@
+# FileReportItemDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**checksum** | **str** | | [optional]
+**entity_id** | **str** | |
+**entity_type** | [**PathEntityType**](PathEntityType.md) | |
+**path_type** | [**PathType**](PathType.md) | |
+**path_value** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.file_report_item_dto import FileReportItemDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FileReportItemDto from a JSON string
+file_report_item_dto_instance = FileReportItemDto.from_json(json)
+# print the JSON string representation of the object
+print(FileReportItemDto.to_json())
+
+# convert the object into a dict
+file_report_item_dto_dict = file_report_item_dto_instance.to_dict()
+# create an instance of FileReportItemDto from a dict
+file_report_item_dto_from_dict = FileReportItemDto.from_dict(file_report_item_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FileReportsApi.md b/generated/immich/openapi_client/docs/FileReportsApi.md
new file mode 100644
index 0000000..6364dcd
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FileReportsApi.md
@@ -0,0 +1,267 @@
+# generated.immich.openapi_client.FileReportsApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**fix_audit_files**](FileReportsApi.md#fix_audit_files) | **POST** /reports/fix |
+[**get_audit_files**](FileReportsApi.md#get_audit_files) | **GET** /reports |
+[**get_file_checksums**](FileReportsApi.md#get_file_checksums) | **POST** /reports/checksum |
+
+
+# **fix_audit_files**
+> fix_audit_files(file_report_fix_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.file_report_fix_dto import FileReportFixDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.FileReportsApi(api_client)
+ file_report_fix_dto = generated.immich.openapi_client.FileReportFixDto() # FileReportFixDto |
+
+ try:
+ api_instance.fix_audit_files(file_report_fix_dto)
+ except Exception as e:
+ print("Exception when calling FileReportsApi->fix_audit_files: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **file_report_fix_dto** | [**FileReportFixDto**](FileReportFixDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_audit_files**
+> FileReportDto get_audit_files()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.file_report_dto import FileReportDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.FileReportsApi(api_client)
+
+ try:
+ api_response = api_instance.get_audit_files()
+ print("The response of FileReportsApi->get_audit_files:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling FileReportsApi->get_audit_files: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**FileReportDto**](FileReportDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_file_checksums**
+> List[FileChecksumResponseDto] get_file_checksums(file_checksum_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.FileReportsApi(api_client)
+ file_checksum_dto = generated.immich.openapi_client.FileChecksumDto() # FileChecksumDto |
+
+ try:
+ api_response = api_instance.get_file_checksums(file_checksum_dto)
+ print("The response of FileReportsApi->get_file_checksums:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling FileReportsApi->get_file_checksums: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **file_checksum_dto** | [**FileChecksumDto**](FileChecksumDto.md)| |
+
+### Return type
+
+[**List[FileChecksumResponseDto]**](FileChecksumResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/FoldersResponse.md b/generated/immich/openapi_client/docs/FoldersResponse.md
new file mode 100644
index 0000000..e85a716
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FoldersResponse.md
@@ -0,0 +1,30 @@
+# FoldersResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [default to False]
+**sidebar_web** | **bool** | | [default to False]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.folders_response import FoldersResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FoldersResponse from a JSON string
+folders_response_instance = FoldersResponse.from_json(json)
+# print the JSON string representation of the object
+print(FoldersResponse.to_json())
+
+# convert the object into a dict
+folders_response_dict = folders_response_instance.to_dict()
+# create an instance of FoldersResponse from a dict
+folders_response_from_dict = FoldersResponse.from_dict(folders_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/FoldersUpdate.md b/generated/immich/openapi_client/docs/FoldersUpdate.md
new file mode 100644
index 0000000..88dcee0
--- /dev/null
+++ b/generated/immich/openapi_client/docs/FoldersUpdate.md
@@ -0,0 +1,30 @@
+# FoldersUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [optional]
+**sidebar_web** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.folders_update import FoldersUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of FoldersUpdate from a JSON string
+folders_update_instance = FoldersUpdate.from_json(json)
+# print the JSON string representation of the object
+print(FoldersUpdate.to_json())
+
+# convert the object into a dict
+folders_update_dict = folders_update_instance.to_dict()
+# create an instance of FoldersUpdate from a dict
+folders_update_from_dict = FoldersUpdate.from_dict(folders_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ImageFormat.md b/generated/immich/openapi_client/docs/ImageFormat.md
new file mode 100644
index 0000000..db9baa9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ImageFormat.md
@@ -0,0 +1,12 @@
+# ImageFormat
+
+
+## Enum
+
+* `JPEG` (value: `'jpeg'`)
+
+* `WEBP` (value: `'webp'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobCommand.md b/generated/immich/openapi_client/docs/JobCommand.md
new file mode 100644
index 0000000..7a08d8f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobCommand.md
@@ -0,0 +1,18 @@
+# JobCommand
+
+
+## Enum
+
+* `START` (value: `'start'`)
+
+* `PAUSE` (value: `'pause'`)
+
+* `RESUME` (value: `'resume'`)
+
+* `EMPTY` (value: `'empty'`)
+
+* `CLEAR_MINUS_FAILED` (value: `'clear-failed'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobCommandDto.md b/generated/immich/openapi_client/docs/JobCommandDto.md
new file mode 100644
index 0000000..5f5c1cf
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobCommandDto.md
@@ -0,0 +1,30 @@
+# JobCommandDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**command** | [**JobCommand**](JobCommand.md) | |
+**force** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.job_command_dto import JobCommandDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of JobCommandDto from a JSON string
+job_command_dto_instance = JobCommandDto.from_json(json)
+# print the JSON string representation of the object
+print(JobCommandDto.to_json())
+
+# convert the object into a dict
+job_command_dto_dict = job_command_dto_instance.to_dict()
+# create an instance of JobCommandDto from a dict
+job_command_dto_from_dict = JobCommandDto.from_dict(job_command_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobCountsDto.md b/generated/immich/openapi_client/docs/JobCountsDto.md
new file mode 100644
index 0000000..67cf144
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobCountsDto.md
@@ -0,0 +1,34 @@
+# JobCountsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**active** | **int** | |
+**completed** | **int** | |
+**delayed** | **int** | |
+**failed** | **int** | |
+**paused** | **int** | |
+**waiting** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.job_counts_dto import JobCountsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of JobCountsDto from a JSON string
+job_counts_dto_instance = JobCountsDto.from_json(json)
+# print the JSON string representation of the object
+print(JobCountsDto.to_json())
+
+# convert the object into a dict
+job_counts_dto_dict = job_counts_dto_instance.to_dict()
+# create an instance of JobCountsDto from a dict
+job_counts_dto_from_dict = JobCountsDto.from_dict(job_counts_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobCreateDto.md b/generated/immich/openapi_client/docs/JobCreateDto.md
new file mode 100644
index 0000000..dc4a547
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobCreateDto.md
@@ -0,0 +1,29 @@
+# JobCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | [**ManualJobName**](ManualJobName.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.job_create_dto import JobCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of JobCreateDto from a JSON string
+job_create_dto_instance = JobCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(JobCreateDto.to_json())
+
+# convert the object into a dict
+job_create_dto_dict = job_create_dto_instance.to_dict()
+# create an instance of JobCreateDto from a dict
+job_create_dto_from_dict = JobCreateDto.from_dict(job_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobName.md b/generated/immich/openapi_client/docs/JobName.md
new file mode 100644
index 0000000..1869fda
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobName.md
@@ -0,0 +1,38 @@
+# JobName
+
+
+## Enum
+
+* `THUMBNAILGENERATION` (value: `'thumbnailGeneration'`)
+
+* `METADATAEXTRACTION` (value: `'metadataExtraction'`)
+
+* `VIDEOCONVERSION` (value: `'videoConversion'`)
+
+* `FACEDETECTION` (value: `'faceDetection'`)
+
+* `FACIALRECOGNITION` (value: `'facialRecognition'`)
+
+* `SMARTSEARCH` (value: `'smartSearch'`)
+
+* `DUPLICATEDETECTION` (value: `'duplicateDetection'`)
+
+* `BACKGROUNDTASK` (value: `'backgroundTask'`)
+
+* `STORAGETEMPLATEMIGRATION` (value: `'storageTemplateMigration'`)
+
+* `MIGRATION` (value: `'migration'`)
+
+* `SEARCH` (value: `'search'`)
+
+* `SIDECAR` (value: `'sidecar'`)
+
+* `LIBRARY` (value: `'library'`)
+
+* `NOTIFICATIONS` (value: `'notifications'`)
+
+* `BACKUPDATABASE` (value: `'backupDatabase'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobSettingsDto.md b/generated/immich/openapi_client/docs/JobSettingsDto.md
new file mode 100644
index 0000000..ad146c7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobSettingsDto.md
@@ -0,0 +1,29 @@
+# JobSettingsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**concurrency** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.job_settings_dto import JobSettingsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of JobSettingsDto from a JSON string
+job_settings_dto_instance = JobSettingsDto.from_json(json)
+# print the JSON string representation of the object
+print(JobSettingsDto.to_json())
+
+# convert the object into a dict
+job_settings_dto_dict = job_settings_dto_instance.to_dict()
+# create an instance of JobSettingsDto from a dict
+job_settings_dto_from_dict = JobSettingsDto.from_dict(job_settings_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobStatusDto.md b/generated/immich/openapi_client/docs/JobStatusDto.md
new file mode 100644
index 0000000..131ffea
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobStatusDto.md
@@ -0,0 +1,30 @@
+# JobStatusDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**job_counts** | [**JobCountsDto**](JobCountsDto.md) | |
+**queue_status** | [**QueueStatusDto**](QueueStatusDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.job_status_dto import JobStatusDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of JobStatusDto from a JSON string
+job_status_dto_instance = JobStatusDto.from_json(json)
+# print the JSON string representation of the object
+print(JobStatusDto.to_json())
+
+# convert the object into a dict
+job_status_dto_dict = job_status_dto_instance.to_dict()
+# create an instance of JobStatusDto from a dict
+job_status_dto_from_dict = JobStatusDto.from_dict(job_status_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/JobsApi.md b/generated/immich/openapi_client/docs/JobsApi.md
new file mode 100644
index 0000000..358cc20
--- /dev/null
+++ b/generated/immich/openapi_client/docs/JobsApi.md
@@ -0,0 +1,270 @@
+# generated.immich.openapi_client.JobsApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_job**](JobsApi.md#create_job) | **POST** /jobs |
+[**get_all_jobs_status**](JobsApi.md#get_all_jobs_status) | **GET** /jobs |
+[**send_job_command**](JobsApi.md#send_job_command) | **PUT** /jobs/{id} |
+
+
+# **create_job**
+> create_job(job_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.job_create_dto import JobCreateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.JobsApi(api_client)
+ job_create_dto = generated.immich.openapi_client.JobCreateDto() # JobCreateDto |
+
+ try:
+ api_instance.create_job(job_create_dto)
+ except Exception as e:
+ print("Exception when calling JobsApi->create_job: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **job_create_dto** | [**JobCreateDto**](JobCreateDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_jobs_status**
+> AllJobStatusResponseDto get_all_jobs_status()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.all_job_status_response_dto import AllJobStatusResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.JobsApi(api_client)
+
+ try:
+ api_response = api_instance.get_all_jobs_status()
+ print("The response of JobsApi->get_all_jobs_status:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling JobsApi->get_all_jobs_status: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**AllJobStatusResponseDto**](AllJobStatusResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **send_job_command**
+> JobStatusDto send_job_command(id, job_command_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.job_command_dto import JobCommandDto
+from generated.immich.openapi_client.models.job_name import JobName
+from generated.immich.openapi_client.models.job_status_dto import JobStatusDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.JobsApi(api_client)
+ id = generated.immich.openapi_client.JobName() # JobName |
+ job_command_dto = generated.immich.openapi_client.JobCommandDto() # JobCommandDto |
+
+ try:
+ api_response = api_instance.send_job_command(id, job_command_dto)
+ print("The response of JobsApi->send_job_command:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling JobsApi->send_job_command: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | [**JobName**](.md)| |
+ **job_command_dto** | [**JobCommandDto**](JobCommandDto.md)| |
+
+### Return type
+
+[**JobStatusDto**](JobStatusDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/LibrariesApi.md b/generated/immich/openapi_client/docs/LibrariesApi.md
new file mode 100644
index 0000000..7aee524
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LibrariesApi.md
@@ -0,0 +1,709 @@
+# generated.immich.openapi_client.LibrariesApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_library**](LibrariesApi.md#create_library) | **POST** /libraries |
+[**delete_library**](LibrariesApi.md#delete_library) | **DELETE** /libraries/{id} |
+[**get_all_libraries**](LibrariesApi.md#get_all_libraries) | **GET** /libraries |
+[**get_library**](LibrariesApi.md#get_library) | **GET** /libraries/{id} |
+[**get_library_statistics**](LibrariesApi.md#get_library_statistics) | **GET** /libraries/{id}/statistics |
+[**scan_library**](LibrariesApi.md#scan_library) | **POST** /libraries/{id}/scan |
+[**update_library**](LibrariesApi.md#update_library) | **PUT** /libraries/{id} |
+[**validate**](LibrariesApi.md#validate) | **POST** /libraries/{id}/validate |
+
+
+# **create_library**
+> LibraryResponseDto create_library(create_library_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.create_library_dto import CreateLibraryDto
+from generated.immich.openapi_client.models.library_response_dto import LibraryResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+ create_library_dto = generated.immich.openapi_client.CreateLibraryDto() # CreateLibraryDto |
+
+ try:
+ api_response = api_instance.create_library(create_library_dto)
+ print("The response of LibrariesApi->create_library:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->create_library: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **create_library_dto** | [**CreateLibraryDto**](CreateLibraryDto.md)| |
+
+### Return type
+
+[**LibraryResponseDto**](LibraryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_library**
+> delete_library(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_library(id)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->delete_library: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_libraries**
+> List[LibraryResponseDto] get_all_libraries()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.library_response_dto import LibraryResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+
+ try:
+ api_response = api_instance.get_all_libraries()
+ print("The response of LibrariesApi->get_all_libraries:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->get_all_libraries: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[LibraryResponseDto]**](LibraryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_library**
+> LibraryResponseDto get_library(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.library_response_dto import LibraryResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_library(id)
+ print("The response of LibrariesApi->get_library:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->get_library: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**LibraryResponseDto**](LibraryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_library_statistics**
+> LibraryStatsResponseDto get_library_statistics(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.library_stats_response_dto import LibraryStatsResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_library_statistics(id)
+ print("The response of LibrariesApi->get_library_statistics:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->get_library_statistics: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**LibraryStatsResponseDto**](LibraryStatsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **scan_library**
+> scan_library(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.scan_library(id)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->scan_library: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_library**
+> LibraryResponseDto update_library(id, update_library_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.library_response_dto import LibraryResponseDto
+from generated.immich.openapi_client.models.update_library_dto import UpdateLibraryDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+ id = 'id_example' # str |
+ update_library_dto = generated.immich.openapi_client.UpdateLibraryDto() # UpdateLibraryDto |
+
+ try:
+ api_response = api_instance.update_library(id, update_library_dto)
+ print("The response of LibrariesApi->update_library:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->update_library: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **update_library_dto** | [**UpdateLibraryDto**](UpdateLibraryDto.md)| |
+
+### Return type
+
+[**LibraryResponseDto**](LibraryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **validate**
+> ValidateLibraryResponseDto validate(id, validate_library_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.validate_library_dto import ValidateLibraryDto
+from generated.immich.openapi_client.models.validate_library_response_dto import ValidateLibraryResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.LibrariesApi(api_client)
+ id = 'id_example' # str |
+ validate_library_dto = generated.immich.openapi_client.ValidateLibraryDto() # ValidateLibraryDto |
+
+ try:
+ api_response = api_instance.validate(id, validate_library_dto)
+ print("The response of LibrariesApi->validate:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LibrariesApi->validate: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **validate_library_dto** | [**ValidateLibraryDto**](ValidateLibraryDto.md)| |
+
+### Return type
+
+[**ValidateLibraryResponseDto**](ValidateLibraryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/LibraryResponseDto.md b/generated/immich/openapi_client/docs/LibraryResponseDto.md
new file mode 100644
index 0000000..ffa6c95
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LibraryResponseDto.md
@@ -0,0 +1,37 @@
+# LibraryResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_count** | **int** | |
+**created_at** | **datetime** | |
+**exclusion_patterns** | **List[str]** | |
+**id** | **str** | |
+**import_paths** | **List[str]** | |
+**name** | **str** | |
+**owner_id** | **str** | |
+**refreshed_at** | **datetime** | |
+**updated_at** | **datetime** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.library_response_dto import LibraryResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LibraryResponseDto from a JSON string
+library_response_dto_instance = LibraryResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(LibraryResponseDto.to_json())
+
+# convert the object into a dict
+library_response_dto_dict = library_response_dto_instance.to_dict()
+# create an instance of LibraryResponseDto from a dict
+library_response_dto_from_dict = LibraryResponseDto.from_dict(library_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/LibraryStatsResponseDto.md b/generated/immich/openapi_client/docs/LibraryStatsResponseDto.md
new file mode 100644
index 0000000..e85db40
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LibraryStatsResponseDto.md
@@ -0,0 +1,32 @@
+# LibraryStatsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**photos** | **int** | | [default to 0]
+**total** | **int** | | [default to 0]
+**usage** | **int** | | [default to 0]
+**videos** | **int** | | [default to 0]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.library_stats_response_dto import LibraryStatsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LibraryStatsResponseDto from a JSON string
+library_stats_response_dto_instance = LibraryStatsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(LibraryStatsResponseDto.to_json())
+
+# convert the object into a dict
+library_stats_response_dto_dict = library_stats_response_dto_instance.to_dict()
+# create an instance of LibraryStatsResponseDto from a dict
+library_stats_response_dto_from_dict = LibraryStatsResponseDto.from_dict(library_stats_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/LicenseKeyDto.md b/generated/immich/openapi_client/docs/LicenseKeyDto.md
new file mode 100644
index 0000000..6ccf12f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LicenseKeyDto.md
@@ -0,0 +1,30 @@
+# LicenseKeyDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**activation_key** | **str** | |
+**license_key** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.license_key_dto import LicenseKeyDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LicenseKeyDto from a JSON string
+license_key_dto_instance = LicenseKeyDto.from_json(json)
+# print the JSON string representation of the object
+print(LicenseKeyDto.to_json())
+
+# convert the object into a dict
+license_key_dto_dict = license_key_dto_instance.to_dict()
+# create an instance of LicenseKeyDto from a dict
+license_key_dto_from_dict = LicenseKeyDto.from_dict(license_key_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/LicenseResponseDto.md b/generated/immich/openapi_client/docs/LicenseResponseDto.md
new file mode 100644
index 0000000..693d1bd
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LicenseResponseDto.md
@@ -0,0 +1,31 @@
+# LicenseResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**activated_at** | **datetime** | |
+**activation_key** | **str** | |
+**license_key** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.license_response_dto import LicenseResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LicenseResponseDto from a JSON string
+license_response_dto_instance = LicenseResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(LicenseResponseDto.to_json())
+
+# convert the object into a dict
+license_response_dto_dict = license_response_dto_instance.to_dict()
+# create an instance of LicenseResponseDto from a dict
+license_response_dto_from_dict = LicenseResponseDto.from_dict(license_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/LogLevel.md b/generated/immich/openapi_client/docs/LogLevel.md
new file mode 100644
index 0000000..aabc4ac
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LogLevel.md
@@ -0,0 +1,20 @@
+# LogLevel
+
+
+## Enum
+
+* `VERBOSE` (value: `'verbose'`)
+
+* `DEBUG` (value: `'debug'`)
+
+* `LOG` (value: `'log'`)
+
+* `WARN` (value: `'warn'`)
+
+* `ERROR` (value: `'error'`)
+
+* `FATAL` (value: `'fatal'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/LoginCredentialDto.md b/generated/immich/openapi_client/docs/LoginCredentialDto.md
new file mode 100644
index 0000000..05b6670
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LoginCredentialDto.md
@@ -0,0 +1,30 @@
+# LoginCredentialDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**email** | **str** | |
+**password** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.login_credential_dto import LoginCredentialDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LoginCredentialDto from a JSON string
+login_credential_dto_instance = LoginCredentialDto.from_json(json)
+# print the JSON string representation of the object
+print(LoginCredentialDto.to_json())
+
+# convert the object into a dict
+login_credential_dto_dict = login_credential_dto_instance.to_dict()
+# create an instance of LoginCredentialDto from a dict
+login_credential_dto_from_dict = LoginCredentialDto.from_dict(login_credential_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/LoginResponseDto.md b/generated/immich/openapi_client/docs/LoginResponseDto.md
new file mode 100644
index 0000000..50ca5d9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LoginResponseDto.md
@@ -0,0 +1,35 @@
+# LoginResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**access_token** | **str** | |
+**is_admin** | **bool** | |
+**name** | **str** | |
+**profile_image_path** | **str** | |
+**should_change_password** | **bool** | |
+**user_email** | **str** | |
+**user_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.login_response_dto import LoginResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LoginResponseDto from a JSON string
+login_response_dto_instance = LoginResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(LoginResponseDto.to_json())
+
+# convert the object into a dict
+login_response_dto_dict = login_response_dto_instance.to_dict()
+# create an instance of LoginResponseDto from a dict
+login_response_dto_from_dict = LoginResponseDto.from_dict(login_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/LogoutResponseDto.md b/generated/immich/openapi_client/docs/LogoutResponseDto.md
new file mode 100644
index 0000000..509731c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/LogoutResponseDto.md
@@ -0,0 +1,30 @@
+# LogoutResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**redirect_uri** | **str** | |
+**successful** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.logout_response_dto import LogoutResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LogoutResponseDto from a JSON string
+logout_response_dto_instance = LogoutResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(LogoutResponseDto.to_json())
+
+# convert the object into a dict
+logout_response_dto_dict = logout_response_dto_instance.to_dict()
+# create an instance of LogoutResponseDto from a dict
+logout_response_dto_from_dict = LogoutResponseDto.from_dict(logout_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ManualJobName.md b/generated/immich/openapi_client/docs/ManualJobName.md
new file mode 100644
index 0000000..7b5bce6
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ManualJobName.md
@@ -0,0 +1,20 @@
+# ManualJobName
+
+
+## Enum
+
+* `PERSON_MINUS_CLEANUP` (value: `'person-cleanup'`)
+
+* `TAG_MINUS_CLEANUP` (value: `'tag-cleanup'`)
+
+* `USER_MINUS_CLEANUP` (value: `'user-cleanup'`)
+
+* `MEMORY_MINUS_CLEANUP` (value: `'memory-cleanup'`)
+
+* `MEMORY_MINUS_CREATE` (value: `'memory-create'`)
+
+* `BACKUP_MINUS_DATABASE` (value: `'backup-database'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MapApi.md b/generated/immich/openapi_client/docs/MapApi.md
new file mode 100644
index 0000000..1833e64
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MapApi.md
@@ -0,0 +1,196 @@
+# generated.immich.openapi_client.MapApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_map_markers**](MapApi.md#get_map_markers) | **GET** /map/markers |
+[**reverse_geocode**](MapApi.md#reverse_geocode) | **GET** /map/reverse-geocode |
+
+
+# **get_map_markers**
+> List[MapMarkerResponseDto] get_map_markers(file_created_after=file_created_after, file_created_before=file_created_before, is_archived=is_archived, is_favorite=is_favorite, with_partners=with_partners, with_shared_albums=with_shared_albums)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.map_marker_response_dto import MapMarkerResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MapApi(api_client)
+ file_created_after = '2013-10-20T19:20:30+01:00' # datetime | (optional)
+ file_created_before = '2013-10-20T19:20:30+01:00' # datetime | (optional)
+ is_archived = True # bool | (optional)
+ is_favorite = True # bool | (optional)
+ with_partners = True # bool | (optional)
+ with_shared_albums = True # bool | (optional)
+
+ try:
+ api_response = api_instance.get_map_markers(file_created_after=file_created_after, file_created_before=file_created_before, is_archived=is_archived, is_favorite=is_favorite, with_partners=with_partners, with_shared_albums=with_shared_albums)
+ print("The response of MapApi->get_map_markers:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MapApi->get_map_markers: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **file_created_after** | **datetime**| | [optional]
+ **file_created_before** | **datetime**| | [optional]
+ **is_archived** | **bool**| | [optional]
+ **is_favorite** | **bool**| | [optional]
+ **with_partners** | **bool**| | [optional]
+ **with_shared_albums** | **bool**| | [optional]
+
+### Return type
+
+[**List[MapMarkerResponseDto]**](MapMarkerResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **reverse_geocode**
+> List[MapReverseGeocodeResponseDto] reverse_geocode(lat, lon)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.map_reverse_geocode_response_dto import MapReverseGeocodeResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MapApi(api_client)
+ lat = 3.4 # float |
+ lon = 3.4 # float |
+
+ try:
+ api_response = api_instance.reverse_geocode(lat, lon)
+ print("The response of MapApi->reverse_geocode:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MapApi->reverse_geocode: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **lat** | **float**| |
+ **lon** | **float**| |
+
+### Return type
+
+[**List[MapReverseGeocodeResponseDto]**](MapReverseGeocodeResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/MapMarkerResponseDto.md b/generated/immich/openapi_client/docs/MapMarkerResponseDto.md
new file mode 100644
index 0000000..461d72b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MapMarkerResponseDto.md
@@ -0,0 +1,34 @@
+# MapMarkerResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**city** | **str** | |
+**country** | **str** | |
+**id** | **str** | |
+**lat** | **float** | |
+**lon** | **float** | |
+**state** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.map_marker_response_dto import MapMarkerResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MapMarkerResponseDto from a JSON string
+map_marker_response_dto_instance = MapMarkerResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(MapMarkerResponseDto.to_json())
+
+# convert the object into a dict
+map_marker_response_dto_dict = map_marker_response_dto_instance.to_dict()
+# create an instance of MapMarkerResponseDto from a dict
+map_marker_response_dto_from_dict = MapMarkerResponseDto.from_dict(map_marker_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MapReverseGeocodeResponseDto.md b/generated/immich/openapi_client/docs/MapReverseGeocodeResponseDto.md
new file mode 100644
index 0000000..499b554
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MapReverseGeocodeResponseDto.md
@@ -0,0 +1,31 @@
+# MapReverseGeocodeResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**city** | **str** | |
+**country** | **str** | |
+**state** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.map_reverse_geocode_response_dto import MapReverseGeocodeResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MapReverseGeocodeResponseDto from a JSON string
+map_reverse_geocode_response_dto_instance = MapReverseGeocodeResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(MapReverseGeocodeResponseDto.to_json())
+
+# convert the object into a dict
+map_reverse_geocode_response_dto_dict = map_reverse_geocode_response_dto_instance.to_dict()
+# create an instance of MapReverseGeocodeResponseDto from a dict
+map_reverse_geocode_response_dto_from_dict = MapReverseGeocodeResponseDto.from_dict(map_reverse_geocode_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MemoriesApi.md b/generated/immich/openapi_client/docs/MemoriesApi.md
new file mode 100644
index 0000000..2c0f3be
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoriesApi.md
@@ -0,0 +1,638 @@
+# generated.immich.openapi_client.MemoriesApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_memory_assets**](MemoriesApi.md#add_memory_assets) | **PUT** /memories/{id}/assets |
+[**create_memory**](MemoriesApi.md#create_memory) | **POST** /memories |
+[**delete_memory**](MemoriesApi.md#delete_memory) | **DELETE** /memories/{id} |
+[**get_memory**](MemoriesApi.md#get_memory) | **GET** /memories/{id} |
+[**remove_memory_assets**](MemoriesApi.md#remove_memory_assets) | **DELETE** /memories/{id}/assets |
+[**search_memories**](MemoriesApi.md#search_memories) | **GET** /memories |
+[**update_memory**](MemoriesApi.md#update_memory) | **PUT** /memories/{id} |
+
+
+# **add_memory_assets**
+> List[BulkIdResponseDto] add_memory_assets(id, bulk_ids_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MemoriesApi(api_client)
+ id = 'id_example' # str |
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+
+ try:
+ api_response = api_instance.add_memory_assets(id, bulk_ids_dto)
+ print("The response of MemoriesApi->add_memory_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MemoriesApi->add_memory_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_memory**
+> MemoryResponseDto create_memory(memory_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.memory_create_dto import MemoryCreateDto
+from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MemoriesApi(api_client)
+ memory_create_dto = generated.immich.openapi_client.MemoryCreateDto() # MemoryCreateDto |
+
+ try:
+ api_response = api_instance.create_memory(memory_create_dto)
+ print("The response of MemoriesApi->create_memory:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MemoriesApi->create_memory: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **memory_create_dto** | [**MemoryCreateDto**](MemoryCreateDto.md)| |
+
+### Return type
+
+[**MemoryResponseDto**](MemoryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_memory**
+> delete_memory(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MemoriesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_memory(id)
+ except Exception as e:
+ print("Exception when calling MemoriesApi->delete_memory: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_memory**
+> MemoryResponseDto get_memory(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MemoriesApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_memory(id)
+ print("The response of MemoriesApi->get_memory:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MemoriesApi->get_memory: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**MemoryResponseDto**](MemoryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **remove_memory_assets**
+> List[BulkIdResponseDto] remove_memory_assets(id, bulk_ids_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MemoriesApi(api_client)
+ id = 'id_example' # str |
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+
+ try:
+ api_response = api_instance.remove_memory_assets(id, bulk_ids_dto)
+ print("The response of MemoriesApi->remove_memory_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MemoriesApi->remove_memory_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_memories**
+> List[MemoryResponseDto] search_memories(var_for=var_for, is_saved=is_saved, is_trashed=is_trashed, type=type)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
+from generated.immich.openapi_client.models.memory_type import MemoryType
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MemoriesApi(api_client)
+ var_for = '2013-10-20T19:20:30+01:00' # datetime | (optional)
+ is_saved = True # bool | (optional)
+ is_trashed = True # bool | (optional)
+ type = generated.immich.openapi_client.MemoryType() # MemoryType | (optional)
+
+ try:
+ api_response = api_instance.search_memories(var_for=var_for, is_saved=is_saved, is_trashed=is_trashed, type=type)
+ print("The response of MemoriesApi->search_memories:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MemoriesApi->search_memories: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **var_for** | **datetime**| | [optional]
+ **is_saved** | **bool**| | [optional]
+ **is_trashed** | **bool**| | [optional]
+ **type** | [**MemoryType**](.md)| | [optional]
+
+### Return type
+
+[**List[MemoryResponseDto]**](MemoryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_memory**
+> MemoryResponseDto update_memory(id, memory_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
+from generated.immich.openapi_client.models.memory_update_dto import MemoryUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.MemoriesApi(api_client)
+ id = 'id_example' # str |
+ memory_update_dto = generated.immich.openapi_client.MemoryUpdateDto() # MemoryUpdateDto |
+
+ try:
+ api_response = api_instance.update_memory(id, memory_update_dto)
+ print("The response of MemoriesApi->update_memory:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MemoriesApi->update_memory: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **memory_update_dto** | [**MemoryUpdateDto**](MemoryUpdateDto.md)| |
+
+### Return type
+
+[**MemoryResponseDto**](MemoryResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/MemoriesResponse.md b/generated/immich/openapi_client/docs/MemoriesResponse.md
new file mode 100644
index 0000000..660a8fb
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoriesResponse.md
@@ -0,0 +1,29 @@
+# MemoriesResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [default to True]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.memories_response import MemoriesResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MemoriesResponse from a JSON string
+memories_response_instance = MemoriesResponse.from_json(json)
+# print the JSON string representation of the object
+print(MemoriesResponse.to_json())
+
+# convert the object into a dict
+memories_response_dict = memories_response_instance.to_dict()
+# create an instance of MemoriesResponse from a dict
+memories_response_from_dict = MemoriesResponse.from_dict(memories_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MemoriesUpdate.md b/generated/immich/openapi_client/docs/MemoriesUpdate.md
new file mode 100644
index 0000000..ffd5836
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoriesUpdate.md
@@ -0,0 +1,29 @@
+# MemoriesUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.memories_update import MemoriesUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MemoriesUpdate from a JSON string
+memories_update_instance = MemoriesUpdate.from_json(json)
+# print the JSON string representation of the object
+print(MemoriesUpdate.to_json())
+
+# convert the object into a dict
+memories_update_dict = memories_update_instance.to_dict()
+# create an instance of MemoriesUpdate from a dict
+memories_update_from_dict = MemoriesUpdate.from_dict(memories_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MemoryCreateDto.md b/generated/immich/openapi_client/docs/MemoryCreateDto.md
new file mode 100644
index 0000000..d38fd69
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoryCreateDto.md
@@ -0,0 +1,34 @@
+# MemoryCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_ids** | **List[str]** | | [optional]
+**data** | [**OnThisDayDto**](OnThisDayDto.md) | |
+**is_saved** | **bool** | | [optional]
+**memory_at** | **datetime** | |
+**seen_at** | **datetime** | | [optional]
+**type** | [**MemoryType**](MemoryType.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.memory_create_dto import MemoryCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MemoryCreateDto from a JSON string
+memory_create_dto_instance = MemoryCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(MemoryCreateDto.to_json())
+
+# convert the object into a dict
+memory_create_dto_dict = memory_create_dto_instance.to_dict()
+# create an instance of MemoryCreateDto from a dict
+memory_create_dto_from_dict = MemoryCreateDto.from_dict(memory_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MemoryLaneResponseDto.md b/generated/immich/openapi_client/docs/MemoryLaneResponseDto.md
new file mode 100644
index 0000000..492d2e5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoryLaneResponseDto.md
@@ -0,0 +1,30 @@
+# MemoryLaneResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+**years_ago** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.memory_lane_response_dto import MemoryLaneResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MemoryLaneResponseDto from a JSON string
+memory_lane_response_dto_instance = MemoryLaneResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(MemoryLaneResponseDto.to_json())
+
+# convert the object into a dict
+memory_lane_response_dto_dict = memory_lane_response_dto_instance.to_dict()
+# create an instance of MemoryLaneResponseDto from a dict
+memory_lane_response_dto_from_dict = MemoryLaneResponseDto.from_dict(memory_lane_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MemoryResponseDto.md b/generated/immich/openapi_client/docs/MemoryResponseDto.md
new file mode 100644
index 0000000..0d4b19b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoryResponseDto.md
@@ -0,0 +1,41 @@
+# MemoryResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+**created_at** | **datetime** | |
+**data** | [**OnThisDayDto**](OnThisDayDto.md) | |
+**deleted_at** | **datetime** | | [optional]
+**hide_at** | **datetime** | | [optional]
+**id** | **str** | |
+**is_saved** | **bool** | |
+**memory_at** | **datetime** | |
+**owner_id** | **str** | |
+**seen_at** | **datetime** | | [optional]
+**show_at** | **datetime** | | [optional]
+**type** | [**MemoryType**](MemoryType.md) | |
+**updated_at** | **datetime** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MemoryResponseDto from a JSON string
+memory_response_dto_instance = MemoryResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(MemoryResponseDto.to_json())
+
+# convert the object into a dict
+memory_response_dto_dict = memory_response_dto_instance.to_dict()
+# create an instance of MemoryResponseDto from a dict
+memory_response_dto_from_dict = MemoryResponseDto.from_dict(memory_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MemoryType.md b/generated/immich/openapi_client/docs/MemoryType.md
new file mode 100644
index 0000000..52bd85d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoryType.md
@@ -0,0 +1,10 @@
+# MemoryType
+
+
+## Enum
+
+* `ON_THIS_DAY` (value: `'on_this_day'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MemoryUpdateDto.md b/generated/immich/openapi_client/docs/MemoryUpdateDto.md
new file mode 100644
index 0000000..e2902b4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MemoryUpdateDto.md
@@ -0,0 +1,31 @@
+# MemoryUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**is_saved** | **bool** | | [optional]
+**memory_at** | **datetime** | | [optional]
+**seen_at** | **datetime** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.memory_update_dto import MemoryUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MemoryUpdateDto from a JSON string
+memory_update_dto_instance = MemoryUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(MemoryUpdateDto.to_json())
+
+# convert the object into a dict
+memory_update_dto_dict = memory_update_dto_instance.to_dict()
+# create an instance of MemoryUpdateDto from a dict
+memory_update_dto_from_dict = MemoryUpdateDto.from_dict(memory_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MergePersonDto.md b/generated/immich/openapi_client/docs/MergePersonDto.md
new file mode 100644
index 0000000..b86e363
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MergePersonDto.md
@@ -0,0 +1,29 @@
+# MergePersonDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ids** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.merge_person_dto import MergePersonDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MergePersonDto from a JSON string
+merge_person_dto_instance = MergePersonDto.from_json(json)
+# print the JSON string representation of the object
+print(MergePersonDto.to_json())
+
+# convert the object into a dict
+merge_person_dto_dict = merge_person_dto_instance.to_dict()
+# create an instance of MergePersonDto from a dict
+merge_person_dto_from_dict = MergePersonDto.from_dict(merge_person_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/MetadataSearchDto.md b/generated/immich/openapi_client/docs/MetadataSearchDto.md
new file mode 100644
index 0000000..66b561e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/MetadataSearchDto.md
@@ -0,0 +1,72 @@
+# MetadataSearchDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**checksum** | **str** | | [optional]
+**city** | **str** | | [optional]
+**country** | **str** | | [optional]
+**created_after** | **datetime** | | [optional]
+**created_before** | **datetime** | | [optional]
+**description** | **str** | | [optional]
+**device_asset_id** | **str** | | [optional]
+**device_id** | **str** | | [optional]
+**encoded_video_path** | **str** | | [optional]
+**id** | **str** | | [optional]
+**is_archived** | **bool** | | [optional]
+**is_encoded** | **bool** | | [optional]
+**is_favorite** | **bool** | | [optional]
+**is_motion** | **bool** | | [optional]
+**is_not_in_album** | **bool** | | [optional]
+**is_offline** | **bool** | | [optional]
+**is_visible** | **bool** | | [optional]
+**lens_model** | **str** | | [optional]
+**library_id** | **str** | | [optional]
+**make** | **str** | | [optional]
+**model** | **str** | | [optional]
+**order** | [**AssetOrder**](AssetOrder.md) | | [optional]
+**original_file_name** | **str** | | [optional]
+**original_path** | **str** | | [optional]
+**page** | **float** | | [optional]
+**person_ids** | **List[str]** | | [optional]
+**preview_path** | **str** | | [optional]
+**rating** | **float** | | [optional]
+**size** | **float** | | [optional]
+**state** | **str** | | [optional]
+**tag_ids** | **List[str]** | | [optional]
+**taken_after** | **datetime** | | [optional]
+**taken_before** | **datetime** | | [optional]
+**thumbnail_path** | **str** | | [optional]
+**trashed_after** | **datetime** | | [optional]
+**trashed_before** | **datetime** | | [optional]
+**type** | [**AssetTypeEnum**](AssetTypeEnum.md) | | [optional]
+**updated_after** | **datetime** | | [optional]
+**updated_before** | **datetime** | | [optional]
+**with_archived** | **bool** | | [optional] [default to False]
+**with_deleted** | **bool** | | [optional]
+**with_exif** | **bool** | | [optional]
+**with_people** | **bool** | | [optional]
+**with_stacked** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.metadata_search_dto import MetadataSearchDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MetadataSearchDto from a JSON string
+metadata_search_dto_instance = MetadataSearchDto.from_json(json)
+# print the JSON string representation of the object
+print(MetadataSearchDto.to_json())
+
+# convert the object into a dict
+metadata_search_dto_dict = metadata_search_dto_instance.to_dict()
+# create an instance of MetadataSearchDto from a dict
+metadata_search_dto_from_dict = MetadataSearchDto.from_dict(metadata_search_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/NotificationsApi.md b/generated/immich/openapi_client/docs/NotificationsApi.md
new file mode 100644
index 0000000..38b5141
--- /dev/null
+++ b/generated/immich/openapi_client/docs/NotificationsApi.md
@@ -0,0 +1,188 @@
+# generated.immich.openapi_client.NotificationsApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_notification_template**](NotificationsApi.md#get_notification_template) | **POST** /notifications/templates/{name} |
+[**send_test_email**](NotificationsApi.md#send_test_email) | **POST** /notifications/test-email |
+
+
+# **get_notification_template**
+> TemplateResponseDto get_notification_template(name, template_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.NotificationsApi(api_client)
+ name = 'name_example' # str |
+ template_dto = generated.immich.openapi_client.TemplateDto() # TemplateDto |
+
+ try:
+ api_response = api_instance.get_notification_template(name, template_dto)
+ print("The response of NotificationsApi->get_notification_template:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling NotificationsApi->get_notification_template: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| |
+ **template_dto** | [**TemplateDto**](TemplateDto.md)| |
+
+### Return type
+
+[**TemplateResponseDto**](TemplateResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **send_test_email**
+> TestEmailResponseDto send_test_email(system_config_smtp_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.system_config_smtp_dto import SystemConfigSmtpDto
+from generated.immich.openapi_client.models.test_email_response_dto import TestEmailResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.NotificationsApi(api_client)
+ system_config_smtp_dto = generated.immich.openapi_client.SystemConfigSmtpDto() # SystemConfigSmtpDto |
+
+ try:
+ api_response = api_instance.send_test_email(system_config_smtp_dto)
+ print("The response of NotificationsApi->send_test_email:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling NotificationsApi->send_test_email: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **system_config_smtp_dto** | [**SystemConfigSmtpDto**](SystemConfigSmtpDto.md)| |
+
+### Return type
+
+[**TestEmailResponseDto**](TestEmailResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/OAuthApi.md b/generated/immich/openapi_client/docs/OAuthApi.md
new file mode 100644
index 0000000..fddfd24
--- /dev/null
+++ b/generated/immich/openapi_client/docs/OAuthApi.md
@@ -0,0 +1,368 @@
+# generated.immich.openapi_client.OAuthApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**finish_o_auth**](OAuthApi.md#finish_o_auth) | **POST** /oauth/callback |
+[**link_o_auth_account**](OAuthApi.md#link_o_auth_account) | **POST** /oauth/link |
+[**redirect_o_auth_to_mobile**](OAuthApi.md#redirect_o_auth_to_mobile) | **GET** /oauth/mobile-redirect |
+[**start_o_auth**](OAuthApi.md#start_o_auth) | **POST** /oauth/authorize |
+[**unlink_o_auth_account**](OAuthApi.md#unlink_o_auth_account) | **POST** /oauth/unlink |
+
+
+# **finish_o_auth**
+> LoginResponseDto finish_o_auth(o_auth_callback_dto)
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.login_response_dto import LoginResponseDto
+from generated.immich.openapi_client.models.o_auth_callback_dto import OAuthCallbackDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.OAuthApi(api_client)
+ o_auth_callback_dto = generated.immich.openapi_client.OAuthCallbackDto() # OAuthCallbackDto |
+
+ try:
+ api_response = api_instance.finish_o_auth(o_auth_callback_dto)
+ print("The response of OAuthApi->finish_o_auth:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling OAuthApi->finish_o_auth: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **o_auth_callback_dto** | [**OAuthCallbackDto**](OAuthCallbackDto.md)| |
+
+### Return type
+
+[**LoginResponseDto**](LoginResponseDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **link_o_auth_account**
+> UserAdminResponseDto link_o_auth_account(o_auth_callback_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.o_auth_callback_dto import OAuthCallbackDto
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.OAuthApi(api_client)
+ o_auth_callback_dto = generated.immich.openapi_client.OAuthCallbackDto() # OAuthCallbackDto |
+
+ try:
+ api_response = api_instance.link_o_auth_account(o_auth_callback_dto)
+ print("The response of OAuthApi->link_o_auth_account:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling OAuthApi->link_o_auth_account: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **o_auth_callback_dto** | [**OAuthCallbackDto**](OAuthCallbackDto.md)| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **redirect_o_auth_to_mobile**
+> redirect_o_auth_to_mobile()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.OAuthApi(api_client)
+
+ try:
+ api_instance.redirect_o_auth_to_mobile()
+ except Exception as e:
+ print("Exception when calling OAuthApi->redirect_o_auth_to_mobile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **start_o_auth**
+> OAuthAuthorizeResponseDto start_o_auth(o_auth_config_dto)
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.o_auth_authorize_response_dto import OAuthAuthorizeResponseDto
+from generated.immich.openapi_client.models.o_auth_config_dto import OAuthConfigDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.OAuthApi(api_client)
+ o_auth_config_dto = generated.immich.openapi_client.OAuthConfigDto() # OAuthConfigDto |
+
+ try:
+ api_response = api_instance.start_o_auth(o_auth_config_dto)
+ print("The response of OAuthApi->start_o_auth:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling OAuthApi->start_o_auth: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **o_auth_config_dto** | [**OAuthConfigDto**](OAuthConfigDto.md)| |
+
+### Return type
+
+[**OAuthAuthorizeResponseDto**](OAuthAuthorizeResponseDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **unlink_o_auth_account**
+> UserAdminResponseDto unlink_o_auth_account()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.OAuthApi(api_client)
+
+ try:
+ api_response = api_instance.unlink_o_auth_account()
+ print("The response of OAuthApi->unlink_o_auth_account:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling OAuthApi->unlink_o_auth_account: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/OAuthAuthorizeResponseDto.md b/generated/immich/openapi_client/docs/OAuthAuthorizeResponseDto.md
new file mode 100644
index 0000000..d66930b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/OAuthAuthorizeResponseDto.md
@@ -0,0 +1,29 @@
+# OAuthAuthorizeResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**url** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.o_auth_authorize_response_dto import OAuthAuthorizeResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OAuthAuthorizeResponseDto from a JSON string
+o_auth_authorize_response_dto_instance = OAuthAuthorizeResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(OAuthAuthorizeResponseDto.to_json())
+
+# convert the object into a dict
+o_auth_authorize_response_dto_dict = o_auth_authorize_response_dto_instance.to_dict()
+# create an instance of OAuthAuthorizeResponseDto from a dict
+o_auth_authorize_response_dto_from_dict = OAuthAuthorizeResponseDto.from_dict(o_auth_authorize_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/OAuthCallbackDto.md b/generated/immich/openapi_client/docs/OAuthCallbackDto.md
new file mode 100644
index 0000000..1b3328a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/OAuthCallbackDto.md
@@ -0,0 +1,29 @@
+# OAuthCallbackDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**url** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.o_auth_callback_dto import OAuthCallbackDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OAuthCallbackDto from a JSON string
+o_auth_callback_dto_instance = OAuthCallbackDto.from_json(json)
+# print the JSON string representation of the object
+print(OAuthCallbackDto.to_json())
+
+# convert the object into a dict
+o_auth_callback_dto_dict = o_auth_callback_dto_instance.to_dict()
+# create an instance of OAuthCallbackDto from a dict
+o_auth_callback_dto_from_dict = OAuthCallbackDto.from_dict(o_auth_callback_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/OAuthConfigDto.md b/generated/immich/openapi_client/docs/OAuthConfigDto.md
new file mode 100644
index 0000000..116eb11
--- /dev/null
+++ b/generated/immich/openapi_client/docs/OAuthConfigDto.md
@@ -0,0 +1,29 @@
+# OAuthConfigDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**redirect_uri** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.o_auth_config_dto import OAuthConfigDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OAuthConfigDto from a JSON string
+o_auth_config_dto_instance = OAuthConfigDto.from_json(json)
+# print the JSON string representation of the object
+print(OAuthConfigDto.to_json())
+
+# convert the object into a dict
+o_auth_config_dto_dict = o_auth_config_dto_instance.to_dict()
+# create an instance of OAuthConfigDto from a dict
+o_auth_config_dto_from_dict = OAuthConfigDto.from_dict(o_auth_config_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/OnThisDayDto.md b/generated/immich/openapi_client/docs/OnThisDayDto.md
new file mode 100644
index 0000000..feb2254
--- /dev/null
+++ b/generated/immich/openapi_client/docs/OnThisDayDto.md
@@ -0,0 +1,29 @@
+# OnThisDayDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**year** | **float** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.on_this_day_dto import OnThisDayDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of OnThisDayDto from a JSON string
+on_this_day_dto_instance = OnThisDayDto.from_json(json)
+# print the JSON string representation of the object
+print(OnThisDayDto.to_json())
+
+# convert the object into a dict
+on_this_day_dto_dict = on_this_day_dto_instance.to_dict()
+# create an instance of OnThisDayDto from a dict
+on_this_day_dto_from_dict = OnThisDayDto.from_dict(on_this_day_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PartnerDirection.md b/generated/immich/openapi_client/docs/PartnerDirection.md
new file mode 100644
index 0000000..8d46172
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PartnerDirection.md
@@ -0,0 +1,12 @@
+# PartnerDirection
+
+
+## Enum
+
+* `SHARED_MINUS_BY` (value: `'shared-by'`)
+
+* `SHARED_MINUS_WITH` (value: `'shared-with'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PartnerResponseDto.md b/generated/immich/openapi_client/docs/PartnerResponseDto.md
new file mode 100644
index 0000000..d860b39
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PartnerResponseDto.md
@@ -0,0 +1,35 @@
+# PartnerResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**avatar_color** | [**UserAvatarColor**](UserAvatarColor.md) | |
+**email** | **str** | |
+**id** | **str** | |
+**in_timeline** | **bool** | | [optional]
+**name** | **str** | |
+**profile_changed_at** | **datetime** | |
+**profile_image_path** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.partner_response_dto import PartnerResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PartnerResponseDto from a JSON string
+partner_response_dto_instance = PartnerResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(PartnerResponseDto.to_json())
+
+# convert the object into a dict
+partner_response_dto_dict = partner_response_dto_instance.to_dict()
+# create an instance of PartnerResponseDto from a dict
+partner_response_dto_from_dict = PartnerResponseDto.from_dict(partner_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PartnersApi.md b/generated/immich/openapi_client/docs/PartnersApi.md
new file mode 100644
index 0000000..c16a2ff
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PartnersApi.md
@@ -0,0 +1,361 @@
+# generated.immich.openapi_client.PartnersApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_partner**](PartnersApi.md#create_partner) | **POST** /partners/{id} |
+[**get_partners**](PartnersApi.md#get_partners) | **GET** /partners |
+[**remove_partner**](PartnersApi.md#remove_partner) | **DELETE** /partners/{id} |
+[**update_partner**](PartnersApi.md#update_partner) | **PUT** /partners/{id} |
+
+
+# **create_partner**
+> PartnerResponseDto create_partner(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.partner_response_dto import PartnerResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PartnersApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.create_partner(id)
+ print("The response of PartnersApi->create_partner:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PartnersApi->create_partner: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**PartnerResponseDto**](PartnerResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_partners**
+> List[PartnerResponseDto] get_partners(direction)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PartnersApi(api_client)
+ direction = generated.immich.openapi_client.PartnerDirection() # PartnerDirection |
+
+ try:
+ api_response = api_instance.get_partners(direction)
+ print("The response of PartnersApi->get_partners:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PartnersApi->get_partners: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **direction** | [**PartnerDirection**](.md)| |
+
+### Return type
+
+[**List[PartnerResponseDto]**](PartnerResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **remove_partner**
+> remove_partner(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PartnersApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.remove_partner(id)
+ except Exception as e:
+ print("Exception when calling PartnersApi->remove_partner: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_partner**
+> PartnerResponseDto update_partner(id, update_partner_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.partner_response_dto import PartnerResponseDto
+from generated.immich.openapi_client.models.update_partner_dto import UpdatePartnerDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PartnersApi(api_client)
+ id = 'id_example' # str |
+ update_partner_dto = generated.immich.openapi_client.UpdatePartnerDto() # UpdatePartnerDto |
+
+ try:
+ api_response = api_instance.update_partner(id, update_partner_dto)
+ print("The response of PartnersApi->update_partner:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PartnersApi->update_partner: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **update_partner_dto** | [**UpdatePartnerDto**](UpdatePartnerDto.md)| |
+
+### Return type
+
+[**PartnerResponseDto**](PartnerResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/PathEntityType.md b/generated/immich/openapi_client/docs/PathEntityType.md
new file mode 100644
index 0000000..364106e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PathEntityType.md
@@ -0,0 +1,14 @@
+# PathEntityType
+
+
+## Enum
+
+* `ASSET` (value: `'asset'`)
+
+* `PERSON` (value: `'person'`)
+
+* `USER` (value: `'user'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PathType.md b/generated/immich/openapi_client/docs/PathType.md
new file mode 100644
index 0000000..e0a5189
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PathType.md
@@ -0,0 +1,24 @@
+# PathType
+
+
+## Enum
+
+* `ORIGINAL` (value: `'original'`)
+
+* `FULLSIZE` (value: `'fullsize'`)
+
+* `PREVIEW` (value: `'preview'`)
+
+* `THUMBNAIL` (value: `'thumbnail'`)
+
+* `ENCODED_VIDEO` (value: `'encoded_video'`)
+
+* `SIDECAR` (value: `'sidecar'`)
+
+* `FACE` (value: `'face'`)
+
+* `PROFILE` (value: `'profile'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PeopleApi.md b/generated/immich/openapi_client/docs/PeopleApi.md
new file mode 100644
index 0000000..68fcc61
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PeopleApi.md
@@ -0,0 +1,818 @@
+# generated.immich.openapi_client.PeopleApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_person**](PeopleApi.md#create_person) | **POST** /people |
+[**get_all_people**](PeopleApi.md#get_all_people) | **GET** /people |
+[**get_person**](PeopleApi.md#get_person) | **GET** /people/{id} |
+[**get_person_statistics**](PeopleApi.md#get_person_statistics) | **GET** /people/{id}/statistics |
+[**get_person_thumbnail**](PeopleApi.md#get_person_thumbnail) | **GET** /people/{id}/thumbnail |
+[**merge_person**](PeopleApi.md#merge_person) | **POST** /people/{id}/merge |
+[**reassign_faces**](PeopleApi.md#reassign_faces) | **PUT** /people/{id}/reassign |
+[**update_people**](PeopleApi.md#update_people) | **PUT** /people |
+[**update_person**](PeopleApi.md#update_person) | **PUT** /people/{id} |
+
+
+# **create_person**
+> PersonResponseDto create_person(person_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.person_create_dto import PersonCreateDto
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ person_create_dto = generated.immich.openapi_client.PersonCreateDto() # PersonCreateDto |
+
+ try:
+ api_response = api_instance.create_person(person_create_dto)
+ print("The response of PeopleApi->create_person:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->create_person: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **person_create_dto** | [**PersonCreateDto**](PersonCreateDto.md)| |
+
+### Return type
+
+[**PersonResponseDto**](PersonResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_people**
+> PeopleResponseDto get_all_people(closest_asset_id=closest_asset_id, closest_person_id=closest_person_id, page=page, size=size, with_hidden=with_hidden)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.people_response_dto import PeopleResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ closest_asset_id = 'closest_asset_id_example' # str | (optional)
+ closest_person_id = 'closest_person_id_example' # str | (optional)
+ page = 1 # float | Page number for pagination (optional) (default to 1)
+ size = 500 # float | Number of items per page (optional) (default to 500)
+ with_hidden = True # bool | (optional)
+
+ try:
+ api_response = api_instance.get_all_people(closest_asset_id=closest_asset_id, closest_person_id=closest_person_id, page=page, size=size, with_hidden=with_hidden)
+ print("The response of PeopleApi->get_all_people:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->get_all_people: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **closest_asset_id** | **str**| | [optional]
+ **closest_person_id** | **str**| | [optional]
+ **page** | **float**| Page number for pagination | [optional] [default to 1]
+ **size** | **float**| Number of items per page | [optional] [default to 500]
+ **with_hidden** | **bool**| | [optional]
+
+### Return type
+
+[**PeopleResponseDto**](PeopleResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_person**
+> PersonResponseDto get_person(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_person(id)
+ print("The response of PeopleApi->get_person:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->get_person: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**PersonResponseDto**](PersonResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_person_statistics**
+> PersonStatisticsResponseDto get_person_statistics(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.person_statistics_response_dto import PersonStatisticsResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_person_statistics(id)
+ print("The response of PeopleApi->get_person_statistics:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->get_person_statistics: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**PersonStatisticsResponseDto**](PersonStatisticsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_person_thumbnail**
+> bytearray get_person_thumbnail(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_person_thumbnail(id)
+ print("The response of PeopleApi->get_person_thumbnail:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->get_person_thumbnail: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/octet-stream
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **merge_person**
+> List[BulkIdResponseDto] merge_person(id, merge_person_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.bulk_id_response_dto import BulkIdResponseDto
+from generated.immich.openapi_client.models.merge_person_dto import MergePersonDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ id = 'id_example' # str |
+ merge_person_dto = generated.immich.openapi_client.MergePersonDto() # MergePersonDto |
+
+ try:
+ api_response = api_instance.merge_person(id, merge_person_dto)
+ print("The response of PeopleApi->merge_person:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->merge_person: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **merge_person_dto** | [**MergePersonDto**](MergePersonDto.md)| |
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **reassign_faces**
+> List[PersonResponseDto] reassign_faces(id, asset_face_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_face_update_dto import AssetFaceUpdateDto
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ id = 'id_example' # str |
+ asset_face_update_dto = generated.immich.openapi_client.AssetFaceUpdateDto() # AssetFaceUpdateDto |
+
+ try:
+ api_response = api_instance.reassign_faces(id, asset_face_update_dto)
+ print("The response of PeopleApi->reassign_faces:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->reassign_faces: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **asset_face_update_dto** | [**AssetFaceUpdateDto**](AssetFaceUpdateDto.md)| |
+
+### Return type
+
+[**List[PersonResponseDto]**](PersonResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_people**
+> List[BulkIdResponseDto] update_people(people_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.bulk_id_response_dto import BulkIdResponseDto
+from generated.immich.openapi_client.models.people_update_dto import PeopleUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ people_update_dto = generated.immich.openapi_client.PeopleUpdateDto() # PeopleUpdateDto |
+
+ try:
+ api_response = api_instance.update_people(people_update_dto)
+ print("The response of PeopleApi->update_people:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->update_people: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **people_update_dto** | [**PeopleUpdateDto**](PeopleUpdateDto.md)| |
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_person**
+> PersonResponseDto update_person(id, person_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.models.person_update_dto import PersonUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.PeopleApi(api_client)
+ id = 'id_example' # str |
+ person_update_dto = generated.immich.openapi_client.PersonUpdateDto() # PersonUpdateDto |
+
+ try:
+ api_response = api_instance.update_person(id, person_update_dto)
+ print("The response of PeopleApi->update_person:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling PeopleApi->update_person: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **person_update_dto** | [**PersonUpdateDto**](PersonUpdateDto.md)| |
+
+### Return type
+
+[**PersonResponseDto**](PersonResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/PeopleResponse.md b/generated/immich/openapi_client/docs/PeopleResponse.md
new file mode 100644
index 0000000..c49bf88
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PeopleResponse.md
@@ -0,0 +1,30 @@
+# PeopleResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [default to True]
+**sidebar_web** | **bool** | | [default to False]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.people_response import PeopleResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PeopleResponse from a JSON string
+people_response_instance = PeopleResponse.from_json(json)
+# print the JSON string representation of the object
+print(PeopleResponse.to_json())
+
+# convert the object into a dict
+people_response_dict = people_response_instance.to_dict()
+# create an instance of PeopleResponse from a dict
+people_response_from_dict = PeopleResponse.from_dict(people_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PeopleResponseDto.md b/generated/immich/openapi_client/docs/PeopleResponseDto.md
new file mode 100644
index 0000000..7df63dd
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PeopleResponseDto.md
@@ -0,0 +1,32 @@
+# PeopleResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**has_next_page** | **bool** | This property was added in v1.110.0 | [optional]
+**hidden** | **int** | |
+**people** | [**List[PersonResponseDto]**](PersonResponseDto.md) | |
+**total** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.people_response_dto import PeopleResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PeopleResponseDto from a JSON string
+people_response_dto_instance = PeopleResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(PeopleResponseDto.to_json())
+
+# convert the object into a dict
+people_response_dto_dict = people_response_dto_instance.to_dict()
+# create an instance of PeopleResponseDto from a dict
+people_response_dto_from_dict = PeopleResponseDto.from_dict(people_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PeopleUpdate.md b/generated/immich/openapi_client/docs/PeopleUpdate.md
new file mode 100644
index 0000000..c735bde
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PeopleUpdate.md
@@ -0,0 +1,30 @@
+# PeopleUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [optional]
+**sidebar_web** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.people_update import PeopleUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PeopleUpdate from a JSON string
+people_update_instance = PeopleUpdate.from_json(json)
+# print the JSON string representation of the object
+print(PeopleUpdate.to_json())
+
+# convert the object into a dict
+people_update_dict = people_update_instance.to_dict()
+# create an instance of PeopleUpdate from a dict
+people_update_from_dict = PeopleUpdate.from_dict(people_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PeopleUpdateDto.md b/generated/immich/openapi_client/docs/PeopleUpdateDto.md
new file mode 100644
index 0000000..81a7b28
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PeopleUpdateDto.md
@@ -0,0 +1,29 @@
+# PeopleUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**people** | [**List[PeopleUpdateItem]**](PeopleUpdateItem.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.people_update_dto import PeopleUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PeopleUpdateDto from a JSON string
+people_update_dto_instance = PeopleUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(PeopleUpdateDto.to_json())
+
+# convert the object into a dict
+people_update_dto_dict = people_update_dto_instance.to_dict()
+# create an instance of PeopleUpdateDto from a dict
+people_update_dto_from_dict = PeopleUpdateDto.from_dict(people_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PeopleUpdateItem.md b/generated/immich/openapi_client/docs/PeopleUpdateItem.md
new file mode 100644
index 0000000..e4077c8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PeopleUpdateItem.md
@@ -0,0 +1,35 @@
+# PeopleUpdateItem
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**birth_date** | **date** | Person date of birth. Note: the mobile app cannot currently set the birth date to null. | [optional]
+**color** | **str** | | [optional]
+**feature_face_asset_id** | **str** | Asset is used to get the feature face thumbnail. | [optional]
+**id** | **str** | Person id. |
+**is_favorite** | **bool** | | [optional]
+**is_hidden** | **bool** | Person visibility | [optional]
+**name** | **str** | Person name. | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.people_update_item import PeopleUpdateItem
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PeopleUpdateItem from a JSON string
+people_update_item_instance = PeopleUpdateItem.from_json(json)
+# print the JSON string representation of the object
+print(PeopleUpdateItem.to_json())
+
+# convert the object into a dict
+people_update_item_dict = people_update_item_instance.to_dict()
+# create an instance of PeopleUpdateItem from a dict
+people_update_item_from_dict = PeopleUpdateItem.from_dict(people_update_item_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/Permission.md b/generated/immich/openapi_client/docs/Permission.md
new file mode 100644
index 0000000..2a696aa
--- /dev/null
+++ b/generated/immich/openapi_client/docs/Permission.md
@@ -0,0 +1,164 @@
+# Permission
+
+
+## Enum
+
+* `ALL` (value: `'all'`)
+
+* `ACTIVITY_DOT_CREATE` (value: `'activity.create'`)
+
+* `ACTIVITY_DOT_READ` (value: `'activity.read'`)
+
+* `ACTIVITY_DOT_UPDATE` (value: `'activity.update'`)
+
+* `ACTIVITY_DOT_DELETE` (value: `'activity.delete'`)
+
+* `ACTIVITY_DOT_STATISTICS` (value: `'activity.statistics'`)
+
+* `API_KEY_DOT_CREATE` (value: `'apiKey.create'`)
+
+* `API_KEY_DOT_READ` (value: `'apiKey.read'`)
+
+* `API_KEY_DOT_UPDATE` (value: `'apiKey.update'`)
+
+* `API_KEY_DOT_DELETE` (value: `'apiKey.delete'`)
+
+* `ASSET_DOT_READ` (value: `'asset.read'`)
+
+* `ASSET_DOT_UPDATE` (value: `'asset.update'`)
+
+* `ASSET_DOT_DELETE` (value: `'asset.delete'`)
+
+* `ASSET_DOT_SHARE` (value: `'asset.share'`)
+
+* `ASSET_DOT_VIEW` (value: `'asset.view'`)
+
+* `ASSET_DOT_DOWNLOAD` (value: `'asset.download'`)
+
+* `ASSET_DOT_UPLOAD` (value: `'asset.upload'`)
+
+* `ALBUM_DOT_CREATE` (value: `'album.create'`)
+
+* `ALBUM_DOT_READ` (value: `'album.read'`)
+
+* `ALBUM_DOT_UPDATE` (value: `'album.update'`)
+
+* `ALBUM_DOT_DELETE` (value: `'album.delete'`)
+
+* `ALBUM_DOT_STATISTICS` (value: `'album.statistics'`)
+
+* `ALBUM_DOT_ADD_ASSET` (value: `'album.addAsset'`)
+
+* `ALBUM_DOT_REMOVE_ASSET` (value: `'album.removeAsset'`)
+
+* `ALBUM_DOT_SHARE` (value: `'album.share'`)
+
+* `ALBUM_DOT_DOWNLOAD` (value: `'album.download'`)
+
+* `AUTH_DEVICE_DOT_DELETE` (value: `'authDevice.delete'`)
+
+* `ARCHIVE_DOT_READ` (value: `'archive.read'`)
+
+* `FACE_DOT_CREATE` (value: `'face.create'`)
+
+* `FACE_DOT_READ` (value: `'face.read'`)
+
+* `FACE_DOT_UPDATE` (value: `'face.update'`)
+
+* `FACE_DOT_DELETE` (value: `'face.delete'`)
+
+* `LIBRARY_DOT_CREATE` (value: `'library.create'`)
+
+* `LIBRARY_DOT_READ` (value: `'library.read'`)
+
+* `LIBRARY_DOT_UPDATE` (value: `'library.update'`)
+
+* `LIBRARY_DOT_DELETE` (value: `'library.delete'`)
+
+* `LIBRARY_DOT_STATISTICS` (value: `'library.statistics'`)
+
+* `TIMELINE_DOT_READ` (value: `'timeline.read'`)
+
+* `TIMELINE_DOT_DOWNLOAD` (value: `'timeline.download'`)
+
+* `MEMORY_DOT_CREATE` (value: `'memory.create'`)
+
+* `MEMORY_DOT_READ` (value: `'memory.read'`)
+
+* `MEMORY_DOT_UPDATE` (value: `'memory.update'`)
+
+* `MEMORY_DOT_DELETE` (value: `'memory.delete'`)
+
+* `PARTNER_DOT_CREATE` (value: `'partner.create'`)
+
+* `PARTNER_DOT_READ` (value: `'partner.read'`)
+
+* `PARTNER_DOT_UPDATE` (value: `'partner.update'`)
+
+* `PARTNER_DOT_DELETE` (value: `'partner.delete'`)
+
+* `PERSON_DOT_CREATE` (value: `'person.create'`)
+
+* `PERSON_DOT_READ` (value: `'person.read'`)
+
+* `PERSON_DOT_UPDATE` (value: `'person.update'`)
+
+* `PERSON_DOT_DELETE` (value: `'person.delete'`)
+
+* `PERSON_DOT_STATISTICS` (value: `'person.statistics'`)
+
+* `PERSON_DOT_MERGE` (value: `'person.merge'`)
+
+* `PERSON_DOT_REASSIGN` (value: `'person.reassign'`)
+
+* `SESSION_DOT_READ` (value: `'session.read'`)
+
+* `SESSION_DOT_UPDATE` (value: `'session.update'`)
+
+* `SESSION_DOT_DELETE` (value: `'session.delete'`)
+
+* `SHARED_LINK_DOT_CREATE` (value: `'sharedLink.create'`)
+
+* `SHARED_LINK_DOT_READ` (value: `'sharedLink.read'`)
+
+* `SHARED_LINK_DOT_UPDATE` (value: `'sharedLink.update'`)
+
+* `SHARED_LINK_DOT_DELETE` (value: `'sharedLink.delete'`)
+
+* `STACK_DOT_CREATE` (value: `'stack.create'`)
+
+* `STACK_DOT_READ` (value: `'stack.read'`)
+
+* `STACK_DOT_UPDATE` (value: `'stack.update'`)
+
+* `STACK_DOT_DELETE` (value: `'stack.delete'`)
+
+* `SYSTEM_CONFIG_DOT_READ` (value: `'systemConfig.read'`)
+
+* `SYSTEM_CONFIG_DOT_UPDATE` (value: `'systemConfig.update'`)
+
+* `SYSTEM_METADATA_DOT_READ` (value: `'systemMetadata.read'`)
+
+* `SYSTEM_METADATA_DOT_UPDATE` (value: `'systemMetadata.update'`)
+
+* `TAG_DOT_CREATE` (value: `'tag.create'`)
+
+* `TAG_DOT_READ` (value: `'tag.read'`)
+
+* `TAG_DOT_UPDATE` (value: `'tag.update'`)
+
+* `TAG_DOT_DELETE` (value: `'tag.delete'`)
+
+* `TAG_DOT_ASSET` (value: `'tag.asset'`)
+
+* `ADMIN_DOT_USER_DOT_CREATE` (value: `'admin.user.create'`)
+
+* `ADMIN_DOT_USER_DOT_READ` (value: `'admin.user.read'`)
+
+* `ADMIN_DOT_USER_DOT_UPDATE` (value: `'admin.user.update'`)
+
+* `ADMIN_DOT_USER_DOT_DELETE` (value: `'admin.user.delete'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PersonCreateDto.md b/generated/immich/openapi_client/docs/PersonCreateDto.md
new file mode 100644
index 0000000..79de154
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PersonCreateDto.md
@@ -0,0 +1,33 @@
+# PersonCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**birth_date** | **date** | Person date of birth. Note: the mobile app cannot currently set the birth date to null. | [optional]
+**color** | **str** | | [optional]
+**is_favorite** | **bool** | | [optional]
+**is_hidden** | **bool** | Person visibility | [optional]
+**name** | **str** | Person name. | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.person_create_dto import PersonCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PersonCreateDto from a JSON string
+person_create_dto_instance = PersonCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(PersonCreateDto.to_json())
+
+# convert the object into a dict
+person_create_dto_dict = person_create_dto_instance.to_dict()
+# create an instance of PersonCreateDto from a dict
+person_create_dto_from_dict = PersonCreateDto.from_dict(person_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PersonResponseDto.md b/generated/immich/openapi_client/docs/PersonResponseDto.md
new file mode 100644
index 0000000..ff836a7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PersonResponseDto.md
@@ -0,0 +1,36 @@
+# PersonResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**birth_date** | **date** | |
+**color** | **str** | This property was added in v1.126.0 | [optional]
+**id** | **str** | |
+**is_favorite** | **bool** | This property was added in v1.126.0 | [optional]
+**is_hidden** | **bool** | |
+**name** | **str** | |
+**thumbnail_path** | **str** | |
+**updated_at** | **datetime** | This property was added in v1.107.0 | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PersonResponseDto from a JSON string
+person_response_dto_instance = PersonResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(PersonResponseDto.to_json())
+
+# convert the object into a dict
+person_response_dto_dict = person_response_dto_instance.to_dict()
+# create an instance of PersonResponseDto from a dict
+person_response_dto_from_dict = PersonResponseDto.from_dict(person_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PersonStatisticsResponseDto.md b/generated/immich/openapi_client/docs/PersonStatisticsResponseDto.md
new file mode 100644
index 0000000..b53f1f1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PersonStatisticsResponseDto.md
@@ -0,0 +1,29 @@
+# PersonStatisticsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.person_statistics_response_dto import PersonStatisticsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PersonStatisticsResponseDto from a JSON string
+person_statistics_response_dto_instance = PersonStatisticsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(PersonStatisticsResponseDto.to_json())
+
+# convert the object into a dict
+person_statistics_response_dto_dict = person_statistics_response_dto_instance.to_dict()
+# create an instance of PersonStatisticsResponseDto from a dict
+person_statistics_response_dto_from_dict = PersonStatisticsResponseDto.from_dict(person_statistics_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PersonUpdateDto.md b/generated/immich/openapi_client/docs/PersonUpdateDto.md
new file mode 100644
index 0000000..fed86c6
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PersonUpdateDto.md
@@ -0,0 +1,34 @@
+# PersonUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**birth_date** | **date** | Person date of birth. Note: the mobile app cannot currently set the birth date to null. | [optional]
+**color** | **str** | | [optional]
+**feature_face_asset_id** | **str** | Asset is used to get the feature face thumbnail. | [optional]
+**is_favorite** | **bool** | | [optional]
+**is_hidden** | **bool** | Person visibility | [optional]
+**name** | **str** | Person name. | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.person_update_dto import PersonUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PersonUpdateDto from a JSON string
+person_update_dto_instance = PersonUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(PersonUpdateDto.to_json())
+
+# convert the object into a dict
+person_update_dto_dict = person_update_dto_instance.to_dict()
+# create an instance of PersonUpdateDto from a dict
+person_update_dto_from_dict = PersonUpdateDto.from_dict(person_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PersonWithFacesResponseDto.md b/generated/immich/openapi_client/docs/PersonWithFacesResponseDto.md
new file mode 100644
index 0000000..59bcbdb
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PersonWithFacesResponseDto.md
@@ -0,0 +1,37 @@
+# PersonWithFacesResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**birth_date** | **date** | |
+**color** | **str** | This property was added in v1.126.0 | [optional]
+**faces** | [**List[AssetFaceWithoutPersonResponseDto]**](AssetFaceWithoutPersonResponseDto.md) | |
+**id** | **str** | |
+**is_favorite** | **bool** | This property was added in v1.126.0 | [optional]
+**is_hidden** | **bool** | |
+**name** | **str** | |
+**thumbnail_path** | **str** | |
+**updated_at** | **datetime** | This property was added in v1.107.0 | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.person_with_faces_response_dto import PersonWithFacesResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PersonWithFacesResponseDto from a JSON string
+person_with_faces_response_dto_instance = PersonWithFacesResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(PersonWithFacesResponseDto.to_json())
+
+# convert the object into a dict
+person_with_faces_response_dto_dict = person_with_faces_response_dto_instance.to_dict()
+# create an instance of PersonWithFacesResponseDto from a dict
+person_with_faces_response_dto_from_dict = PersonWithFacesResponseDto.from_dict(person_with_faces_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PlacesResponseDto.md b/generated/immich/openapi_client/docs/PlacesResponseDto.md
new file mode 100644
index 0000000..7e3eaeb
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PlacesResponseDto.md
@@ -0,0 +1,33 @@
+# PlacesResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**admin1name** | **str** | | [optional]
+**admin2name** | **str** | | [optional]
+**latitude** | **float** | |
+**longitude** | **float** | |
+**name** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.places_response_dto import PlacesResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PlacesResponseDto from a JSON string
+places_response_dto_instance = PlacesResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(PlacesResponseDto.to_json())
+
+# convert the object into a dict
+places_response_dto_dict = places_response_dto_instance.to_dict()
+# create an instance of PlacesResponseDto from a dict
+places_response_dto_from_dict = PlacesResponseDto.from_dict(places_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PurchaseResponse.md b/generated/immich/openapi_client/docs/PurchaseResponse.md
new file mode 100644
index 0000000..a73a09e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PurchaseResponse.md
@@ -0,0 +1,30 @@
+# PurchaseResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**hide_buy_button_until** | **str** | |
+**show_support_badge** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.purchase_response import PurchaseResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PurchaseResponse from a JSON string
+purchase_response_instance = PurchaseResponse.from_json(json)
+# print the JSON string representation of the object
+print(PurchaseResponse.to_json())
+
+# convert the object into a dict
+purchase_response_dict = purchase_response_instance.to_dict()
+# create an instance of PurchaseResponse from a dict
+purchase_response_from_dict = PurchaseResponse.from_dict(purchase_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/PurchaseUpdate.md b/generated/immich/openapi_client/docs/PurchaseUpdate.md
new file mode 100644
index 0000000..c000ff0
--- /dev/null
+++ b/generated/immich/openapi_client/docs/PurchaseUpdate.md
@@ -0,0 +1,30 @@
+# PurchaseUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**hide_buy_button_until** | **str** | | [optional]
+**show_support_badge** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.purchase_update import PurchaseUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PurchaseUpdate from a JSON string
+purchase_update_instance = PurchaseUpdate.from_json(json)
+# print the JSON string representation of the object
+print(PurchaseUpdate.to_json())
+
+# convert the object into a dict
+purchase_update_dict = purchase_update_instance.to_dict()
+# create an instance of PurchaseUpdate from a dict
+purchase_update_from_dict = PurchaseUpdate.from_dict(purchase_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/QueueStatusDto.md b/generated/immich/openapi_client/docs/QueueStatusDto.md
new file mode 100644
index 0000000..26e5a8a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/QueueStatusDto.md
@@ -0,0 +1,30 @@
+# QueueStatusDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**is_active** | **bool** | |
+**is_paused** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.queue_status_dto import QueueStatusDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of QueueStatusDto from a JSON string
+queue_status_dto_instance = QueueStatusDto.from_json(json)
+# print the JSON string representation of the object
+print(QueueStatusDto.to_json())
+
+# convert the object into a dict
+queue_status_dto_dict = queue_status_dto_instance.to_dict()
+# create an instance of QueueStatusDto from a dict
+queue_status_dto_from_dict = QueueStatusDto.from_dict(queue_status_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/RandomSearchDto.md b/generated/immich/openapi_client/docs/RandomSearchDto.md
new file mode 100644
index 0000000..221ae7a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/RandomSearchDto.md
@@ -0,0 +1,61 @@
+# RandomSearchDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**city** | **str** | | [optional]
+**country** | **str** | | [optional]
+**created_after** | **datetime** | | [optional]
+**created_before** | **datetime** | | [optional]
+**device_id** | **str** | | [optional]
+**is_archived** | **bool** | | [optional]
+**is_encoded** | **bool** | | [optional]
+**is_favorite** | **bool** | | [optional]
+**is_motion** | **bool** | | [optional]
+**is_not_in_album** | **bool** | | [optional]
+**is_offline** | **bool** | | [optional]
+**is_visible** | **bool** | | [optional]
+**lens_model** | **str** | | [optional]
+**library_id** | **str** | | [optional]
+**make** | **str** | | [optional]
+**model** | **str** | | [optional]
+**person_ids** | **List[str]** | | [optional]
+**rating** | **float** | | [optional]
+**size** | **float** | | [optional]
+**state** | **str** | | [optional]
+**tag_ids** | **List[str]** | | [optional]
+**taken_after** | **datetime** | | [optional]
+**taken_before** | **datetime** | | [optional]
+**trashed_after** | **datetime** | | [optional]
+**trashed_before** | **datetime** | | [optional]
+**type** | [**AssetTypeEnum**](AssetTypeEnum.md) | | [optional]
+**updated_after** | **datetime** | | [optional]
+**updated_before** | **datetime** | | [optional]
+**with_archived** | **bool** | | [optional] [default to False]
+**with_deleted** | **bool** | | [optional]
+**with_exif** | **bool** | | [optional]
+**with_people** | **bool** | | [optional]
+**with_stacked** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.random_search_dto import RandomSearchDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RandomSearchDto from a JSON string
+random_search_dto_instance = RandomSearchDto.from_json(json)
+# print the JSON string representation of the object
+print(RandomSearchDto.to_json())
+
+# convert the object into a dict
+random_search_dto_dict = random_search_dto_instance.to_dict()
+# create an instance of RandomSearchDto from a dict
+random_search_dto_from_dict = RandomSearchDto.from_dict(random_search_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/RatingsResponse.md b/generated/immich/openapi_client/docs/RatingsResponse.md
new file mode 100644
index 0000000..dad6bd1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/RatingsResponse.md
@@ -0,0 +1,29 @@
+# RatingsResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [default to False]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.ratings_response import RatingsResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RatingsResponse from a JSON string
+ratings_response_instance = RatingsResponse.from_json(json)
+# print the JSON string representation of the object
+print(RatingsResponse.to_json())
+
+# convert the object into a dict
+ratings_response_dict = ratings_response_instance.to_dict()
+# create an instance of RatingsResponse from a dict
+ratings_response_from_dict = RatingsResponse.from_dict(ratings_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/RatingsUpdate.md b/generated/immich/openapi_client/docs/RatingsUpdate.md
new file mode 100644
index 0000000..cd1bcbd
--- /dev/null
+++ b/generated/immich/openapi_client/docs/RatingsUpdate.md
@@ -0,0 +1,29 @@
+# RatingsUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.ratings_update import RatingsUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RatingsUpdate from a JSON string
+ratings_update_instance = RatingsUpdate.from_json(json)
+# print the JSON string representation of the object
+print(RatingsUpdate.to_json())
+
+# convert the object into a dict
+ratings_update_dict = ratings_update_instance.to_dict()
+# create an instance of RatingsUpdate from a dict
+ratings_update_from_dict = RatingsUpdate.from_dict(ratings_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ReactionLevel.md b/generated/immich/openapi_client/docs/ReactionLevel.md
new file mode 100644
index 0000000..0b13c38
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ReactionLevel.md
@@ -0,0 +1,12 @@
+# ReactionLevel
+
+
+## Enum
+
+* `ALBUM` (value: `'album'`)
+
+* `ASSET` (value: `'asset'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ReactionType.md b/generated/immich/openapi_client/docs/ReactionType.md
new file mode 100644
index 0000000..8c2397c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ReactionType.md
@@ -0,0 +1,12 @@
+# ReactionType
+
+
+## Enum
+
+* `COMMENT` (value: `'comment'`)
+
+* `LIKE` (value: `'like'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ReverseGeocodingStateResponseDto.md b/generated/immich/openapi_client/docs/ReverseGeocodingStateResponseDto.md
new file mode 100644
index 0000000..8e52554
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ReverseGeocodingStateResponseDto.md
@@ -0,0 +1,30 @@
+# ReverseGeocodingStateResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**last_import_file_name** | **str** | |
+**last_update** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.reverse_geocoding_state_response_dto import ReverseGeocodingStateResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ReverseGeocodingStateResponseDto from a JSON string
+reverse_geocoding_state_response_dto_instance = ReverseGeocodingStateResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ReverseGeocodingStateResponseDto.to_json())
+
+# convert the object into a dict
+reverse_geocoding_state_response_dto_dict = reverse_geocoding_state_response_dto_instance.to_dict()
+# create an instance of ReverseGeocodingStateResponseDto from a dict
+reverse_geocoding_state_response_dto_from_dict = ReverseGeocodingStateResponseDto.from_dict(reverse_geocoding_state_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchAlbumResponseDto.md b/generated/immich/openapi_client/docs/SearchAlbumResponseDto.md
new file mode 100644
index 0000000..d50c5d8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchAlbumResponseDto.md
@@ -0,0 +1,32 @@
+# SearchAlbumResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **int** | |
+**facets** | [**List[SearchFacetResponseDto]**](SearchFacetResponseDto.md) | |
+**items** | [**List[AlbumResponseDto]**](AlbumResponseDto.md) | |
+**total** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.search_album_response_dto import SearchAlbumResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SearchAlbumResponseDto from a JSON string
+search_album_response_dto_instance = SearchAlbumResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SearchAlbumResponseDto.to_json())
+
+# convert the object into a dict
+search_album_response_dto_dict = search_album_response_dto_instance.to_dict()
+# create an instance of SearchAlbumResponseDto from a dict
+search_album_response_dto_from_dict = SearchAlbumResponseDto.from_dict(search_album_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchApi.md b/generated/immich/openapi_client/docs/SearchApi.md
new file mode 100644
index 0000000..27f9595
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchApi.md
@@ -0,0 +1,719 @@
+# generated.immich.openapi_client.SearchApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_assets_by_city**](SearchApi.md#get_assets_by_city) | **GET** /search/cities |
+[**get_explore_data**](SearchApi.md#get_explore_data) | **GET** /search/explore |
+[**get_search_suggestions**](SearchApi.md#get_search_suggestions) | **GET** /search/suggestions |
+[**search_assets**](SearchApi.md#search_assets) | **POST** /search/metadata |
+[**search_person**](SearchApi.md#search_person) | **GET** /search/person |
+[**search_places**](SearchApi.md#search_places) | **GET** /search/places |
+[**search_random**](SearchApi.md#search_random) | **POST** /search/random |
+[**search_smart**](SearchApi.md#search_smart) | **POST** /search/smart |
+
+
+# **get_assets_by_city**
+> List[AssetResponseDto] get_assets_by_city()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+
+ try:
+ api_response = api_instance.get_assets_by_city()
+ print("The response of SearchApi->get_assets_by_city:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->get_assets_by_city: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[AssetResponseDto]**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_explore_data**
+> List[SearchExploreResponseDto] get_explore_data()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.search_explore_response_dto import SearchExploreResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+
+ try:
+ api_response = api_instance.get_explore_data()
+ print("The response of SearchApi->get_explore_data:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->get_explore_data: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[SearchExploreResponseDto]**](SearchExploreResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_search_suggestions**
+> List[str] get_search_suggestions(type, country=country, include_null=include_null, make=make, model=model, state=state)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.search_suggestion_type import SearchSuggestionType
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+ type = generated.immich.openapi_client.SearchSuggestionType() # SearchSuggestionType |
+ country = 'country_example' # str | (optional)
+ include_null = True # bool | This property was added in v111.0.0 (optional)
+ make = 'make_example' # str | (optional)
+ model = 'model_example' # str | (optional)
+ state = 'state_example' # str | (optional)
+
+ try:
+ api_response = api_instance.get_search_suggestions(type, country=country, include_null=include_null, make=make, model=model, state=state)
+ print("The response of SearchApi->get_search_suggestions:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->get_search_suggestions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **type** | [**SearchSuggestionType**](.md)| |
+ **country** | **str**| | [optional]
+ **include_null** | **bool**| This property was added in v111.0.0 | [optional]
+ **make** | **str**| | [optional]
+ **model** | **str**| | [optional]
+ **state** | **str**| | [optional]
+
+### Return type
+
+**List[str]**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_assets**
+> SearchResponseDto search_assets(metadata_search_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.metadata_search_dto import MetadataSearchDto
+from generated.immich.openapi_client.models.search_response_dto import SearchResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+ metadata_search_dto = generated.immich.openapi_client.MetadataSearchDto() # MetadataSearchDto |
+
+ try:
+ api_response = api_instance.search_assets(metadata_search_dto)
+ print("The response of SearchApi->search_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->search_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **metadata_search_dto** | [**MetadataSearchDto**](MetadataSearchDto.md)| |
+
+### Return type
+
+[**SearchResponseDto**](SearchResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_person**
+> List[PersonResponseDto] search_person(name, with_hidden=with_hidden)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+ name = 'name_example' # str |
+ with_hidden = True # bool | (optional)
+
+ try:
+ api_response = api_instance.search_person(name, with_hidden=with_hidden)
+ print("The response of SearchApi->search_person:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->search_person: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| |
+ **with_hidden** | **bool**| | [optional]
+
+### Return type
+
+[**List[PersonResponseDto]**](PersonResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_places**
+> List[PlacesResponseDto] search_places(name)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.places_response_dto import PlacesResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+ name = 'name_example' # str |
+
+ try:
+ api_response = api_instance.search_places(name)
+ print("The response of SearchApi->search_places:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->search_places: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| |
+
+### Return type
+
+[**List[PlacesResponseDto]**](PlacesResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_random**
+> List[AssetResponseDto] search_random(random_search_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.models.random_search_dto import RandomSearchDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+ random_search_dto = generated.immich.openapi_client.RandomSearchDto() # RandomSearchDto |
+
+ try:
+ api_response = api_instance.search_random(random_search_dto)
+ print("The response of SearchApi->search_random:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->search_random: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **random_search_dto** | [**RandomSearchDto**](RandomSearchDto.md)| |
+
+### Return type
+
+[**List[AssetResponseDto]**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_smart**
+> SearchResponseDto search_smart(smart_search_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.search_response_dto import SearchResponseDto
+from generated.immich.openapi_client.models.smart_search_dto import SmartSearchDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SearchApi(api_client)
+ smart_search_dto = generated.immich.openapi_client.SmartSearchDto() # SmartSearchDto |
+
+ try:
+ api_response = api_instance.search_smart(smart_search_dto)
+ print("The response of SearchApi->search_smart:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SearchApi->search_smart: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **smart_search_dto** | [**SmartSearchDto**](SmartSearchDto.md)| |
+
+### Return type
+
+[**SearchResponseDto**](SearchResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/SearchAssetResponseDto.md b/generated/immich/openapi_client/docs/SearchAssetResponseDto.md
new file mode 100644
index 0000000..5a907a1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchAssetResponseDto.md
@@ -0,0 +1,33 @@
+# SearchAssetResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **int** | |
+**facets** | [**List[SearchFacetResponseDto]**](SearchFacetResponseDto.md) | |
+**items** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+**next_page** | **str** | |
+**total** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.search_asset_response_dto import SearchAssetResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SearchAssetResponseDto from a JSON string
+search_asset_response_dto_instance = SearchAssetResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SearchAssetResponseDto.to_json())
+
+# convert the object into a dict
+search_asset_response_dto_dict = search_asset_response_dto_instance.to_dict()
+# create an instance of SearchAssetResponseDto from a dict
+search_asset_response_dto_from_dict = SearchAssetResponseDto.from_dict(search_asset_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchExploreItem.md b/generated/immich/openapi_client/docs/SearchExploreItem.md
new file mode 100644
index 0000000..d6ccbe9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchExploreItem.md
@@ -0,0 +1,30 @@
+# SearchExploreItem
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**AssetResponseDto**](AssetResponseDto.md) | |
+**value** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.search_explore_item import SearchExploreItem
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SearchExploreItem from a JSON string
+search_explore_item_instance = SearchExploreItem.from_json(json)
+# print the JSON string representation of the object
+print(SearchExploreItem.to_json())
+
+# convert the object into a dict
+search_explore_item_dict = search_explore_item_instance.to_dict()
+# create an instance of SearchExploreItem from a dict
+search_explore_item_from_dict = SearchExploreItem.from_dict(search_explore_item_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchExploreResponseDto.md b/generated/immich/openapi_client/docs/SearchExploreResponseDto.md
new file mode 100644
index 0000000..0728d82
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchExploreResponseDto.md
@@ -0,0 +1,30 @@
+# SearchExploreResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**field_name** | **str** | |
+**items** | [**List[SearchExploreItem]**](SearchExploreItem.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.search_explore_response_dto import SearchExploreResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SearchExploreResponseDto from a JSON string
+search_explore_response_dto_instance = SearchExploreResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SearchExploreResponseDto.to_json())
+
+# convert the object into a dict
+search_explore_response_dto_dict = search_explore_response_dto_instance.to_dict()
+# create an instance of SearchExploreResponseDto from a dict
+search_explore_response_dto_from_dict = SearchExploreResponseDto.from_dict(search_explore_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchFacetCountResponseDto.md b/generated/immich/openapi_client/docs/SearchFacetCountResponseDto.md
new file mode 100644
index 0000000..208dc31
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchFacetCountResponseDto.md
@@ -0,0 +1,30 @@
+# SearchFacetCountResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **int** | |
+**value** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.search_facet_count_response_dto import SearchFacetCountResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SearchFacetCountResponseDto from a JSON string
+search_facet_count_response_dto_instance = SearchFacetCountResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SearchFacetCountResponseDto.to_json())
+
+# convert the object into a dict
+search_facet_count_response_dto_dict = search_facet_count_response_dto_instance.to_dict()
+# create an instance of SearchFacetCountResponseDto from a dict
+search_facet_count_response_dto_from_dict = SearchFacetCountResponseDto.from_dict(search_facet_count_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchFacetResponseDto.md b/generated/immich/openapi_client/docs/SearchFacetResponseDto.md
new file mode 100644
index 0000000..dd6b75b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchFacetResponseDto.md
@@ -0,0 +1,30 @@
+# SearchFacetResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**counts** | [**List[SearchFacetCountResponseDto]**](SearchFacetCountResponseDto.md) | |
+**field_name** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.search_facet_response_dto import SearchFacetResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SearchFacetResponseDto from a JSON string
+search_facet_response_dto_instance = SearchFacetResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SearchFacetResponseDto.to_json())
+
+# convert the object into a dict
+search_facet_response_dto_dict = search_facet_response_dto_instance.to_dict()
+# create an instance of SearchFacetResponseDto from a dict
+search_facet_response_dto_from_dict = SearchFacetResponseDto.from_dict(search_facet_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchResponseDto.md b/generated/immich/openapi_client/docs/SearchResponseDto.md
new file mode 100644
index 0000000..58a79b7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchResponseDto.md
@@ -0,0 +1,30 @@
+# SearchResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**albums** | [**SearchAlbumResponseDto**](SearchAlbumResponseDto.md) | |
+**assets** | [**SearchAssetResponseDto**](SearchAssetResponseDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.search_response_dto import SearchResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SearchResponseDto from a JSON string
+search_response_dto_instance = SearchResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SearchResponseDto.to_json())
+
+# convert the object into a dict
+search_response_dto_dict = search_response_dto_instance.to_dict()
+# create an instance of SearchResponseDto from a dict
+search_response_dto_from_dict = SearchResponseDto.from_dict(search_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SearchSuggestionType.md b/generated/immich/openapi_client/docs/SearchSuggestionType.md
new file mode 100644
index 0000000..5495ffa
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SearchSuggestionType.md
@@ -0,0 +1,18 @@
+# SearchSuggestionType
+
+
+## Enum
+
+* `COUNTRY` (value: `'country'`)
+
+* `STATE` (value: `'state'`)
+
+* `CITY` (value: `'city'`)
+
+* `CAMERA_MINUS_MAKE` (value: `'camera-make'`)
+
+* `CAMERA_MINUS_MODEL` (value: `'camera-model'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerAboutResponseDto.md b/generated/immich/openapi_client/docs/ServerAboutResponseDto.md
new file mode 100644
index 0000000..b08f0a5
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerAboutResponseDto.md
@@ -0,0 +1,49 @@
+# ServerAboutResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**build** | **str** | | [optional]
+**build_image** | **str** | | [optional]
+**build_image_url** | **str** | | [optional]
+**build_url** | **str** | | [optional]
+**exiftool** | **str** | | [optional]
+**ffmpeg** | **str** | | [optional]
+**imagemagick** | **str** | | [optional]
+**libvips** | **str** | | [optional]
+**licensed** | **bool** | |
+**nodejs** | **str** | | [optional]
+**repository** | **str** | | [optional]
+**repository_url** | **str** | | [optional]
+**source_commit** | **str** | | [optional]
+**source_ref** | **str** | | [optional]
+**source_url** | **str** | | [optional]
+**third_party_bug_feature_url** | **str** | | [optional]
+**third_party_documentation_url** | **str** | | [optional]
+**third_party_source_url** | **str** | | [optional]
+**third_party_support_url** | **str** | | [optional]
+**version** | **str** | |
+**version_url** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_about_response_dto import ServerAboutResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerAboutResponseDto from a JSON string
+server_about_response_dto_instance = ServerAboutResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerAboutResponseDto.to_json())
+
+# convert the object into a dict
+server_about_response_dto_dict = server_about_response_dto_instance.to_dict()
+# create an instance of ServerAboutResponseDto from a dict
+server_about_response_dto_from_dict = ServerAboutResponseDto.from_dict(server_about_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerApi.md b/generated/immich/openapi_client/docs/ServerApi.md
new file mode 100644
index 0000000..ea34b5b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerApi.md
@@ -0,0 +1,935 @@
+# generated.immich.openapi_client.ServerApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**delete_server_license**](ServerApi.md#delete_server_license) | **DELETE** /server/license |
+[**get_about_info**](ServerApi.md#get_about_info) | **GET** /server/about |
+[**get_server_config**](ServerApi.md#get_server_config) | **GET** /server/config |
+[**get_server_features**](ServerApi.md#get_server_features) | **GET** /server/features |
+[**get_server_license**](ServerApi.md#get_server_license) | **GET** /server/license |
+[**get_server_statistics**](ServerApi.md#get_server_statistics) | **GET** /server/statistics |
+[**get_server_version**](ServerApi.md#get_server_version) | **GET** /server/version |
+[**get_storage**](ServerApi.md#get_storage) | **GET** /server/storage |
+[**get_supported_media_types**](ServerApi.md#get_supported_media_types) | **GET** /server/media-types |
+[**get_theme**](ServerApi.md#get_theme) | **GET** /server/theme |
+[**get_version_history**](ServerApi.md#get_version_history) | **GET** /server/version-history |
+[**ping_server**](ServerApi.md#ping_server) | **GET** /server/ping |
+[**set_server_license**](ServerApi.md#set_server_license) | **PUT** /server/license |
+
+
+# **delete_server_license**
+> delete_server_license()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_instance.delete_server_license()
+ except Exception as e:
+ print("Exception when calling ServerApi->delete_server_license: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_about_info**
+> ServerAboutResponseDto get_about_info()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_about_response_dto import ServerAboutResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_about_info()
+ print("The response of ServerApi->get_about_info:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_about_info: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerAboutResponseDto**](ServerAboutResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_server_config**
+> ServerConfigDto get_server_config()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_config_dto import ServerConfigDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_server_config()
+ print("The response of ServerApi->get_server_config:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_server_config: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerConfigDto**](ServerConfigDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_server_features**
+> ServerFeaturesDto get_server_features()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_features_dto import ServerFeaturesDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_server_features()
+ print("The response of ServerApi->get_server_features:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_server_features: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerFeaturesDto**](ServerFeaturesDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_server_license**
+> LicenseResponseDto get_server_license()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.license_response_dto import LicenseResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_server_license()
+ print("The response of ServerApi->get_server_license:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_server_license: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**LicenseResponseDto**](LicenseResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+**404** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_server_statistics**
+> ServerStatsResponseDto get_server_statistics()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_stats_response_dto import ServerStatsResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_server_statistics()
+ print("The response of ServerApi->get_server_statistics:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_server_statistics: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerStatsResponseDto**](ServerStatsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_server_version**
+> ServerVersionResponseDto get_server_version()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_version_response_dto import ServerVersionResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_server_version()
+ print("The response of ServerApi->get_server_version:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_server_version: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerVersionResponseDto**](ServerVersionResponseDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_storage**
+> ServerStorageResponseDto get_storage()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_storage_response_dto import ServerStorageResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_storage()
+ print("The response of ServerApi->get_storage:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_storage: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerStorageResponseDto**](ServerStorageResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_supported_media_types**
+> ServerMediaTypesResponseDto get_supported_media_types()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_media_types_response_dto import ServerMediaTypesResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_supported_media_types()
+ print("The response of ServerApi->get_supported_media_types:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_supported_media_types: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerMediaTypesResponseDto**](ServerMediaTypesResponseDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_theme**
+> ServerThemeDto get_theme()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_theme_dto import ServerThemeDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_theme()
+ print("The response of ServerApi->get_theme:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_theme: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerThemeDto**](ServerThemeDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_version_history**
+> List[ServerVersionHistoryResponseDto] get_version_history()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_version_history_response_dto import ServerVersionHistoryResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.get_version_history()
+ print("The response of ServerApi->get_version_history:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->get_version_history: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[ServerVersionHistoryResponseDto]**](ServerVersionHistoryResponseDto.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **ping_server**
+> ServerPingResponse ping_server()
+
+### Example
+
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.server_ping_response import ServerPingResponse
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+
+ try:
+ api_response = api_instance.ping_server()
+ print("The response of ServerApi->ping_server:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->ping_server: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ServerPingResponse**](ServerPingResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **set_server_license**
+> LicenseResponseDto set_server_license(license_key_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ServerApi(api_client)
+ license_key_dto = generated.immich.openapi_client.LicenseKeyDto() # LicenseKeyDto |
+
+ try:
+ api_response = api_instance.set_server_license(license_key_dto)
+ print("The response of ServerApi->set_server_license:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServerApi->set_server_license: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **license_key_dto** | [**LicenseKeyDto**](LicenseKeyDto.md)| |
+
+### Return type
+
+[**LicenseResponseDto**](LicenseResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/ServerConfigDto.md b/generated/immich/openapi_client/docs/ServerConfigDto.md
new file mode 100644
index 0000000..53fa037
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerConfigDto.md
@@ -0,0 +1,38 @@
+# ServerConfigDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**external_domain** | **str** | |
+**is_initialized** | **bool** | |
+**is_onboarded** | **bool** | |
+**login_page_message** | **str** | |
+**map_dark_style_url** | **str** | |
+**map_light_style_url** | **str** | |
+**oauth_button_text** | **str** | |
+**public_users** | **bool** | |
+**trash_days** | **int** | |
+**user_delete_delay** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_config_dto import ServerConfigDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerConfigDto from a JSON string
+server_config_dto_instance = ServerConfigDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerConfigDto.to_json())
+
+# convert the object into a dict
+server_config_dto_dict = server_config_dto_instance.to_dict()
+# create an instance of ServerConfigDto from a dict
+server_config_dto_from_dict = ServerConfigDto.from_dict(server_config_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerFeaturesDto.md b/generated/immich/openapi_client/docs/ServerFeaturesDto.md
new file mode 100644
index 0000000..dfbdffe
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerFeaturesDto.md
@@ -0,0 +1,42 @@
+# ServerFeaturesDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**config_file** | **bool** | |
+**duplicate_detection** | **bool** | |
+**email** | **bool** | |
+**facial_recognition** | **bool** | |
+**import_faces** | **bool** | |
+**map** | **bool** | |
+**oauth** | **bool** | |
+**oauth_auto_launch** | **bool** | |
+**password_login** | **bool** | |
+**reverse_geocoding** | **bool** | |
+**search** | **bool** | |
+**sidecar** | **bool** | |
+**smart_search** | **bool** | |
+**trash** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_features_dto import ServerFeaturesDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerFeaturesDto from a JSON string
+server_features_dto_instance = ServerFeaturesDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerFeaturesDto.to_json())
+
+# convert the object into a dict
+server_features_dto_dict = server_features_dto_instance.to_dict()
+# create an instance of ServerFeaturesDto from a dict
+server_features_dto_from_dict = ServerFeaturesDto.from_dict(server_features_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerMediaTypesResponseDto.md b/generated/immich/openapi_client/docs/ServerMediaTypesResponseDto.md
new file mode 100644
index 0000000..5fee9dc
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerMediaTypesResponseDto.md
@@ -0,0 +1,31 @@
+# ServerMediaTypesResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**image** | **List[str]** | |
+**sidecar** | **List[str]** | |
+**video** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_media_types_response_dto import ServerMediaTypesResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerMediaTypesResponseDto from a JSON string
+server_media_types_response_dto_instance = ServerMediaTypesResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerMediaTypesResponseDto.to_json())
+
+# convert the object into a dict
+server_media_types_response_dto_dict = server_media_types_response_dto_instance.to_dict()
+# create an instance of ServerMediaTypesResponseDto from a dict
+server_media_types_response_dto_from_dict = ServerMediaTypesResponseDto.from_dict(server_media_types_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerPingResponse.md b/generated/immich/openapi_client/docs/ServerPingResponse.md
new file mode 100644
index 0000000..272f3ac
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerPingResponse.md
@@ -0,0 +1,29 @@
+# ServerPingResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**res** | **str** | | [readonly]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_ping_response import ServerPingResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerPingResponse from a JSON string
+server_ping_response_instance = ServerPingResponse.from_json(json)
+# print the JSON string representation of the object
+print(ServerPingResponse.to_json())
+
+# convert the object into a dict
+server_ping_response_dict = server_ping_response_instance.to_dict()
+# create an instance of ServerPingResponse from a dict
+server_ping_response_from_dict = ServerPingResponse.from_dict(server_ping_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerStatsResponseDto.md b/generated/immich/openapi_client/docs/ServerStatsResponseDto.md
new file mode 100644
index 0000000..f48261e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerStatsResponseDto.md
@@ -0,0 +1,34 @@
+# ServerStatsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**photos** | **int** | | [default to 0]
+**usage** | **int** | | [default to 0]
+**usage_by_user** | [**List[UsageByUserDto]**](UsageByUserDto.md) | | [default to []]
+**usage_photos** | **int** | | [default to 0]
+**usage_videos** | **int** | | [default to 0]
+**videos** | **int** | | [default to 0]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_stats_response_dto import ServerStatsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerStatsResponseDto from a JSON string
+server_stats_response_dto_instance = ServerStatsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerStatsResponseDto.to_json())
+
+# convert the object into a dict
+server_stats_response_dto_dict = server_stats_response_dto_instance.to_dict()
+# create an instance of ServerStatsResponseDto from a dict
+server_stats_response_dto_from_dict = ServerStatsResponseDto.from_dict(server_stats_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerStorageResponseDto.md b/generated/immich/openapi_client/docs/ServerStorageResponseDto.md
new file mode 100644
index 0000000..011257e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerStorageResponseDto.md
@@ -0,0 +1,35 @@
+# ServerStorageResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**disk_available** | **str** | |
+**disk_available_raw** | **int** | |
+**disk_size** | **str** | |
+**disk_size_raw** | **int** | |
+**disk_usage_percentage** | **float** | |
+**disk_use** | **str** | |
+**disk_use_raw** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_storage_response_dto import ServerStorageResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerStorageResponseDto from a JSON string
+server_storage_response_dto_instance = ServerStorageResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerStorageResponseDto.to_json())
+
+# convert the object into a dict
+server_storage_response_dto_dict = server_storage_response_dto_instance.to_dict()
+# create an instance of ServerStorageResponseDto from a dict
+server_storage_response_dto_from_dict = ServerStorageResponseDto.from_dict(server_storage_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerThemeDto.md b/generated/immich/openapi_client/docs/ServerThemeDto.md
new file mode 100644
index 0000000..0067d2b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerThemeDto.md
@@ -0,0 +1,29 @@
+# ServerThemeDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**custom_css** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_theme_dto import ServerThemeDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerThemeDto from a JSON string
+server_theme_dto_instance = ServerThemeDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerThemeDto.to_json())
+
+# convert the object into a dict
+server_theme_dto_dict = server_theme_dto_instance.to_dict()
+# create an instance of ServerThemeDto from a dict
+server_theme_dto_from_dict = ServerThemeDto.from_dict(server_theme_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerVersionHistoryResponseDto.md b/generated/immich/openapi_client/docs/ServerVersionHistoryResponseDto.md
new file mode 100644
index 0000000..1c61da4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerVersionHistoryResponseDto.md
@@ -0,0 +1,31 @@
+# ServerVersionHistoryResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**created_at** | **datetime** | |
+**id** | **str** | |
+**version** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_version_history_response_dto import ServerVersionHistoryResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerVersionHistoryResponseDto from a JSON string
+server_version_history_response_dto_instance = ServerVersionHistoryResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerVersionHistoryResponseDto.to_json())
+
+# convert the object into a dict
+server_version_history_response_dto_dict = server_version_history_response_dto_instance.to_dict()
+# create an instance of ServerVersionHistoryResponseDto from a dict
+server_version_history_response_dto_from_dict = ServerVersionHistoryResponseDto.from_dict(server_version_history_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ServerVersionResponseDto.md b/generated/immich/openapi_client/docs/ServerVersionResponseDto.md
new file mode 100644
index 0000000..6a8d02f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ServerVersionResponseDto.md
@@ -0,0 +1,31 @@
+# ServerVersionResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**major** | **int** | |
+**minor** | **int** | |
+**patch** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.server_version_response_dto import ServerVersionResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServerVersionResponseDto from a JSON string
+server_version_response_dto_instance = ServerVersionResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ServerVersionResponseDto.to_json())
+
+# convert the object into a dict
+server_version_response_dto_dict = server_version_response_dto_instance.to_dict()
+# create an instance of ServerVersionResponseDto from a dict
+server_version_response_dto_from_dict = ServerVersionResponseDto.from_dict(server_version_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SessionResponseDto.md b/generated/immich/openapi_client/docs/SessionResponseDto.md
new file mode 100644
index 0000000..f48b9c7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SessionResponseDto.md
@@ -0,0 +1,34 @@
+# SessionResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**created_at** | **str** | |
+**current** | **bool** | |
+**device_os** | **str** | |
+**device_type** | **str** | |
+**id** | **str** | |
+**updated_at** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.session_response_dto import SessionResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SessionResponseDto from a JSON string
+session_response_dto_instance = SessionResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SessionResponseDto.to_json())
+
+# convert the object into a dict
+session_response_dto_dict = session_response_dto_instance.to_dict()
+# create an instance of SessionResponseDto from a dict
+session_response_dto_from_dict = SessionResponseDto.from_dict(session_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SessionsApi.md b/generated/immich/openapi_client/docs/SessionsApi.md
new file mode 100644
index 0000000..809d821
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SessionsApi.md
@@ -0,0 +1,258 @@
+# generated.immich.openapi_client.SessionsApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**delete_all_sessions**](SessionsApi.md#delete_all_sessions) | **DELETE** /sessions |
+[**delete_session**](SessionsApi.md#delete_session) | **DELETE** /sessions/{id} |
+[**get_sessions**](SessionsApi.md#get_sessions) | **GET** /sessions |
+
+
+# **delete_all_sessions**
+> delete_all_sessions()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SessionsApi(api_client)
+
+ try:
+ api_instance.delete_all_sessions()
+ except Exception as e:
+ print("Exception when calling SessionsApi->delete_all_sessions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_session**
+> delete_session(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SessionsApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_session(id)
+ except Exception as e:
+ print("Exception when calling SessionsApi->delete_session: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_sessions**
+> List[SessionResponseDto] get_sessions()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.session_response_dto import SessionResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SessionsApi(api_client)
+
+ try:
+ api_response = api_instance.get_sessions()
+ print("The response of SessionsApi->get_sessions:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SessionsApi->get_sessions: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[SessionResponseDto]**](SessionResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/SharedLinkCreateDto.md b/generated/immich/openapi_client/docs/SharedLinkCreateDto.md
new file mode 100644
index 0000000..b606401
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SharedLinkCreateDto.md
@@ -0,0 +1,37 @@
+# SharedLinkCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_id** | **str** | | [optional]
+**allow_download** | **bool** | | [optional] [default to True]
+**allow_upload** | **bool** | | [optional]
+**asset_ids** | **List[str]** | | [optional]
+**description** | **str** | | [optional]
+**expires_at** | **datetime** | | [optional]
+**password** | **str** | | [optional]
+**show_metadata** | **bool** | | [optional] [default to True]
+**type** | [**SharedLinkType**](SharedLinkType.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.shared_link_create_dto import SharedLinkCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SharedLinkCreateDto from a JSON string
+shared_link_create_dto_instance = SharedLinkCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(SharedLinkCreateDto.to_json())
+
+# convert the object into a dict
+shared_link_create_dto_dict = shared_link_create_dto_instance.to_dict()
+# create an instance of SharedLinkCreateDto from a dict
+shared_link_create_dto_from_dict = SharedLinkCreateDto.from_dict(shared_link_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SharedLinkEditDto.md b/generated/immich/openapi_client/docs/SharedLinkEditDto.md
new file mode 100644
index 0000000..282d27e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SharedLinkEditDto.md
@@ -0,0 +1,35 @@
+# SharedLinkEditDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**allow_download** | **bool** | | [optional]
+**allow_upload** | **bool** | | [optional]
+**change_expiry_time** | **bool** | Few clients cannot send null to set the expiryTime to never. Setting this flag and not sending expiryAt is considered as null instead. Clients that can send null values can ignore this. | [optional]
+**description** | **str** | | [optional]
+**expires_at** | **datetime** | | [optional]
+**password** | **str** | | [optional]
+**show_metadata** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.shared_link_edit_dto import SharedLinkEditDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SharedLinkEditDto from a JSON string
+shared_link_edit_dto_instance = SharedLinkEditDto.from_json(json)
+# print the JSON string representation of the object
+print(SharedLinkEditDto.to_json())
+
+# convert the object into a dict
+shared_link_edit_dto_dict = shared_link_edit_dto_instance.to_dict()
+# create an instance of SharedLinkEditDto from a dict
+shared_link_edit_dto_from_dict = SharedLinkEditDto.from_dict(shared_link_edit_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SharedLinkResponseDto.md b/generated/immich/openapi_client/docs/SharedLinkResponseDto.md
new file mode 100644
index 0000000..cb19b95
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SharedLinkResponseDto.md
@@ -0,0 +1,42 @@
+# SharedLinkResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album** | [**AlbumResponseDto**](AlbumResponseDto.md) | | [optional]
+**allow_download** | **bool** | |
+**allow_upload** | **bool** | |
+**assets** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+**created_at** | **datetime** | |
+**description** | **str** | |
+**expires_at** | **datetime** | |
+**id** | **str** | |
+**key** | **str** | |
+**password** | **str** | |
+**show_metadata** | **bool** | |
+**token** | **str** | | [optional]
+**type** | [**SharedLinkType**](SharedLinkType.md) | |
+**user_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SharedLinkResponseDto from a JSON string
+shared_link_response_dto_instance = SharedLinkResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(SharedLinkResponseDto.to_json())
+
+# convert the object into a dict
+shared_link_response_dto_dict = shared_link_response_dto_instance.to_dict()
+# create an instance of SharedLinkResponseDto from a dict
+shared_link_response_dto_from_dict = SharedLinkResponseDto.from_dict(shared_link_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SharedLinkType.md b/generated/immich/openapi_client/docs/SharedLinkType.md
new file mode 100644
index 0000000..42b8275
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SharedLinkType.md
@@ -0,0 +1,12 @@
+# SharedLinkType
+
+
+## Enum
+
+* `ALBUM` (value: `'ALBUM'`)
+
+* `INDIVIDUAL` (value: `'INDIVIDUAL'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SharedLinksApi.md b/generated/immich/openapi_client/docs/SharedLinksApi.md
new file mode 100644
index 0000000..24b02be
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SharedLinksApi.md
@@ -0,0 +1,727 @@
+# generated.immich.openapi_client.SharedLinksApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**add_shared_link_assets**](SharedLinksApi.md#add_shared_link_assets) | **PUT** /shared-links/{id}/assets |
+[**create_shared_link**](SharedLinksApi.md#create_shared_link) | **POST** /shared-links |
+[**get_all_shared_links**](SharedLinksApi.md#get_all_shared_links) | **GET** /shared-links |
+[**get_my_shared_link**](SharedLinksApi.md#get_my_shared_link) | **GET** /shared-links/me |
+[**get_shared_link_by_id**](SharedLinksApi.md#get_shared_link_by_id) | **GET** /shared-links/{id} |
+[**remove_shared_link**](SharedLinksApi.md#remove_shared_link) | **DELETE** /shared-links/{id} |
+[**remove_shared_link_assets**](SharedLinksApi.md#remove_shared_link_assets) | **DELETE** /shared-links/{id}/assets |
+[**update_shared_link**](SharedLinksApi.md#update_shared_link) | **PATCH** /shared-links/{id} |
+
+
+# **add_shared_link_assets**
+> List[AssetIdsResponseDto] add_shared_link_assets(id, asset_ids_dto, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ id = 'id_example' # str |
+ asset_ids_dto = generated.immich.openapi_client.AssetIdsDto() # AssetIdsDto |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.add_shared_link_assets(id, asset_ids_dto, key=key)
+ print("The response of SharedLinksApi->add_shared_link_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->add_shared_link_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **asset_ids_dto** | [**AssetIdsDto**](AssetIdsDto.md)| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+[**List[AssetIdsResponseDto]**](AssetIdsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_shared_link**
+> SharedLinkResponseDto create_shared_link(shared_link_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.shared_link_create_dto import SharedLinkCreateDto
+from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ shared_link_create_dto = generated.immich.openapi_client.SharedLinkCreateDto() # SharedLinkCreateDto |
+
+ try:
+ api_response = api_instance.create_shared_link(shared_link_create_dto)
+ print("The response of SharedLinksApi->create_shared_link:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->create_shared_link: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **shared_link_create_dto** | [**SharedLinkCreateDto**](SharedLinkCreateDto.md)| |
+
+### Return type
+
+[**SharedLinkResponseDto**](SharedLinkResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_shared_links**
+> List[SharedLinkResponseDto] get_all_shared_links(album_id=album_id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ album_id = 'album_id_example' # str | (optional)
+
+ try:
+ api_response = api_instance.get_all_shared_links(album_id=album_id)
+ print("The response of SharedLinksApi->get_all_shared_links:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->get_all_shared_links: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **album_id** | **str**| | [optional]
+
+### Return type
+
+[**List[SharedLinkResponseDto]**](SharedLinkResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_my_shared_link**
+> SharedLinkResponseDto get_my_shared_link(key=key, password=password, token=token)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ key = 'key_example' # str | (optional)
+ password = 'password' # str | (optional)
+ token = 'token_example' # str | (optional)
+
+ try:
+ api_response = api_instance.get_my_shared_link(key=key, password=password, token=token)
+ print("The response of SharedLinksApi->get_my_shared_link:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->get_my_shared_link: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **key** | **str**| | [optional]
+ **password** | **str**| | [optional]
+ **token** | **str**| | [optional]
+
+### Return type
+
+[**SharedLinkResponseDto**](SharedLinkResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_shared_link_by_id**
+> SharedLinkResponseDto get_shared_link_by_id(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_shared_link_by_id(id)
+ print("The response of SharedLinksApi->get_shared_link_by_id:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->get_shared_link_by_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**SharedLinkResponseDto**](SharedLinkResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **remove_shared_link**
+> remove_shared_link(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.remove_shared_link(id)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->remove_shared_link: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **remove_shared_link_assets**
+> List[AssetIdsResponseDto] remove_shared_link_assets(id, asset_ids_dto, key=key)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ id = 'id_example' # str |
+ asset_ids_dto = generated.immich.openapi_client.AssetIdsDto() # AssetIdsDto |
+ key = 'key_example' # str | (optional)
+
+ try:
+ api_response = api_instance.remove_shared_link_assets(id, asset_ids_dto, key=key)
+ print("The response of SharedLinksApi->remove_shared_link_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->remove_shared_link_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **asset_ids_dto** | [**AssetIdsDto**](AssetIdsDto.md)| |
+ **key** | **str**| | [optional]
+
+### Return type
+
+[**List[AssetIdsResponseDto]**](AssetIdsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_shared_link**
+> SharedLinkResponseDto update_shared_link(id, shared_link_edit_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.shared_link_edit_dto import SharedLinkEditDto
+from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SharedLinksApi(api_client)
+ id = 'id_example' # str |
+ shared_link_edit_dto = generated.immich.openapi_client.SharedLinkEditDto() # SharedLinkEditDto |
+
+ try:
+ api_response = api_instance.update_shared_link(id, shared_link_edit_dto)
+ print("The response of SharedLinksApi->update_shared_link:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SharedLinksApi->update_shared_link: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **shared_link_edit_dto** | [**SharedLinkEditDto**](SharedLinkEditDto.md)| |
+
+### Return type
+
+[**SharedLinkResponseDto**](SharedLinkResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/SharedLinksResponse.md b/generated/immich/openapi_client/docs/SharedLinksResponse.md
new file mode 100644
index 0000000..a259ba8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SharedLinksResponse.md
@@ -0,0 +1,30 @@
+# SharedLinksResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [default to True]
+**sidebar_web** | **bool** | | [default to False]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.shared_links_response import SharedLinksResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SharedLinksResponse from a JSON string
+shared_links_response_instance = SharedLinksResponse.from_json(json)
+# print the JSON string representation of the object
+print(SharedLinksResponse.to_json())
+
+# convert the object into a dict
+shared_links_response_dict = shared_links_response_instance.to_dict()
+# create an instance of SharedLinksResponse from a dict
+shared_links_response_from_dict = SharedLinksResponse.from_dict(shared_links_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SharedLinksUpdate.md b/generated/immich/openapi_client/docs/SharedLinksUpdate.md
new file mode 100644
index 0000000..b5a73f8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SharedLinksUpdate.md
@@ -0,0 +1,30 @@
+# SharedLinksUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [optional]
+**sidebar_web** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.shared_links_update import SharedLinksUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SharedLinksUpdate from a JSON string
+shared_links_update_instance = SharedLinksUpdate.from_json(json)
+# print the JSON string representation of the object
+print(SharedLinksUpdate.to_json())
+
+# convert the object into a dict
+shared_links_update_dict = shared_links_update_instance.to_dict()
+# create an instance of SharedLinksUpdate from a dict
+shared_links_update_from_dict = SharedLinksUpdate.from_dict(shared_links_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SignUpDto.md b/generated/immich/openapi_client/docs/SignUpDto.md
new file mode 100644
index 0000000..705eae4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SignUpDto.md
@@ -0,0 +1,31 @@
+# SignUpDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**email** | **str** | |
+**name** | **str** | |
+**password** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sign_up_dto import SignUpDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SignUpDto from a JSON string
+sign_up_dto_instance = SignUpDto.from_json(json)
+# print the JSON string representation of the object
+print(SignUpDto.to_json())
+
+# convert the object into a dict
+sign_up_dto_dict = sign_up_dto_instance.to_dict()
+# create an instance of SignUpDto from a dict
+sign_up_dto_from_dict = SignUpDto.from_dict(sign_up_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SmartSearchDto.md b/generated/immich/openapi_client/docs/SmartSearchDto.md
new file mode 100644
index 0000000..49067e6
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SmartSearchDto.md
@@ -0,0 +1,62 @@
+# SmartSearchDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**city** | **str** | | [optional]
+**country** | **str** | | [optional]
+**created_after** | **datetime** | | [optional]
+**created_before** | **datetime** | | [optional]
+**device_id** | **str** | | [optional]
+**is_archived** | **bool** | | [optional]
+**is_encoded** | **bool** | | [optional]
+**is_favorite** | **bool** | | [optional]
+**is_motion** | **bool** | | [optional]
+**is_not_in_album** | **bool** | | [optional]
+**is_offline** | **bool** | | [optional]
+**is_visible** | **bool** | | [optional]
+**language** | **str** | | [optional]
+**lens_model** | **str** | | [optional]
+**library_id** | **str** | | [optional]
+**make** | **str** | | [optional]
+**model** | **str** | | [optional]
+**page** | **float** | | [optional]
+**person_ids** | **List[str]** | | [optional]
+**query** | **str** | |
+**rating** | **float** | | [optional]
+**size** | **float** | | [optional]
+**state** | **str** | | [optional]
+**tag_ids** | **List[str]** | | [optional]
+**taken_after** | **datetime** | | [optional]
+**taken_before** | **datetime** | | [optional]
+**trashed_after** | **datetime** | | [optional]
+**trashed_before** | **datetime** | | [optional]
+**type** | [**AssetTypeEnum**](AssetTypeEnum.md) | | [optional]
+**updated_after** | **datetime** | | [optional]
+**updated_before** | **datetime** | | [optional]
+**with_archived** | **bool** | | [optional] [default to False]
+**with_deleted** | **bool** | | [optional]
+**with_exif** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.smart_search_dto import SmartSearchDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SmartSearchDto from a JSON string
+smart_search_dto_instance = SmartSearchDto.from_json(json)
+# print the JSON string representation of the object
+print(SmartSearchDto.to_json())
+
+# convert the object into a dict
+smart_search_dto_dict = smart_search_dto_instance.to_dict()
+# create an instance of SmartSearchDto from a dict
+smart_search_dto_from_dict = SmartSearchDto.from_dict(smart_search_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SourceType.md b/generated/immich/openapi_client/docs/SourceType.md
new file mode 100644
index 0000000..8bc137c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SourceType.md
@@ -0,0 +1,14 @@
+# SourceType
+
+
+## Enum
+
+* `MACHINE_MINUS_LEARNING` (value: `'machine-learning'`)
+
+* `EXIF` (value: `'exif'`)
+
+* `MANUAL` (value: `'manual'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/StackCreateDto.md b/generated/immich/openapi_client/docs/StackCreateDto.md
new file mode 100644
index 0000000..6b4a376
--- /dev/null
+++ b/generated/immich/openapi_client/docs/StackCreateDto.md
@@ -0,0 +1,29 @@
+# StackCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_ids** | **List[str]** | first asset becomes the primary |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.stack_create_dto import StackCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of StackCreateDto from a JSON string
+stack_create_dto_instance = StackCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(StackCreateDto.to_json())
+
+# convert the object into a dict
+stack_create_dto_dict = stack_create_dto_instance.to_dict()
+# create an instance of StackCreateDto from a dict
+stack_create_dto_from_dict = StackCreateDto.from_dict(stack_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/StackResponseDto.md b/generated/immich/openapi_client/docs/StackResponseDto.md
new file mode 100644
index 0000000..47c0fe7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/StackResponseDto.md
@@ -0,0 +1,31 @@
+# StackResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | [**List[AssetResponseDto]**](AssetResponseDto.md) | |
+**id** | **str** | |
+**primary_asset_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.stack_response_dto import StackResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of StackResponseDto from a JSON string
+stack_response_dto_instance = StackResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(StackResponseDto.to_json())
+
+# convert the object into a dict
+stack_response_dto_dict = stack_response_dto_instance.to_dict()
+# create an instance of StackResponseDto from a dict
+stack_response_dto_from_dict = StackResponseDto.from_dict(stack_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/StackUpdateDto.md b/generated/immich/openapi_client/docs/StackUpdateDto.md
new file mode 100644
index 0000000..3b879a4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/StackUpdateDto.md
@@ -0,0 +1,29 @@
+# StackUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**primary_asset_id** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.stack_update_dto import StackUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of StackUpdateDto from a JSON string
+stack_update_dto_instance = StackUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(StackUpdateDto.to_json())
+
+# convert the object into a dict
+stack_update_dto_dict = stack_update_dto_instance.to_dict()
+# create an instance of StackUpdateDto from a dict
+stack_update_dto_from_dict = StackUpdateDto.from_dict(stack_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/StacksApi.md b/generated/immich/openapi_client/docs/StacksApi.md
new file mode 100644
index 0000000..d51f2f7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/StacksApi.md
@@ -0,0 +1,535 @@
+# generated.immich.openapi_client.StacksApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_stack**](StacksApi.md#create_stack) | **POST** /stacks |
+[**delete_stack**](StacksApi.md#delete_stack) | **DELETE** /stacks/{id} |
+[**delete_stacks**](StacksApi.md#delete_stacks) | **DELETE** /stacks |
+[**get_stack**](StacksApi.md#get_stack) | **GET** /stacks/{id} |
+[**search_stacks**](StacksApi.md#search_stacks) | **GET** /stacks |
+[**update_stack**](StacksApi.md#update_stack) | **PUT** /stacks/{id} |
+
+
+# **create_stack**
+> StackResponseDto create_stack(stack_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.StacksApi(api_client)
+ stack_create_dto = generated.immich.openapi_client.StackCreateDto() # StackCreateDto |
+
+ try:
+ api_response = api_instance.create_stack(stack_create_dto)
+ print("The response of StacksApi->create_stack:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling StacksApi->create_stack: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **stack_create_dto** | [**StackCreateDto**](StackCreateDto.md)| |
+
+### Return type
+
+[**StackResponseDto**](StackResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_stack**
+> delete_stack(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.StacksApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_stack(id)
+ except Exception as e:
+ print("Exception when calling StacksApi->delete_stack: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_stacks**
+> delete_stacks(bulk_ids_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.bulk_ids_dto import BulkIdsDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.StacksApi(api_client)
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+
+ try:
+ api_instance.delete_stacks(bulk_ids_dto)
+ except Exception as e:
+ print("Exception when calling StacksApi->delete_stacks: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_stack**
+> StackResponseDto get_stack(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.stack_response_dto import StackResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.StacksApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_stack(id)
+ print("The response of StacksApi->get_stack:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling StacksApi->get_stack: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**StackResponseDto**](StackResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_stacks**
+> List[StackResponseDto] search_stacks(primary_asset_id=primary_asset_id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.stack_response_dto import StackResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.StacksApi(api_client)
+ primary_asset_id = 'primary_asset_id_example' # str | (optional)
+
+ try:
+ api_response = api_instance.search_stacks(primary_asset_id=primary_asset_id)
+ print("The response of StacksApi->search_stacks:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling StacksApi->search_stacks: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **primary_asset_id** | **str**| | [optional]
+
+### Return type
+
+[**List[StackResponseDto]**](StackResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_stack**
+> StackResponseDto update_stack(id, stack_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.StacksApi(api_client)
+ id = 'id_example' # str |
+ stack_update_dto = generated.immich.openapi_client.StackUpdateDto() # StackUpdateDto |
+
+ try:
+ api_response = api_instance.update_stack(id, stack_update_dto)
+ print("The response of StacksApi->update_stack:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling StacksApi->update_stack: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **stack_update_dto** | [**StackUpdateDto**](StackUpdateDto.md)| |
+
+### Return type
+
+[**StackResponseDto**](StackResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/SyncAckDeleteDto.md b/generated/immich/openapi_client/docs/SyncAckDeleteDto.md
new file mode 100644
index 0000000..a795b58
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncAckDeleteDto.md
@@ -0,0 +1,29 @@
+# SyncAckDeleteDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**types** | [**List[SyncEntityType]**](SyncEntityType.md) | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_ack_delete_dto import SyncAckDeleteDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncAckDeleteDto from a JSON string
+sync_ack_delete_dto_instance = SyncAckDeleteDto.from_json(json)
+# print the JSON string representation of the object
+print(SyncAckDeleteDto.to_json())
+
+# convert the object into a dict
+sync_ack_delete_dto_dict = sync_ack_delete_dto_instance.to_dict()
+# create an instance of SyncAckDeleteDto from a dict
+sync_ack_delete_dto_from_dict = SyncAckDeleteDto.from_dict(sync_ack_delete_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncAckDto.md b/generated/immich/openapi_client/docs/SyncAckDto.md
new file mode 100644
index 0000000..358f1b9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncAckDto.md
@@ -0,0 +1,30 @@
+# SyncAckDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ack** | **str** | |
+**type** | [**SyncEntityType**](SyncEntityType.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_ack_dto import SyncAckDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncAckDto from a JSON string
+sync_ack_dto_instance = SyncAckDto.from_json(json)
+# print the JSON string representation of the object
+print(SyncAckDto.to_json())
+
+# convert the object into a dict
+sync_ack_dto_dict = sync_ack_dto_instance.to_dict()
+# create an instance of SyncAckDto from a dict
+sync_ack_dto_from_dict = SyncAckDto.from_dict(sync_ack_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncAckSetDto.md b/generated/immich/openapi_client/docs/SyncAckSetDto.md
new file mode 100644
index 0000000..f76fd9b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncAckSetDto.md
@@ -0,0 +1,29 @@
+# SyncAckSetDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**acks** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_ack_set_dto import SyncAckSetDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncAckSetDto from a JSON string
+sync_ack_set_dto_instance = SyncAckSetDto.from_json(json)
+# print the JSON string representation of the object
+print(SyncAckSetDto.to_json())
+
+# convert the object into a dict
+sync_ack_set_dto_dict = sync_ack_set_dto_instance.to_dict()
+# create an instance of SyncAckSetDto from a dict
+sync_ack_set_dto_from_dict = SyncAckSetDto.from_dict(sync_ack_set_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncApi.md b/generated/immich/openapi_client/docs/SyncApi.md
new file mode 100644
index 0000000..ac916fa
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncApi.md
@@ -0,0 +1,528 @@
+# generated.immich.openapi_client.SyncApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**delete_sync_ack**](SyncApi.md#delete_sync_ack) | **DELETE** /sync/ack |
+[**get_delta_sync**](SyncApi.md#get_delta_sync) | **POST** /sync/delta-sync |
+[**get_full_sync_for_user**](SyncApi.md#get_full_sync_for_user) | **POST** /sync/full-sync |
+[**get_sync_ack**](SyncApi.md#get_sync_ack) | **GET** /sync/ack |
+[**get_sync_stream**](SyncApi.md#get_sync_stream) | **POST** /sync/stream |
+[**send_sync_ack**](SyncApi.md#send_sync_ack) | **POST** /sync/ack |
+
+
+# **delete_sync_ack**
+> delete_sync_ack(sync_ack_delete_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.sync_ack_delete_dto import SyncAckDeleteDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SyncApi(api_client)
+ sync_ack_delete_dto = generated.immich.openapi_client.SyncAckDeleteDto() # SyncAckDeleteDto |
+
+ try:
+ api_instance.delete_sync_ack(sync_ack_delete_dto)
+ except Exception as e:
+ print("Exception when calling SyncApi->delete_sync_ack: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **sync_ack_delete_dto** | [**SyncAckDeleteDto**](SyncAckDeleteDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_delta_sync**
+> AssetDeltaSyncResponseDto get_delta_sync(asset_delta_sync_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SyncApi(api_client)
+ asset_delta_sync_dto = generated.immich.openapi_client.AssetDeltaSyncDto() # AssetDeltaSyncDto |
+
+ try:
+ api_response = api_instance.get_delta_sync(asset_delta_sync_dto)
+ print("The response of SyncApi->get_delta_sync:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SyncApi->get_delta_sync: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_delta_sync_dto** | [**AssetDeltaSyncDto**](AssetDeltaSyncDto.md)| |
+
+### Return type
+
+[**AssetDeltaSyncResponseDto**](AssetDeltaSyncResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_full_sync_for_user**
+> List[AssetResponseDto] get_full_sync_for_user(asset_full_sync_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_full_sync_dto import AssetFullSyncDto
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SyncApi(api_client)
+ asset_full_sync_dto = generated.immich.openapi_client.AssetFullSyncDto() # AssetFullSyncDto |
+
+ try:
+ api_response = api_instance.get_full_sync_for_user(asset_full_sync_dto)
+ print("The response of SyncApi->get_full_sync_for_user:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SyncApi->get_full_sync_for_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **asset_full_sync_dto** | [**AssetFullSyncDto**](AssetFullSyncDto.md)| |
+
+### Return type
+
+[**List[AssetResponseDto]**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_sync_ack**
+> List[SyncAckDto] get_sync_ack()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.sync_ack_dto import SyncAckDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SyncApi(api_client)
+
+ try:
+ api_response = api_instance.get_sync_ack()
+ print("The response of SyncApi->get_sync_ack:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SyncApi->get_sync_ack: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[SyncAckDto]**](SyncAckDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_sync_stream**
+> get_sync_stream(sync_stream_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.sync_stream_dto import SyncStreamDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SyncApi(api_client)
+ sync_stream_dto = generated.immich.openapi_client.SyncStreamDto() # SyncStreamDto |
+
+ try:
+ api_instance.get_sync_stream(sync_stream_dto)
+ except Exception as e:
+ print("Exception when calling SyncApi->get_sync_stream: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **sync_stream_dto** | [**SyncStreamDto**](SyncStreamDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **send_sync_ack**
+> send_sync_ack(sync_ack_set_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.sync_ack_set_dto import SyncAckSetDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SyncApi(api_client)
+ sync_ack_set_dto = generated.immich.openapi_client.SyncAckSetDto() # SyncAckSetDto |
+
+ try:
+ api_instance.send_sync_ack(sync_ack_set_dto)
+ except Exception as e:
+ print("Exception when calling SyncApi->send_sync_ack: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **sync_ack_set_dto** | [**SyncAckSetDto**](SyncAckSetDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/SyncAssetDeleteV1.md b/generated/immich/openapi_client/docs/SyncAssetDeleteV1.md
new file mode 100644
index 0000000..ce86246
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncAssetDeleteV1.md
@@ -0,0 +1,29 @@
+# SyncAssetDeleteV1
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_asset_delete_v1 import SyncAssetDeleteV1
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncAssetDeleteV1 from a JSON string
+sync_asset_delete_v1_instance = SyncAssetDeleteV1.from_json(json)
+# print the JSON string representation of the object
+print(SyncAssetDeleteV1.to_json())
+
+# convert the object into a dict
+sync_asset_delete_v1_dict = sync_asset_delete_v1_instance.to_dict()
+# create an instance of SyncAssetDeleteV1 from a dict
+sync_asset_delete_v1_from_dict = SyncAssetDeleteV1.from_dict(sync_asset_delete_v1_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncAssetExifV1.md b/generated/immich/openapi_client/docs/SyncAssetExifV1.md
new file mode 100644
index 0000000..3050d58
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncAssetExifV1.md
@@ -0,0 +1,53 @@
+# SyncAssetExifV1
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_id** | **str** | |
+**city** | **str** | |
+**country** | **str** | |
+**date_time_original** | **datetime** | |
+**description** | **str** | |
+**exif_image_height** | **int** | |
+**exif_image_width** | **int** | |
+**exposure_time** | **str** | |
+**f_number** | **int** | |
+**file_size_in_byte** | **int** | |
+**focal_length** | **int** | |
+**fps** | **int** | |
+**iso** | **int** | |
+**latitude** | **int** | |
+**lens_model** | **str** | |
+**longitude** | **int** | |
+**make** | **str** | |
+**model** | **str** | |
+**modify_date** | **datetime** | |
+**orientation** | **str** | |
+**profile_description** | **str** | |
+**projection_type** | **str** | |
+**rating** | **int** | |
+**state** | **str** | |
+**time_zone** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_asset_exif_v1 import SyncAssetExifV1
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncAssetExifV1 from a JSON string
+sync_asset_exif_v1_instance = SyncAssetExifV1.from_json(json)
+# print the JSON string representation of the object
+print(SyncAssetExifV1.to_json())
+
+# convert the object into a dict
+sync_asset_exif_v1_dict = sync_asset_exif_v1_instance.to_dict()
+# create an instance of SyncAssetExifV1 from a dict
+sync_asset_exif_v1_from_dict = SyncAssetExifV1.from_dict(sync_asset_exif_v1_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncAssetV1.md b/generated/immich/openapi_client/docs/SyncAssetV1.md
new file mode 100644
index 0000000..1808f5f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncAssetV1.md
@@ -0,0 +1,39 @@
+# SyncAssetV1
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**checksum** | **str** | |
+**deleted_at** | **datetime** | |
+**file_created_at** | **datetime** | |
+**file_modified_at** | **datetime** | |
+**id** | **str** | |
+**is_favorite** | **bool** | |
+**is_visible** | **bool** | |
+**local_date_time** | **datetime** | |
+**owner_id** | **str** | |
+**thumbhash** | **str** | |
+**type** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_asset_v1 import SyncAssetV1
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncAssetV1 from a JSON string
+sync_asset_v1_instance = SyncAssetV1.from_json(json)
+# print the JSON string representation of the object
+print(SyncAssetV1.to_json())
+
+# convert the object into a dict
+sync_asset_v1_dict = sync_asset_v1_instance.to_dict()
+# create an instance of SyncAssetV1 from a dict
+sync_asset_v1_from_dict = SyncAssetV1.from_dict(sync_asset_v1_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncEntityType.md b/generated/immich/openapi_client/docs/SyncEntityType.md
new file mode 100644
index 0000000..88144ad
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncEntityType.md
@@ -0,0 +1,28 @@
+# SyncEntityType
+
+
+## Enum
+
+* `USERV1` (value: `'UserV1'`)
+
+* `USERDELETEV1` (value: `'UserDeleteV1'`)
+
+* `PARTNERV1` (value: `'PartnerV1'`)
+
+* `PARTNERDELETEV1` (value: `'PartnerDeleteV1'`)
+
+* `ASSETV1` (value: `'AssetV1'`)
+
+* `ASSETDELETEV1` (value: `'AssetDeleteV1'`)
+
+* `ASSETEXIFV1` (value: `'AssetExifV1'`)
+
+* `PARTNERASSETV1` (value: `'PartnerAssetV1'`)
+
+* `PARTNERASSETDELETEV1` (value: `'PartnerAssetDeleteV1'`)
+
+* `PARTNERASSETEXIFV1` (value: `'PartnerAssetExifV1'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncPartnerDeleteV1.md b/generated/immich/openapi_client/docs/SyncPartnerDeleteV1.md
new file mode 100644
index 0000000..e265e62
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncPartnerDeleteV1.md
@@ -0,0 +1,30 @@
+# SyncPartnerDeleteV1
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**shared_by_id** | **str** | |
+**shared_with_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_partner_delete_v1 import SyncPartnerDeleteV1
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncPartnerDeleteV1 from a JSON string
+sync_partner_delete_v1_instance = SyncPartnerDeleteV1.from_json(json)
+# print the JSON string representation of the object
+print(SyncPartnerDeleteV1.to_json())
+
+# convert the object into a dict
+sync_partner_delete_v1_dict = sync_partner_delete_v1_instance.to_dict()
+# create an instance of SyncPartnerDeleteV1 from a dict
+sync_partner_delete_v1_from_dict = SyncPartnerDeleteV1.from_dict(sync_partner_delete_v1_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncPartnerV1.md b/generated/immich/openapi_client/docs/SyncPartnerV1.md
new file mode 100644
index 0000000..bd4742f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncPartnerV1.md
@@ -0,0 +1,31 @@
+# SyncPartnerV1
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**in_timeline** | **bool** | |
+**shared_by_id** | **str** | |
+**shared_with_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_partner_v1 import SyncPartnerV1
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncPartnerV1 from a JSON string
+sync_partner_v1_instance = SyncPartnerV1.from_json(json)
+# print the JSON string representation of the object
+print(SyncPartnerV1.to_json())
+
+# convert the object into a dict
+sync_partner_v1_dict = sync_partner_v1_instance.to_dict()
+# create an instance of SyncPartnerV1 from a dict
+sync_partner_v1_from_dict = SyncPartnerV1.from_dict(sync_partner_v1_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncRequestType.md b/generated/immich/openapi_client/docs/SyncRequestType.md
new file mode 100644
index 0000000..3fde238
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncRequestType.md
@@ -0,0 +1,20 @@
+# SyncRequestType
+
+
+## Enum
+
+* `USERSV1` (value: `'UsersV1'`)
+
+* `PARTNERSV1` (value: `'PartnersV1'`)
+
+* `ASSETSV1` (value: `'AssetsV1'`)
+
+* `ASSETEXIFSV1` (value: `'AssetExifsV1'`)
+
+* `PARTNERASSETSV1` (value: `'PartnerAssetsV1'`)
+
+* `PARTNERASSETEXIFSV1` (value: `'PartnerAssetExifsV1'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncStreamDto.md b/generated/immich/openapi_client/docs/SyncStreamDto.md
new file mode 100644
index 0000000..867636c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncStreamDto.md
@@ -0,0 +1,29 @@
+# SyncStreamDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**types** | [**List[SyncRequestType]**](SyncRequestType.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_stream_dto import SyncStreamDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncStreamDto from a JSON string
+sync_stream_dto_instance = SyncStreamDto.from_json(json)
+# print the JSON string representation of the object
+print(SyncStreamDto.to_json())
+
+# convert the object into a dict
+sync_stream_dto_dict = sync_stream_dto_instance.to_dict()
+# create an instance of SyncStreamDto from a dict
+sync_stream_dto_from_dict = SyncStreamDto.from_dict(sync_stream_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncUserDeleteV1.md b/generated/immich/openapi_client/docs/SyncUserDeleteV1.md
new file mode 100644
index 0000000..71d3980
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncUserDeleteV1.md
@@ -0,0 +1,29 @@
+# SyncUserDeleteV1
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**user_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_user_delete_v1 import SyncUserDeleteV1
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncUserDeleteV1 from a JSON string
+sync_user_delete_v1_instance = SyncUserDeleteV1.from_json(json)
+# print the JSON string representation of the object
+print(SyncUserDeleteV1.to_json())
+
+# convert the object into a dict
+sync_user_delete_v1_dict = sync_user_delete_v1_instance.to_dict()
+# create an instance of SyncUserDeleteV1 from a dict
+sync_user_delete_v1_from_dict = SyncUserDeleteV1.from_dict(sync_user_delete_v1_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SyncUserV1.md b/generated/immich/openapi_client/docs/SyncUserV1.md
new file mode 100644
index 0000000..b1f4eaa
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SyncUserV1.md
@@ -0,0 +1,32 @@
+# SyncUserV1
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**deleted_at** | **datetime** | |
+**email** | **str** | |
+**id** | **str** | |
+**name** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.sync_user_v1 import SyncUserV1
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SyncUserV1 from a JSON string
+sync_user_v1_instance = SyncUserV1.from_json(json)
+# print the JSON string representation of the object
+print(SyncUserV1.to_json())
+
+# convert the object into a dict
+sync_user_v1_dict = sync_user_v1_instance.to_dict()
+# create an instance of SyncUserV1 from a dict
+sync_user_v1_from_dict = SyncUserV1.from_dict(sync_user_v1_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigApi.md b/generated/immich/openapi_client/docs/SystemConfigApi.md
new file mode 100644
index 0000000..f04d4b9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigApi.md
@@ -0,0 +1,348 @@
+# generated.immich.openapi_client.SystemConfigApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_config**](SystemConfigApi.md#get_config) | **GET** /system-config |
+[**get_config_defaults**](SystemConfigApi.md#get_config_defaults) | **GET** /system-config/defaults |
+[**get_storage_template_options**](SystemConfigApi.md#get_storage_template_options) | **GET** /system-config/storage-template-options |
+[**update_config**](SystemConfigApi.md#update_config) | **PUT** /system-config |
+
+
+# **get_config**
+> SystemConfigDto get_config()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.system_config_dto import SystemConfigDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SystemConfigApi(api_client)
+
+ try:
+ api_response = api_instance.get_config()
+ print("The response of SystemConfigApi->get_config:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SystemConfigApi->get_config: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**SystemConfigDto**](SystemConfigDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_config_defaults**
+> SystemConfigDto get_config_defaults()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.system_config_dto import SystemConfigDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SystemConfigApi(api_client)
+
+ try:
+ api_response = api_instance.get_config_defaults()
+ print("The response of SystemConfigApi->get_config_defaults:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SystemConfigApi->get_config_defaults: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**SystemConfigDto**](SystemConfigDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_storage_template_options**
+> SystemConfigTemplateStorageOptionDto get_storage_template_options()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.system_config_template_storage_option_dto import SystemConfigTemplateStorageOptionDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SystemConfigApi(api_client)
+
+ try:
+ api_response = api_instance.get_storage_template_options()
+ print("The response of SystemConfigApi->get_storage_template_options:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SystemConfigApi->get_storage_template_options: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**SystemConfigTemplateStorageOptionDto**](SystemConfigTemplateStorageOptionDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_config**
+> SystemConfigDto update_config(system_config_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.system_config_dto import SystemConfigDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SystemConfigApi(api_client)
+ system_config_dto = generated.immich.openapi_client.SystemConfigDto() # SystemConfigDto |
+
+ try:
+ api_response = api_instance.update_config(system_config_dto)
+ print("The response of SystemConfigApi->update_config:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SystemConfigApi->update_config: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **system_config_dto** | [**SystemConfigDto**](SystemConfigDto.md)| |
+
+### Return type
+
+[**SystemConfigDto**](SystemConfigDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigBackupsDto.md b/generated/immich/openapi_client/docs/SystemConfigBackupsDto.md
new file mode 100644
index 0000000..ff2d534
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigBackupsDto.md
@@ -0,0 +1,29 @@
+# SystemConfigBackupsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**database** | [**DatabaseBackupConfig**](DatabaseBackupConfig.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_backups_dto import SystemConfigBackupsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigBackupsDto from a JSON string
+system_config_backups_dto_instance = SystemConfigBackupsDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigBackupsDto.to_json())
+
+# convert the object into a dict
+system_config_backups_dto_dict = system_config_backups_dto_instance.to_dict()
+# create an instance of SystemConfigBackupsDto from a dict
+system_config_backups_dto_from_dict = SystemConfigBackupsDto.from_dict(system_config_backups_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigDto.md b/generated/immich/openapi_client/docs/SystemConfigDto.md
new file mode 100644
index 0000000..31ef74a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigDto.md
@@ -0,0 +1,48 @@
+# SystemConfigDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**backup** | [**SystemConfigBackupsDto**](SystemConfigBackupsDto.md) | |
+**ffmpeg** | [**SystemConfigFFmpegDto**](SystemConfigFFmpegDto.md) | |
+**image** | [**SystemConfigImageDto**](SystemConfigImageDto.md) | |
+**job** | [**SystemConfigJobDto**](SystemConfigJobDto.md) | |
+**library** | [**SystemConfigLibraryDto**](SystemConfigLibraryDto.md) | |
+**logging** | [**SystemConfigLoggingDto**](SystemConfigLoggingDto.md) | |
+**machine_learning** | [**SystemConfigMachineLearningDto**](SystemConfigMachineLearningDto.md) | |
+**map** | [**SystemConfigMapDto**](SystemConfigMapDto.md) | |
+**metadata** | [**SystemConfigMetadataDto**](SystemConfigMetadataDto.md) | |
+**new_version_check** | [**SystemConfigNewVersionCheckDto**](SystemConfigNewVersionCheckDto.md) | |
+**notifications** | [**SystemConfigNotificationsDto**](SystemConfigNotificationsDto.md) | |
+**oauth** | [**SystemConfigOAuthDto**](SystemConfigOAuthDto.md) | |
+**password_login** | [**SystemConfigPasswordLoginDto**](SystemConfigPasswordLoginDto.md) | |
+**reverse_geocoding** | [**SystemConfigReverseGeocodingDto**](SystemConfigReverseGeocodingDto.md) | |
+**server** | [**SystemConfigServerDto**](SystemConfigServerDto.md) | |
+**storage_template** | [**SystemConfigStorageTemplateDto**](SystemConfigStorageTemplateDto.md) | |
+**templates** | [**SystemConfigTemplatesDto**](SystemConfigTemplatesDto.md) | |
+**theme** | [**SystemConfigThemeDto**](SystemConfigThemeDto.md) | |
+**trash** | [**SystemConfigTrashDto**](SystemConfigTrashDto.md) | |
+**user** | [**SystemConfigUserDto**](SystemConfigUserDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_dto import SystemConfigDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigDto from a JSON string
+system_config_dto_instance = SystemConfigDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigDto.to_json())
+
+# convert the object into a dict
+system_config_dto_dict = system_config_dto_instance.to_dict()
+# create an instance of SystemConfigDto from a dict
+system_config_dto_from_dict = SystemConfigDto.from_dict(system_config_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigFFmpegDto.md b/generated/immich/openapi_client/docs/SystemConfigFFmpegDto.md
new file mode 100644
index 0000000..a6eb2c7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigFFmpegDto.md
@@ -0,0 +1,49 @@
+# SystemConfigFFmpegDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**accel** | [**TranscodeHWAccel**](TranscodeHWAccel.md) | |
+**accel_decode** | **bool** | |
+**accepted_audio_codecs** | [**List[AudioCodec]**](AudioCodec.md) | |
+**accepted_containers** | [**List[VideoContainer]**](VideoContainer.md) | |
+**accepted_video_codecs** | [**List[VideoCodec]**](VideoCodec.md) | |
+**bframes** | **int** | |
+**cq_mode** | [**CQMode**](CQMode.md) | |
+**crf** | **int** | |
+**gop_size** | **int** | |
+**max_bitrate** | **str** | |
+**preferred_hw_device** | **str** | |
+**preset** | **str** | |
+**refs** | **int** | |
+**target_audio_codec** | [**AudioCodec**](AudioCodec.md) | |
+**target_resolution** | **str** | |
+**target_video_codec** | [**VideoCodec**](VideoCodec.md) | |
+**temporal_aq** | **bool** | |
+**threads** | **int** | |
+**tonemap** | [**ToneMapping**](ToneMapping.md) | |
+**transcode** | [**TranscodePolicy**](TranscodePolicy.md) | |
+**two_pass** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_f_fmpeg_dto import SystemConfigFFmpegDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigFFmpegDto from a JSON string
+system_config_f_fmpeg_dto_instance = SystemConfigFFmpegDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigFFmpegDto.to_json())
+
+# convert the object into a dict
+system_config_f_fmpeg_dto_dict = system_config_f_fmpeg_dto_instance.to_dict()
+# create an instance of SystemConfigFFmpegDto from a dict
+system_config_f_fmpeg_dto_from_dict = SystemConfigFFmpegDto.from_dict(system_config_f_fmpeg_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigFacesDto.md b/generated/immich/openapi_client/docs/SystemConfigFacesDto.md
new file mode 100644
index 0000000..00c8738
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigFacesDto.md
@@ -0,0 +1,29 @@
+# SystemConfigFacesDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_import** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_faces_dto import SystemConfigFacesDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigFacesDto from a JSON string
+system_config_faces_dto_instance = SystemConfigFacesDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigFacesDto.to_json())
+
+# convert the object into a dict
+system_config_faces_dto_dict = system_config_faces_dto_instance.to_dict()
+# create an instance of SystemConfigFacesDto from a dict
+system_config_faces_dto_from_dict = SystemConfigFacesDto.from_dict(system_config_faces_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigGeneratedFullsizeImageDto.md b/generated/immich/openapi_client/docs/SystemConfigGeneratedFullsizeImageDto.md
new file mode 100644
index 0000000..346384b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigGeneratedFullsizeImageDto.md
@@ -0,0 +1,31 @@
+# SystemConfigGeneratedFullsizeImageDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+**format** | [**ImageFormat**](ImageFormat.md) | |
+**quality** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_generated_fullsize_image_dto import SystemConfigGeneratedFullsizeImageDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigGeneratedFullsizeImageDto from a JSON string
+system_config_generated_fullsize_image_dto_instance = SystemConfigGeneratedFullsizeImageDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigGeneratedFullsizeImageDto.to_json())
+
+# convert the object into a dict
+system_config_generated_fullsize_image_dto_dict = system_config_generated_fullsize_image_dto_instance.to_dict()
+# create an instance of SystemConfigGeneratedFullsizeImageDto from a dict
+system_config_generated_fullsize_image_dto_from_dict = SystemConfigGeneratedFullsizeImageDto.from_dict(system_config_generated_fullsize_image_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigGeneratedImageDto.md b/generated/immich/openapi_client/docs/SystemConfigGeneratedImageDto.md
new file mode 100644
index 0000000..0849386
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigGeneratedImageDto.md
@@ -0,0 +1,31 @@
+# SystemConfigGeneratedImageDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**format** | [**ImageFormat**](ImageFormat.md) | |
+**quality** | **int** | |
+**size** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_generated_image_dto import SystemConfigGeneratedImageDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigGeneratedImageDto from a JSON string
+system_config_generated_image_dto_instance = SystemConfigGeneratedImageDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigGeneratedImageDto.to_json())
+
+# convert the object into a dict
+system_config_generated_image_dto_dict = system_config_generated_image_dto_instance.to_dict()
+# create an instance of SystemConfigGeneratedImageDto from a dict
+system_config_generated_image_dto_from_dict = SystemConfigGeneratedImageDto.from_dict(system_config_generated_image_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigImageDto.md b/generated/immich/openapi_client/docs/SystemConfigImageDto.md
new file mode 100644
index 0000000..abd6fb8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigImageDto.md
@@ -0,0 +1,33 @@
+# SystemConfigImageDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**colorspace** | [**Colorspace**](Colorspace.md) | |
+**extract_embedded** | **bool** | |
+**fullsize** | [**SystemConfigGeneratedFullsizeImageDto**](SystemConfigGeneratedFullsizeImageDto.md) | |
+**preview** | [**SystemConfigGeneratedImageDto**](SystemConfigGeneratedImageDto.md) | |
+**thumbnail** | [**SystemConfigGeneratedImageDto**](SystemConfigGeneratedImageDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_image_dto import SystemConfigImageDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigImageDto from a JSON string
+system_config_image_dto_instance = SystemConfigImageDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigImageDto.to_json())
+
+# convert the object into a dict
+system_config_image_dto_dict = system_config_image_dto_instance.to_dict()
+# create an instance of SystemConfigImageDto from a dict
+system_config_image_dto_from_dict = SystemConfigImageDto.from_dict(system_config_image_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigJobDto.md b/generated/immich/openapi_client/docs/SystemConfigJobDto.md
new file mode 100644
index 0000000..342b6c0
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigJobDto.md
@@ -0,0 +1,39 @@
+# SystemConfigJobDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**background_task** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**face_detection** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**library** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**metadata_extraction** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**migration** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**notifications** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**search** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**sidecar** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**smart_search** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**thumbnail_generation** | [**JobSettingsDto**](JobSettingsDto.md) | |
+**video_conversion** | [**JobSettingsDto**](JobSettingsDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_job_dto import SystemConfigJobDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigJobDto from a JSON string
+system_config_job_dto_instance = SystemConfigJobDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigJobDto.to_json())
+
+# convert the object into a dict
+system_config_job_dto_dict = system_config_job_dto_instance.to_dict()
+# create an instance of SystemConfigJobDto from a dict
+system_config_job_dto_from_dict = SystemConfigJobDto.from_dict(system_config_job_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigLibraryDto.md b/generated/immich/openapi_client/docs/SystemConfigLibraryDto.md
new file mode 100644
index 0000000..45d0922
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigLibraryDto.md
@@ -0,0 +1,30 @@
+# SystemConfigLibraryDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**scan** | [**SystemConfigLibraryScanDto**](SystemConfigLibraryScanDto.md) | |
+**watch** | [**SystemConfigLibraryWatchDto**](SystemConfigLibraryWatchDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_library_dto import SystemConfigLibraryDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigLibraryDto from a JSON string
+system_config_library_dto_instance = SystemConfigLibraryDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigLibraryDto.to_json())
+
+# convert the object into a dict
+system_config_library_dto_dict = system_config_library_dto_instance.to_dict()
+# create an instance of SystemConfigLibraryDto from a dict
+system_config_library_dto_from_dict = SystemConfigLibraryDto.from_dict(system_config_library_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigLibraryScanDto.md b/generated/immich/openapi_client/docs/SystemConfigLibraryScanDto.md
new file mode 100644
index 0000000..c6a3550
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigLibraryScanDto.md
@@ -0,0 +1,30 @@
+# SystemConfigLibraryScanDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**cron_expression** | **str** | |
+**enabled** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_library_scan_dto import SystemConfigLibraryScanDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigLibraryScanDto from a JSON string
+system_config_library_scan_dto_instance = SystemConfigLibraryScanDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigLibraryScanDto.to_json())
+
+# convert the object into a dict
+system_config_library_scan_dto_dict = system_config_library_scan_dto_instance.to_dict()
+# create an instance of SystemConfigLibraryScanDto from a dict
+system_config_library_scan_dto_from_dict = SystemConfigLibraryScanDto.from_dict(system_config_library_scan_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigLibraryWatchDto.md b/generated/immich/openapi_client/docs/SystemConfigLibraryWatchDto.md
new file mode 100644
index 0000000..17cc12c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigLibraryWatchDto.md
@@ -0,0 +1,29 @@
+# SystemConfigLibraryWatchDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_library_watch_dto import SystemConfigLibraryWatchDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigLibraryWatchDto from a JSON string
+system_config_library_watch_dto_instance = SystemConfigLibraryWatchDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigLibraryWatchDto.to_json())
+
+# convert the object into a dict
+system_config_library_watch_dto_dict = system_config_library_watch_dto_instance.to_dict()
+# create an instance of SystemConfigLibraryWatchDto from a dict
+system_config_library_watch_dto_from_dict = SystemConfigLibraryWatchDto.from_dict(system_config_library_watch_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigLoggingDto.md b/generated/immich/openapi_client/docs/SystemConfigLoggingDto.md
new file mode 100644
index 0000000..a0f29ba
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigLoggingDto.md
@@ -0,0 +1,30 @@
+# SystemConfigLoggingDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+**level** | [**LogLevel**](LogLevel.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_logging_dto import SystemConfigLoggingDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigLoggingDto from a JSON string
+system_config_logging_dto_instance = SystemConfigLoggingDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigLoggingDto.to_json())
+
+# convert the object into a dict
+system_config_logging_dto_dict = system_config_logging_dto_instance.to_dict()
+# create an instance of SystemConfigLoggingDto from a dict
+system_config_logging_dto_from_dict = SystemConfigLoggingDto.from_dict(system_config_logging_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigMachineLearningDto.md b/generated/immich/openapi_client/docs/SystemConfigMachineLearningDto.md
new file mode 100644
index 0000000..7d5ac48
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigMachineLearningDto.md
@@ -0,0 +1,34 @@
+# SystemConfigMachineLearningDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**clip** | [**CLIPConfig**](CLIPConfig.md) | |
+**duplicate_detection** | [**DuplicateDetectionConfig**](DuplicateDetectionConfig.md) | |
+**enabled** | **bool** | |
+**facial_recognition** | [**FacialRecognitionConfig**](FacialRecognitionConfig.md) | |
+**url** | **str** | This property was deprecated in v1.122.0 | [optional]
+**urls** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_machine_learning_dto import SystemConfigMachineLearningDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigMachineLearningDto from a JSON string
+system_config_machine_learning_dto_instance = SystemConfigMachineLearningDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigMachineLearningDto.to_json())
+
+# convert the object into a dict
+system_config_machine_learning_dto_dict = system_config_machine_learning_dto_instance.to_dict()
+# create an instance of SystemConfigMachineLearningDto from a dict
+system_config_machine_learning_dto_from_dict = SystemConfigMachineLearningDto.from_dict(system_config_machine_learning_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigMapDto.md b/generated/immich/openapi_client/docs/SystemConfigMapDto.md
new file mode 100644
index 0000000..3899137
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigMapDto.md
@@ -0,0 +1,31 @@
+# SystemConfigMapDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dark_style** | **str** | |
+**enabled** | **bool** | |
+**light_style** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_map_dto import SystemConfigMapDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigMapDto from a JSON string
+system_config_map_dto_instance = SystemConfigMapDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigMapDto.to_json())
+
+# convert the object into a dict
+system_config_map_dto_dict = system_config_map_dto_instance.to_dict()
+# create an instance of SystemConfigMapDto from a dict
+system_config_map_dto_from_dict = SystemConfigMapDto.from_dict(system_config_map_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigMetadataDto.md b/generated/immich/openapi_client/docs/SystemConfigMetadataDto.md
new file mode 100644
index 0000000..81c8843
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigMetadataDto.md
@@ -0,0 +1,29 @@
+# SystemConfigMetadataDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**faces** | [**SystemConfigFacesDto**](SystemConfigFacesDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_metadata_dto import SystemConfigMetadataDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigMetadataDto from a JSON string
+system_config_metadata_dto_instance = SystemConfigMetadataDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigMetadataDto.to_json())
+
+# convert the object into a dict
+system_config_metadata_dto_dict = system_config_metadata_dto_instance.to_dict()
+# create an instance of SystemConfigMetadataDto from a dict
+system_config_metadata_dto_from_dict = SystemConfigMetadataDto.from_dict(system_config_metadata_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigNewVersionCheckDto.md b/generated/immich/openapi_client/docs/SystemConfigNewVersionCheckDto.md
new file mode 100644
index 0000000..bbd7fa9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigNewVersionCheckDto.md
@@ -0,0 +1,29 @@
+# SystemConfigNewVersionCheckDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_new_version_check_dto import SystemConfigNewVersionCheckDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigNewVersionCheckDto from a JSON string
+system_config_new_version_check_dto_instance = SystemConfigNewVersionCheckDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigNewVersionCheckDto.to_json())
+
+# convert the object into a dict
+system_config_new_version_check_dto_dict = system_config_new_version_check_dto_instance.to_dict()
+# create an instance of SystemConfigNewVersionCheckDto from a dict
+system_config_new_version_check_dto_from_dict = SystemConfigNewVersionCheckDto.from_dict(system_config_new_version_check_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigNotificationsDto.md b/generated/immich/openapi_client/docs/SystemConfigNotificationsDto.md
new file mode 100644
index 0000000..210e9b9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigNotificationsDto.md
@@ -0,0 +1,29 @@
+# SystemConfigNotificationsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**smtp** | [**SystemConfigSmtpDto**](SystemConfigSmtpDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_notifications_dto import SystemConfigNotificationsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigNotificationsDto from a JSON string
+system_config_notifications_dto_instance = SystemConfigNotificationsDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigNotificationsDto.to_json())
+
+# convert the object into a dict
+system_config_notifications_dto_dict = system_config_notifications_dto_instance.to_dict()
+# create an instance of SystemConfigNotificationsDto from a dict
+system_config_notifications_dto_from_dict = SystemConfigNotificationsDto.from_dict(system_config_notifications_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigOAuthDto.md b/generated/immich/openapi_client/docs/SystemConfigOAuthDto.md
new file mode 100644
index 0000000..555c694
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigOAuthDto.md
@@ -0,0 +1,43 @@
+# SystemConfigOAuthDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**auto_launch** | **bool** | |
+**auto_register** | **bool** | |
+**button_text** | **str** | |
+**client_id** | **str** | |
+**client_secret** | **str** | |
+**default_storage_quota** | **float** | |
+**enabled** | **bool** | |
+**issuer_url** | **str** | |
+**mobile_override_enabled** | **bool** | |
+**mobile_redirect_uri** | **str** | |
+**profile_signing_algorithm** | **str** | |
+**scope** | **str** | |
+**signing_algorithm** | **str** | |
+**storage_label_claim** | **str** | |
+**storage_quota_claim** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_o_auth_dto import SystemConfigOAuthDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigOAuthDto from a JSON string
+system_config_o_auth_dto_instance = SystemConfigOAuthDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigOAuthDto.to_json())
+
+# convert the object into a dict
+system_config_o_auth_dto_dict = system_config_o_auth_dto_instance.to_dict()
+# create an instance of SystemConfigOAuthDto from a dict
+system_config_o_auth_dto_from_dict = SystemConfigOAuthDto.from_dict(system_config_o_auth_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigPasswordLoginDto.md b/generated/immich/openapi_client/docs/SystemConfigPasswordLoginDto.md
new file mode 100644
index 0000000..c144842
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigPasswordLoginDto.md
@@ -0,0 +1,29 @@
+# SystemConfigPasswordLoginDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_password_login_dto import SystemConfigPasswordLoginDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigPasswordLoginDto from a JSON string
+system_config_password_login_dto_instance = SystemConfigPasswordLoginDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigPasswordLoginDto.to_json())
+
+# convert the object into a dict
+system_config_password_login_dto_dict = system_config_password_login_dto_instance.to_dict()
+# create an instance of SystemConfigPasswordLoginDto from a dict
+system_config_password_login_dto_from_dict = SystemConfigPasswordLoginDto.from_dict(system_config_password_login_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigReverseGeocodingDto.md b/generated/immich/openapi_client/docs/SystemConfigReverseGeocodingDto.md
new file mode 100644
index 0000000..a28d185
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigReverseGeocodingDto.md
@@ -0,0 +1,29 @@
+# SystemConfigReverseGeocodingDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_reverse_geocoding_dto import SystemConfigReverseGeocodingDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigReverseGeocodingDto from a JSON string
+system_config_reverse_geocoding_dto_instance = SystemConfigReverseGeocodingDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigReverseGeocodingDto.to_json())
+
+# convert the object into a dict
+system_config_reverse_geocoding_dto_dict = system_config_reverse_geocoding_dto_instance.to_dict()
+# create an instance of SystemConfigReverseGeocodingDto from a dict
+system_config_reverse_geocoding_dto_from_dict = SystemConfigReverseGeocodingDto.from_dict(system_config_reverse_geocoding_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigServerDto.md b/generated/immich/openapi_client/docs/SystemConfigServerDto.md
new file mode 100644
index 0000000..56ecf79
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigServerDto.md
@@ -0,0 +1,31 @@
+# SystemConfigServerDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**external_domain** | **str** | |
+**login_page_message** | **str** | |
+**public_users** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_server_dto import SystemConfigServerDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigServerDto from a JSON string
+system_config_server_dto_instance = SystemConfigServerDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigServerDto.to_json())
+
+# convert the object into a dict
+system_config_server_dto_dict = system_config_server_dto_instance.to_dict()
+# create an instance of SystemConfigServerDto from a dict
+system_config_server_dto_from_dict = SystemConfigServerDto.from_dict(system_config_server_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigSmtpDto.md b/generated/immich/openapi_client/docs/SystemConfigSmtpDto.md
new file mode 100644
index 0000000..b728bf6
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigSmtpDto.md
@@ -0,0 +1,32 @@
+# SystemConfigSmtpDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+**var_from** | **str** | |
+**reply_to** | **str** | |
+**transport** | [**SystemConfigSmtpTransportDto**](SystemConfigSmtpTransportDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_smtp_dto import SystemConfigSmtpDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigSmtpDto from a JSON string
+system_config_smtp_dto_instance = SystemConfigSmtpDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigSmtpDto.to_json())
+
+# convert the object into a dict
+system_config_smtp_dto_dict = system_config_smtp_dto_instance.to_dict()
+# create an instance of SystemConfigSmtpDto from a dict
+system_config_smtp_dto_from_dict = SystemConfigSmtpDto.from_dict(system_config_smtp_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigSmtpTransportDto.md b/generated/immich/openapi_client/docs/SystemConfigSmtpTransportDto.md
new file mode 100644
index 0000000..e5fee1a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigSmtpTransportDto.md
@@ -0,0 +1,33 @@
+# SystemConfigSmtpTransportDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**host** | **str** | |
+**ignore_cert** | **bool** | |
+**password** | **str** | |
+**port** | **float** | |
+**username** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_smtp_transport_dto import SystemConfigSmtpTransportDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigSmtpTransportDto from a JSON string
+system_config_smtp_transport_dto_instance = SystemConfigSmtpTransportDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigSmtpTransportDto.to_json())
+
+# convert the object into a dict
+system_config_smtp_transport_dto_dict = system_config_smtp_transport_dto_instance.to_dict()
+# create an instance of SystemConfigSmtpTransportDto from a dict
+system_config_smtp_transport_dto_from_dict = SystemConfigSmtpTransportDto.from_dict(system_config_smtp_transport_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigStorageTemplateDto.md b/generated/immich/openapi_client/docs/SystemConfigStorageTemplateDto.md
new file mode 100644
index 0000000..b24a2a8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigStorageTemplateDto.md
@@ -0,0 +1,31 @@
+# SystemConfigStorageTemplateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | |
+**hash_verification_enabled** | **bool** | |
+**template** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_storage_template_dto import SystemConfigStorageTemplateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigStorageTemplateDto from a JSON string
+system_config_storage_template_dto_instance = SystemConfigStorageTemplateDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigStorageTemplateDto.to_json())
+
+# convert the object into a dict
+system_config_storage_template_dto_dict = system_config_storage_template_dto_instance.to_dict()
+# create an instance of SystemConfigStorageTemplateDto from a dict
+system_config_storage_template_dto_from_dict = SystemConfigStorageTemplateDto.from_dict(system_config_storage_template_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigTemplateEmailsDto.md b/generated/immich/openapi_client/docs/SystemConfigTemplateEmailsDto.md
new file mode 100644
index 0000000..89af614
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigTemplateEmailsDto.md
@@ -0,0 +1,31 @@
+# SystemConfigTemplateEmailsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_invite_template** | **str** | |
+**album_update_template** | **str** | |
+**welcome_template** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_template_emails_dto import SystemConfigTemplateEmailsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigTemplateEmailsDto from a JSON string
+system_config_template_emails_dto_instance = SystemConfigTemplateEmailsDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigTemplateEmailsDto.to_json())
+
+# convert the object into a dict
+system_config_template_emails_dto_dict = system_config_template_emails_dto_instance.to_dict()
+# create an instance of SystemConfigTemplateEmailsDto from a dict
+system_config_template_emails_dto_from_dict = SystemConfigTemplateEmailsDto.from_dict(system_config_template_emails_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigTemplateStorageOptionDto.md b/generated/immich/openapi_client/docs/SystemConfigTemplateStorageOptionDto.md
new file mode 100644
index 0000000..f4a03d1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigTemplateStorageOptionDto.md
@@ -0,0 +1,36 @@
+# SystemConfigTemplateStorageOptionDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**day_options** | **List[str]** | |
+**hour_options** | **List[str]** | |
+**minute_options** | **List[str]** | |
+**month_options** | **List[str]** | |
+**preset_options** | **List[str]** | |
+**second_options** | **List[str]** | |
+**week_options** | **List[str]** | |
+**year_options** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_template_storage_option_dto import SystemConfigTemplateStorageOptionDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigTemplateStorageOptionDto from a JSON string
+system_config_template_storage_option_dto_instance = SystemConfigTemplateStorageOptionDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigTemplateStorageOptionDto.to_json())
+
+# convert the object into a dict
+system_config_template_storage_option_dto_dict = system_config_template_storage_option_dto_instance.to_dict()
+# create an instance of SystemConfigTemplateStorageOptionDto from a dict
+system_config_template_storage_option_dto_from_dict = SystemConfigTemplateStorageOptionDto.from_dict(system_config_template_storage_option_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigTemplatesDto.md b/generated/immich/openapi_client/docs/SystemConfigTemplatesDto.md
new file mode 100644
index 0000000..f0f6888
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigTemplatesDto.md
@@ -0,0 +1,29 @@
+# SystemConfigTemplatesDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**email** | [**SystemConfigTemplateEmailsDto**](SystemConfigTemplateEmailsDto.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_templates_dto import SystemConfigTemplatesDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigTemplatesDto from a JSON string
+system_config_templates_dto_instance = SystemConfigTemplatesDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigTemplatesDto.to_json())
+
+# convert the object into a dict
+system_config_templates_dto_dict = system_config_templates_dto_instance.to_dict()
+# create an instance of SystemConfigTemplatesDto from a dict
+system_config_templates_dto_from_dict = SystemConfigTemplatesDto.from_dict(system_config_templates_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigThemeDto.md b/generated/immich/openapi_client/docs/SystemConfigThemeDto.md
new file mode 100644
index 0000000..2660ef0
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigThemeDto.md
@@ -0,0 +1,29 @@
+# SystemConfigThemeDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**custom_css** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_theme_dto import SystemConfigThemeDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigThemeDto from a JSON string
+system_config_theme_dto_instance = SystemConfigThemeDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigThemeDto.to_json())
+
+# convert the object into a dict
+system_config_theme_dto_dict = system_config_theme_dto_instance.to_dict()
+# create an instance of SystemConfigThemeDto from a dict
+system_config_theme_dto_from_dict = SystemConfigThemeDto.from_dict(system_config_theme_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigTrashDto.md b/generated/immich/openapi_client/docs/SystemConfigTrashDto.md
new file mode 100644
index 0000000..7e0bdfc
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigTrashDto.md
@@ -0,0 +1,30 @@
+# SystemConfigTrashDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**days** | **int** | |
+**enabled** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_trash_dto import SystemConfigTrashDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigTrashDto from a JSON string
+system_config_trash_dto_instance = SystemConfigTrashDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigTrashDto.to_json())
+
+# convert the object into a dict
+system_config_trash_dto_dict = system_config_trash_dto_instance.to_dict()
+# create an instance of SystemConfigTrashDto from a dict
+system_config_trash_dto_from_dict = SystemConfigTrashDto.from_dict(system_config_trash_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemConfigUserDto.md b/generated/immich/openapi_client/docs/SystemConfigUserDto.md
new file mode 100644
index 0000000..44d7d54
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemConfigUserDto.md
@@ -0,0 +1,29 @@
+# SystemConfigUserDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**delete_delay** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.system_config_user_dto import SystemConfigUserDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SystemConfigUserDto from a JSON string
+system_config_user_dto_instance = SystemConfigUserDto.from_json(json)
+# print the JSON string representation of the object
+print(SystemConfigUserDto.to_json())
+
+# convert the object into a dict
+system_config_user_dto_dict = system_config_user_dto_instance.to_dict()
+# create an instance of SystemConfigUserDto from a dict
+system_config_user_dto_from_dict = SystemConfigUserDto.from_dict(system_config_user_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/SystemMetadataApi.md b/generated/immich/openapi_client/docs/SystemMetadataApi.md
new file mode 100644
index 0000000..deca9d3
--- /dev/null
+++ b/generated/immich/openapi_client/docs/SystemMetadataApi.md
@@ -0,0 +1,262 @@
+# generated.immich.openapi_client.SystemMetadataApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_admin_onboarding**](SystemMetadataApi.md#get_admin_onboarding) | **GET** /system-metadata/admin-onboarding |
+[**get_reverse_geocoding_state**](SystemMetadataApi.md#get_reverse_geocoding_state) | **GET** /system-metadata/reverse-geocoding-state |
+[**update_admin_onboarding**](SystemMetadataApi.md#update_admin_onboarding) | **POST** /system-metadata/admin-onboarding |
+
+
+# **get_admin_onboarding**
+> AdminOnboardingUpdateDto get_admin_onboarding()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.admin_onboarding_update_dto import AdminOnboardingUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SystemMetadataApi(api_client)
+
+ try:
+ api_response = api_instance.get_admin_onboarding()
+ print("The response of SystemMetadataApi->get_admin_onboarding:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SystemMetadataApi->get_admin_onboarding: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**AdminOnboardingUpdateDto**](AdminOnboardingUpdateDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_reverse_geocoding_state**
+> ReverseGeocodingStateResponseDto get_reverse_geocoding_state()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.reverse_geocoding_state_response_dto import ReverseGeocodingStateResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SystemMetadataApi(api_client)
+
+ try:
+ api_response = api_instance.get_reverse_geocoding_state()
+ print("The response of SystemMetadataApi->get_reverse_geocoding_state:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling SystemMetadataApi->get_reverse_geocoding_state: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ReverseGeocodingStateResponseDto**](ReverseGeocodingStateResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_admin_onboarding**
+> update_admin_onboarding(admin_onboarding_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.admin_onboarding_update_dto import AdminOnboardingUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.SystemMetadataApi(api_client)
+ admin_onboarding_update_dto = generated.immich.openapi_client.AdminOnboardingUpdateDto() # AdminOnboardingUpdateDto |
+
+ try:
+ api_instance.update_admin_onboarding(admin_onboarding_update_dto)
+ except Exception as e:
+ print("Exception when calling SystemMetadataApi->update_admin_onboarding: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **admin_onboarding_update_dto** | [**AdminOnboardingUpdateDto**](AdminOnboardingUpdateDto.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/TagBulkAssetsDto.md b/generated/immich/openapi_client/docs/TagBulkAssetsDto.md
new file mode 100644
index 0000000..ee85d03
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagBulkAssetsDto.md
@@ -0,0 +1,30 @@
+# TagBulkAssetsDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**asset_ids** | **List[str]** | |
+**tag_ids** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tag_bulk_assets_dto import TagBulkAssetsDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagBulkAssetsDto from a JSON string
+tag_bulk_assets_dto_instance = TagBulkAssetsDto.from_json(json)
+# print the JSON string representation of the object
+print(TagBulkAssetsDto.to_json())
+
+# convert the object into a dict
+tag_bulk_assets_dto_dict = tag_bulk_assets_dto_instance.to_dict()
+# create an instance of TagBulkAssetsDto from a dict
+tag_bulk_assets_dto_from_dict = TagBulkAssetsDto.from_dict(tag_bulk_assets_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TagBulkAssetsResponseDto.md b/generated/immich/openapi_client/docs/TagBulkAssetsResponseDto.md
new file mode 100644
index 0000000..9d1e799
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagBulkAssetsResponseDto.md
@@ -0,0 +1,29 @@
+# TagBulkAssetsResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tag_bulk_assets_response_dto import TagBulkAssetsResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagBulkAssetsResponseDto from a JSON string
+tag_bulk_assets_response_dto_instance = TagBulkAssetsResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(TagBulkAssetsResponseDto.to_json())
+
+# convert the object into a dict
+tag_bulk_assets_response_dto_dict = tag_bulk_assets_response_dto_instance.to_dict()
+# create an instance of TagBulkAssetsResponseDto from a dict
+tag_bulk_assets_response_dto_from_dict = TagBulkAssetsResponseDto.from_dict(tag_bulk_assets_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TagCreateDto.md b/generated/immich/openapi_client/docs/TagCreateDto.md
new file mode 100644
index 0000000..a65a15f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagCreateDto.md
@@ -0,0 +1,31 @@
+# TagCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**color** | **str** | | [optional]
+**name** | **str** | |
+**parent_id** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tag_create_dto import TagCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagCreateDto from a JSON string
+tag_create_dto_instance = TagCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(TagCreateDto.to_json())
+
+# convert the object into a dict
+tag_create_dto_dict = tag_create_dto_instance.to_dict()
+# create an instance of TagCreateDto from a dict
+tag_create_dto_from_dict = TagCreateDto.from_dict(tag_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TagResponseDto.md b/generated/immich/openapi_client/docs/TagResponseDto.md
new file mode 100644
index 0000000..caba9d9
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagResponseDto.md
@@ -0,0 +1,35 @@
+# TagResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**color** | **str** | | [optional]
+**created_at** | **datetime** | |
+**id** | **str** | |
+**name** | **str** | |
+**parent_id** | **str** | | [optional]
+**updated_at** | **datetime** | |
+**value** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagResponseDto from a JSON string
+tag_response_dto_instance = TagResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(TagResponseDto.to_json())
+
+# convert the object into a dict
+tag_response_dto_dict = tag_response_dto_instance.to_dict()
+# create an instance of TagResponseDto from a dict
+tag_response_dto_from_dict = TagResponseDto.from_dict(tag_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TagUpdateDto.md b/generated/immich/openapi_client/docs/TagUpdateDto.md
new file mode 100644
index 0000000..bf4bcbb
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagUpdateDto.md
@@ -0,0 +1,29 @@
+# TagUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**color** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tag_update_dto import TagUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagUpdateDto from a JSON string
+tag_update_dto_instance = TagUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(TagUpdateDto.to_json())
+
+# convert the object into a dict
+tag_update_dto_dict = tag_update_dto_instance.to_dict()
+# create an instance of TagUpdateDto from a dict
+tag_update_dto_from_dict = TagUpdateDto.from_dict(tag_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TagUpsertDto.md b/generated/immich/openapi_client/docs/TagUpsertDto.md
new file mode 100644
index 0000000..15aa92a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagUpsertDto.md
@@ -0,0 +1,29 @@
+# TagUpsertDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**tags** | **List[str]** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tag_upsert_dto import TagUpsertDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagUpsertDto from a JSON string
+tag_upsert_dto_instance = TagUpsertDto.from_json(json)
+# print the JSON string representation of the object
+print(TagUpsertDto.to_json())
+
+# convert the object into a dict
+tag_upsert_dto_dict = tag_upsert_dto_instance.to_dict()
+# create an instance of TagUpsertDto from a dict
+tag_upsert_dto_from_dict = TagUpsertDto.from_dict(tag_upsert_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TagsApi.md b/generated/immich/openapi_client/docs/TagsApi.md
new file mode 100644
index 0000000..a8b631f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagsApi.md
@@ -0,0 +1,805 @@
+# generated.immich.openapi_client.TagsApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**bulk_tag_assets**](TagsApi.md#bulk_tag_assets) | **PUT** /tags/assets |
+[**create_tag**](TagsApi.md#create_tag) | **POST** /tags |
+[**delete_tag**](TagsApi.md#delete_tag) | **DELETE** /tags/{id} |
+[**get_all_tags**](TagsApi.md#get_all_tags) | **GET** /tags |
+[**get_tag_by_id**](TagsApi.md#get_tag_by_id) | **GET** /tags/{id} |
+[**tag_assets**](TagsApi.md#tag_assets) | **PUT** /tags/{id}/assets |
+[**untag_assets**](TagsApi.md#untag_assets) | **DELETE** /tags/{id}/assets |
+[**update_tag**](TagsApi.md#update_tag) | **PUT** /tags/{id} |
+[**upsert_tags**](TagsApi.md#upsert_tags) | **PUT** /tags |
+
+
+# **bulk_tag_assets**
+> TagBulkAssetsResponseDto bulk_tag_assets(tag_bulk_assets_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.tag_bulk_assets_dto import TagBulkAssetsDto
+from generated.immich.openapi_client.models.tag_bulk_assets_response_dto import TagBulkAssetsResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ tag_bulk_assets_dto = generated.immich.openapi_client.TagBulkAssetsDto() # TagBulkAssetsDto |
+
+ try:
+ api_response = api_instance.bulk_tag_assets(tag_bulk_assets_dto)
+ print("The response of TagsApi->bulk_tag_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->bulk_tag_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tag_bulk_assets_dto** | [**TagBulkAssetsDto**](TagBulkAssetsDto.md)| |
+
+### Return type
+
+[**TagBulkAssetsResponseDto**](TagBulkAssetsResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_tag**
+> TagResponseDto create_tag(tag_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.tag_create_dto import TagCreateDto
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ tag_create_dto = generated.immich.openapi_client.TagCreateDto() # TagCreateDto |
+
+ try:
+ api_response = api_instance.create_tag(tag_create_dto)
+ print("The response of TagsApi->create_tag:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->create_tag: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tag_create_dto** | [**TagCreateDto**](TagCreateDto.md)| |
+
+### Return type
+
+[**TagResponseDto**](TagResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_tag**
+> delete_tag(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_instance.delete_tag(id)
+ except Exception as e:
+ print("Exception when calling TagsApi->delete_tag: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_tags**
+> List[TagResponseDto] get_all_tags()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+
+ try:
+ api_response = api_instance.get_all_tags()
+ print("The response of TagsApi->get_all_tags:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->get_all_tags: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[TagResponseDto]**](TagResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_tag_by_id**
+> TagResponseDto get_tag_by_id(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_tag_by_id(id)
+ print("The response of TagsApi->get_tag_by_id:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->get_tag_by_id: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**TagResponseDto**](TagResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **tag_assets**
+> List[BulkIdResponseDto] tag_assets(id, bulk_ids_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ id = 'id_example' # str |
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+
+ try:
+ api_response = api_instance.tag_assets(id, bulk_ids_dto)
+ print("The response of TagsApi->tag_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->tag_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **untag_assets**
+> List[BulkIdResponseDto] untag_assets(id, bulk_ids_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ id = 'id_example' # str |
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+
+ try:
+ api_response = api_instance.untag_assets(id, bulk_ids_dto)
+ print("The response of TagsApi->untag_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->untag_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+
+### Return type
+
+[**List[BulkIdResponseDto]**](BulkIdResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_tag**
+> TagResponseDto update_tag(id, tag_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.models.tag_update_dto import TagUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ id = 'id_example' # str |
+ tag_update_dto = generated.immich.openapi_client.TagUpdateDto() # TagUpdateDto |
+
+ try:
+ api_response = api_instance.update_tag(id, tag_update_dto)
+ print("The response of TagsApi->update_tag:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->update_tag: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **tag_update_dto** | [**TagUpdateDto**](TagUpdateDto.md)| |
+
+### Return type
+
+[**TagResponseDto**](TagResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **upsert_tags**
+> List[TagResponseDto] upsert_tags(tag_upsert_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.models.tag_upsert_dto import TagUpsertDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TagsApi(api_client)
+ tag_upsert_dto = generated.immich.openapi_client.TagUpsertDto() # TagUpsertDto |
+
+ try:
+ api_response = api_instance.upsert_tags(tag_upsert_dto)
+ print("The response of TagsApi->upsert_tags:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->upsert_tags: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tag_upsert_dto** | [**TagUpsertDto**](TagUpsertDto.md)| |
+
+### Return type
+
+[**List[TagResponseDto]**](TagResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/TagsResponse.md b/generated/immich/openapi_client/docs/TagsResponse.md
new file mode 100644
index 0000000..c7bbfec
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagsResponse.md
@@ -0,0 +1,30 @@
+# TagsResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [default to True]
+**sidebar_web** | **bool** | | [default to True]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tags_response import TagsResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagsResponse from a JSON string
+tags_response_instance = TagsResponse.from_json(json)
+# print the JSON string representation of the object
+print(TagsResponse.to_json())
+
+# convert the object into a dict
+tags_response_dict = tags_response_instance.to_dict()
+# create an instance of TagsResponse from a dict
+tags_response_from_dict = TagsResponse.from_dict(tags_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TagsUpdate.md b/generated/immich/openapi_client/docs/TagsUpdate.md
new file mode 100644
index 0000000..6dfd911
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TagsUpdate.md
@@ -0,0 +1,30 @@
+# TagsUpdate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enabled** | **bool** | | [optional]
+**sidebar_web** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.tags_update import TagsUpdate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TagsUpdate from a JSON string
+tags_update_instance = TagsUpdate.from_json(json)
+# print the JSON string representation of the object
+print(TagsUpdate.to_json())
+
+# convert the object into a dict
+tags_update_dict = tags_update_instance.to_dict()
+# create an instance of TagsUpdate from a dict
+tags_update_from_dict = TagsUpdate.from_dict(tags_update_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TemplateDto.md b/generated/immich/openapi_client/docs/TemplateDto.md
new file mode 100644
index 0000000..eb64d18
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TemplateDto.md
@@ -0,0 +1,29 @@
+# TemplateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**template** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.template_dto import TemplateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TemplateDto from a JSON string
+template_dto_instance = TemplateDto.from_json(json)
+# print the JSON string representation of the object
+print(TemplateDto.to_json())
+
+# convert the object into a dict
+template_dto_dict = template_dto_instance.to_dict()
+# create an instance of TemplateDto from a dict
+template_dto_from_dict = TemplateDto.from_dict(template_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TemplateResponseDto.md b/generated/immich/openapi_client/docs/TemplateResponseDto.md
new file mode 100644
index 0000000..cef4e0f
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TemplateResponseDto.md
@@ -0,0 +1,30 @@
+# TemplateResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**html** | **str** | |
+**name** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.template_response_dto import TemplateResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TemplateResponseDto from a JSON string
+template_response_dto_instance = TemplateResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(TemplateResponseDto.to_json())
+
+# convert the object into a dict
+template_response_dto_dict = template_response_dto_instance.to_dict()
+# create an instance of TemplateResponseDto from a dict
+template_response_dto_from_dict = TemplateResponseDto.from_dict(template_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TestEmailResponseDto.md b/generated/immich/openapi_client/docs/TestEmailResponseDto.md
new file mode 100644
index 0000000..456a2e3
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TestEmailResponseDto.md
@@ -0,0 +1,29 @@
+# TestEmailResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**message_id** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.test_email_response_dto import TestEmailResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TestEmailResponseDto from a JSON string
+test_email_response_dto_instance = TestEmailResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(TestEmailResponseDto.to_json())
+
+# convert the object into a dict
+test_email_response_dto_dict = test_email_response_dto_instance.to_dict()
+# create an instance of TestEmailResponseDto from a dict
+test_email_response_dto_from_dict = TestEmailResponseDto.from_dict(test_email_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TimeBucketResponseDto.md b/generated/immich/openapi_client/docs/TimeBucketResponseDto.md
new file mode 100644
index 0000000..23318f8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TimeBucketResponseDto.md
@@ -0,0 +1,30 @@
+# TimeBucketResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **int** | |
+**time_bucket** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.time_bucket_response_dto import TimeBucketResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TimeBucketResponseDto from a JSON string
+time_bucket_response_dto_instance = TimeBucketResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(TimeBucketResponseDto.to_json())
+
+# convert the object into a dict
+time_bucket_response_dto_dict = time_bucket_response_dto_instance.to_dict()
+# create an instance of TimeBucketResponseDto from a dict
+time_bucket_response_dto_from_dict = TimeBucketResponseDto.from_dict(time_bucket_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TimeBucketSize.md b/generated/immich/openapi_client/docs/TimeBucketSize.md
new file mode 100644
index 0000000..a00c39e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TimeBucketSize.md
@@ -0,0 +1,12 @@
+# TimeBucketSize
+
+
+## Enum
+
+* `DAY` (value: `'DAY'`)
+
+* `MONTH` (value: `'MONTH'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TimelineApi.md b/generated/immich/openapi_client/docs/TimelineApi.md
new file mode 100644
index 0000000..8bbd976
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TimelineApi.md
@@ -0,0 +1,234 @@
+# generated.immich.openapi_client.TimelineApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_time_bucket**](TimelineApi.md#get_time_bucket) | **GET** /timeline/bucket |
+[**get_time_buckets**](TimelineApi.md#get_time_buckets) | **GET** /timeline/buckets |
+
+
+# **get_time_bucket**
+> List[AssetResponseDto] get_time_bucket(size, time_bucket, album_id=album_id, is_archived=is_archived, is_favorite=is_favorite, is_trashed=is_trashed, key=key, order=order, person_id=person_id, tag_id=tag_id, user_id=user_id, with_partners=with_partners, with_stacked=with_stacked)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.time_bucket_size import TimeBucketSize
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TimelineApi(api_client)
+ size = generated.immich.openapi_client.TimeBucketSize() # TimeBucketSize |
+ time_bucket = 'time_bucket_example' # str |
+ album_id = 'album_id_example' # str | (optional)
+ is_archived = True # bool | (optional)
+ is_favorite = True # bool | (optional)
+ is_trashed = True # bool | (optional)
+ key = 'key_example' # str | (optional)
+ order = generated.immich.openapi_client.AssetOrder() # AssetOrder | (optional)
+ person_id = 'person_id_example' # str | (optional)
+ tag_id = 'tag_id_example' # str | (optional)
+ user_id = 'user_id_example' # str | (optional)
+ with_partners = True # bool | (optional)
+ with_stacked = True # bool | (optional)
+
+ try:
+ api_response = api_instance.get_time_bucket(size, time_bucket, album_id=album_id, is_archived=is_archived, is_favorite=is_favorite, is_trashed=is_trashed, key=key, order=order, person_id=person_id, tag_id=tag_id, user_id=user_id, with_partners=with_partners, with_stacked=with_stacked)
+ print("The response of TimelineApi->get_time_bucket:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TimelineApi->get_time_bucket: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **size** | [**TimeBucketSize**](.md)| |
+ **time_bucket** | **str**| |
+ **album_id** | **str**| | [optional]
+ **is_archived** | **bool**| | [optional]
+ **is_favorite** | **bool**| | [optional]
+ **is_trashed** | **bool**| | [optional]
+ **key** | **str**| | [optional]
+ **order** | [**AssetOrder**](.md)| | [optional]
+ **person_id** | **str**| | [optional]
+ **tag_id** | **str**| | [optional]
+ **user_id** | **str**| | [optional]
+ **with_partners** | **bool**| | [optional]
+ **with_stacked** | **bool**| | [optional]
+
+### Return type
+
+[**List[AssetResponseDto]**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_time_buckets**
+> List[TimeBucketResponseDto] get_time_buckets(size, album_id=album_id, is_archived=is_archived, is_favorite=is_favorite, is_trashed=is_trashed, key=key, order=order, person_id=person_id, tag_id=tag_id, user_id=user_id, with_partners=with_partners, with_stacked=with_stacked)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_order import AssetOrder
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TimelineApi(api_client)
+ size = generated.immich.openapi_client.TimeBucketSize() # TimeBucketSize |
+ album_id = 'album_id_example' # str | (optional)
+ is_archived = True # bool | (optional)
+ is_favorite = True # bool | (optional)
+ is_trashed = True # bool | (optional)
+ key = 'key_example' # str | (optional)
+ order = generated.immich.openapi_client.AssetOrder() # AssetOrder | (optional)
+ person_id = 'person_id_example' # str | (optional)
+ tag_id = 'tag_id_example' # str | (optional)
+ user_id = 'user_id_example' # str | (optional)
+ with_partners = True # bool | (optional)
+ with_stacked = True # bool | (optional)
+
+ try:
+ api_response = api_instance.get_time_buckets(size, album_id=album_id, is_archived=is_archived, is_favorite=is_favorite, is_trashed=is_trashed, key=key, order=order, person_id=person_id, tag_id=tag_id, user_id=user_id, with_partners=with_partners, with_stacked=with_stacked)
+ print("The response of TimelineApi->get_time_buckets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TimelineApi->get_time_buckets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **size** | [**TimeBucketSize**](.md)| |
+ **album_id** | **str**| | [optional]
+ **is_archived** | **bool**| | [optional]
+ **is_favorite** | **bool**| | [optional]
+ **is_trashed** | **bool**| | [optional]
+ **key** | **str**| | [optional]
+ **order** | [**AssetOrder**](.md)| | [optional]
+ **person_id** | **str**| | [optional]
+ **tag_id** | **str**| | [optional]
+ **user_id** | **str**| | [optional]
+ **with_partners** | **bool**| | [optional]
+ **with_stacked** | **bool**| | [optional]
+
+### Return type
+
+[**List[TimeBucketResponseDto]**](TimeBucketResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/ToneMapping.md b/generated/immich/openapi_client/docs/ToneMapping.md
new file mode 100644
index 0000000..122b477
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ToneMapping.md
@@ -0,0 +1,16 @@
+# ToneMapping
+
+
+## Enum
+
+* `HABLE` (value: `'hable'`)
+
+* `MOBIUS` (value: `'mobius'`)
+
+* `REINHARD` (value: `'reinhard'`)
+
+* `DISABLED` (value: `'disabled'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TranscodeHWAccel.md b/generated/immich/openapi_client/docs/TranscodeHWAccel.md
new file mode 100644
index 0000000..be61cd2
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TranscodeHWAccel.md
@@ -0,0 +1,18 @@
+# TranscodeHWAccel
+
+
+## Enum
+
+* `NVENC` (value: `'nvenc'`)
+
+* `QSV` (value: `'qsv'`)
+
+* `VAAPI` (value: `'vaapi'`)
+
+* `RKMPP` (value: `'rkmpp'`)
+
+* `DISABLED` (value: `'disabled'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TranscodePolicy.md b/generated/immich/openapi_client/docs/TranscodePolicy.md
new file mode 100644
index 0000000..3a52b7a
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TranscodePolicy.md
@@ -0,0 +1,18 @@
+# TranscodePolicy
+
+
+## Enum
+
+* `ALL` (value: `'all'`)
+
+* `OPTIMAL` (value: `'optimal'`)
+
+* `BITRATE` (value: `'bitrate'`)
+
+* `REQUIRED` (value: `'required'`)
+
+* `DISABLED` (value: `'disabled'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/TrashApi.md b/generated/immich/openapi_client/docs/TrashApi.md
new file mode 100644
index 0000000..b9d18c0
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TrashApi.md
@@ -0,0 +1,265 @@
+# generated.immich.openapi_client.TrashApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**empty_trash**](TrashApi.md#empty_trash) | **POST** /trash/empty |
+[**restore_assets**](TrashApi.md#restore_assets) | **POST** /trash/restore/assets |
+[**restore_trash**](TrashApi.md#restore_trash) | **POST** /trash/restore |
+
+
+# **empty_trash**
+> TrashResponseDto empty_trash()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TrashApi(api_client)
+
+ try:
+ api_response = api_instance.empty_trash()
+ print("The response of TrashApi->empty_trash:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TrashApi->empty_trash: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**TrashResponseDto**](TrashResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **restore_assets**
+> TrashResponseDto restore_assets(bulk_ids_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.bulk_ids_dto import BulkIdsDto
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TrashApi(api_client)
+ bulk_ids_dto = generated.immich.openapi_client.BulkIdsDto() # BulkIdsDto |
+
+ try:
+ api_response = api_instance.restore_assets(bulk_ids_dto)
+ print("The response of TrashApi->restore_assets:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TrashApi->restore_assets: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **bulk_ids_dto** | [**BulkIdsDto**](BulkIdsDto.md)| |
+
+### Return type
+
+[**TrashResponseDto**](TrashResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **restore_trash**
+> TrashResponseDto restore_trash()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.TrashApi(api_client)
+
+ try:
+ api_response = api_instance.restore_trash()
+ print("The response of TrashApi->restore_trash:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TrashApi->restore_trash: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**TrashResponseDto**](TrashResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/TrashResponseDto.md b/generated/immich/openapi_client/docs/TrashResponseDto.md
new file mode 100644
index 0000000..a10ae6d
--- /dev/null
+++ b/generated/immich/openapi_client/docs/TrashResponseDto.md
@@ -0,0 +1,29 @@
+# TrashResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of TrashResponseDto from a JSON string
+trash_response_dto_instance = TrashResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(TrashResponseDto.to_json())
+
+# convert the object into a dict
+trash_response_dto_dict = trash_response_dto_instance.to_dict()
+# create an instance of TrashResponseDto from a dict
+trash_response_dto_from_dict = TrashResponseDto.from_dict(trash_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UpdateAlbumDto.md b/generated/immich/openapi_client/docs/UpdateAlbumDto.md
new file mode 100644
index 0000000..1a06d79
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UpdateAlbumDto.md
@@ -0,0 +1,33 @@
+# UpdateAlbumDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**album_name** | **str** | | [optional]
+**album_thumbnail_asset_id** | **str** | | [optional]
+**description** | **str** | | [optional]
+**is_activity_enabled** | **bool** | | [optional]
+**order** | [**AssetOrder**](AssetOrder.md) | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.update_album_dto import UpdateAlbumDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UpdateAlbumDto from a JSON string
+update_album_dto_instance = UpdateAlbumDto.from_json(json)
+# print the JSON string representation of the object
+print(UpdateAlbumDto.to_json())
+
+# convert the object into a dict
+update_album_dto_dict = update_album_dto_instance.to_dict()
+# create an instance of UpdateAlbumDto from a dict
+update_album_dto_from_dict = UpdateAlbumDto.from_dict(update_album_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UpdateAlbumUserDto.md b/generated/immich/openapi_client/docs/UpdateAlbumUserDto.md
new file mode 100644
index 0000000..6c18283
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UpdateAlbumUserDto.md
@@ -0,0 +1,29 @@
+# UpdateAlbumUserDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role** | [**AlbumUserRole**](AlbumUserRole.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.update_album_user_dto import UpdateAlbumUserDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UpdateAlbumUserDto from a JSON string
+update_album_user_dto_instance = UpdateAlbumUserDto.from_json(json)
+# print the JSON string representation of the object
+print(UpdateAlbumUserDto.to_json())
+
+# convert the object into a dict
+update_album_user_dto_dict = update_album_user_dto_instance.to_dict()
+# create an instance of UpdateAlbumUserDto from a dict
+update_album_user_dto_from_dict = UpdateAlbumUserDto.from_dict(update_album_user_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UpdateAssetDto.md b/generated/immich/openapi_client/docs/UpdateAssetDto.md
new file mode 100644
index 0000000..8fd9e6e
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UpdateAssetDto.md
@@ -0,0 +1,36 @@
+# UpdateAssetDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**date_time_original** | **str** | | [optional]
+**description** | **str** | | [optional]
+**is_archived** | **bool** | | [optional]
+**is_favorite** | **bool** | | [optional]
+**latitude** | **float** | | [optional]
+**live_photo_video_id** | **str** | | [optional]
+**longitude** | **float** | | [optional]
+**rating** | **float** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.update_asset_dto import UpdateAssetDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UpdateAssetDto from a JSON string
+update_asset_dto_instance = UpdateAssetDto.from_json(json)
+# print the JSON string representation of the object
+print(UpdateAssetDto.to_json())
+
+# convert the object into a dict
+update_asset_dto_dict = update_asset_dto_instance.to_dict()
+# create an instance of UpdateAssetDto from a dict
+update_asset_dto_from_dict = UpdateAssetDto.from_dict(update_asset_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UpdateLibraryDto.md b/generated/immich/openapi_client/docs/UpdateLibraryDto.md
new file mode 100644
index 0000000..0164b04
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UpdateLibraryDto.md
@@ -0,0 +1,31 @@
+# UpdateLibraryDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**exclusion_patterns** | **List[str]** | | [optional]
+**import_paths** | **List[str]** | | [optional]
+**name** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.update_library_dto import UpdateLibraryDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UpdateLibraryDto from a JSON string
+update_library_dto_instance = UpdateLibraryDto.from_json(json)
+# print the JSON string representation of the object
+print(UpdateLibraryDto.to_json())
+
+# convert the object into a dict
+update_library_dto_dict = update_library_dto_instance.to_dict()
+# create an instance of UpdateLibraryDto from a dict
+update_library_dto_from_dict = UpdateLibraryDto.from_dict(update_library_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UpdatePartnerDto.md b/generated/immich/openapi_client/docs/UpdatePartnerDto.md
new file mode 100644
index 0000000..87fa7a2
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UpdatePartnerDto.md
@@ -0,0 +1,29 @@
+# UpdatePartnerDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**in_timeline** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.update_partner_dto import UpdatePartnerDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UpdatePartnerDto from a JSON string
+update_partner_dto_instance = UpdatePartnerDto.from_json(json)
+# print the JSON string representation of the object
+print(UpdatePartnerDto.to_json())
+
+# convert the object into a dict
+update_partner_dto_dict = update_partner_dto_instance.to_dict()
+# create an instance of UpdatePartnerDto from a dict
+update_partner_dto_from_dict = UpdatePartnerDto.from_dict(update_partner_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UsageByUserDto.md b/generated/immich/openapi_client/docs/UsageByUserDto.md
new file mode 100644
index 0000000..d2d0ed7
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UsageByUserDto.md
@@ -0,0 +1,36 @@
+# UsageByUserDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**photos** | **int** | |
+**quota_size_in_bytes** | **int** | |
+**usage** | **int** | |
+**usage_photos** | **int** | |
+**usage_videos** | **int** | |
+**user_id** | **str** | |
+**user_name** | **str** | |
+**videos** | **int** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.usage_by_user_dto import UsageByUserDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UsageByUserDto from a JSON string
+usage_by_user_dto_instance = UsageByUserDto.from_json(json)
+# print the JSON string representation of the object
+print(UsageByUserDto.to_json())
+
+# convert the object into a dict
+usage_by_user_dto_dict = usage_by_user_dto_instance.to_dict()
+# create an instance of UsageByUserDto from a dict
+usage_by_user_dto_from_dict = UsageByUserDto.from_dict(usage_by_user_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserAdminCreateDto.md b/generated/immich/openapi_client/docs/UserAdminCreateDto.md
new file mode 100644
index 0000000..7f395d2
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserAdminCreateDto.md
@@ -0,0 +1,35 @@
+# UserAdminCreateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**email** | **str** | |
+**name** | **str** | |
+**notify** | **bool** | | [optional]
+**password** | **str** | |
+**quota_size_in_bytes** | **int** | | [optional]
+**should_change_password** | **bool** | | [optional]
+**storage_label** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_admin_create_dto import UserAdminCreateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserAdminCreateDto from a JSON string
+user_admin_create_dto_instance = UserAdminCreateDto.from_json(json)
+# print the JSON string representation of the object
+print(UserAdminCreateDto.to_json())
+
+# convert the object into a dict
+user_admin_create_dto_dict = user_admin_create_dto_instance.to_dict()
+# create an instance of UserAdminCreateDto from a dict
+user_admin_create_dto_from_dict = UserAdminCreateDto.from_dict(user_admin_create_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserAdminDeleteDto.md b/generated/immich/openapi_client/docs/UserAdminDeleteDto.md
new file mode 100644
index 0000000..f8c2724
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserAdminDeleteDto.md
@@ -0,0 +1,29 @@
+# UserAdminDeleteDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**force** | **bool** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_admin_delete_dto import UserAdminDeleteDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserAdminDeleteDto from a JSON string
+user_admin_delete_dto_instance = UserAdminDeleteDto.from_json(json)
+# print the JSON string representation of the object
+print(UserAdminDeleteDto.to_json())
+
+# convert the object into a dict
+user_admin_delete_dto_dict = user_admin_delete_dto_instance.to_dict()
+# create an instance of UserAdminDeleteDto from a dict
+user_admin_delete_dto_from_dict = UserAdminDeleteDto.from_dict(user_admin_delete_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserAdminResponseDto.md b/generated/immich/openapi_client/docs/UserAdminResponseDto.md
new file mode 100644
index 0000000..51e27c4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserAdminResponseDto.md
@@ -0,0 +1,45 @@
+# UserAdminResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**avatar_color** | [**UserAvatarColor**](UserAvatarColor.md) | |
+**created_at** | **datetime** | |
+**deleted_at** | **datetime** | |
+**email** | **str** | |
+**id** | **str** | |
+**is_admin** | **bool** | |
+**license** | [**UserLicense**](UserLicense.md) | |
+**name** | **str** | |
+**oauth_id** | **str** | |
+**profile_changed_at** | **datetime** | |
+**profile_image_path** | **str** | |
+**quota_size_in_bytes** | **int** | |
+**quota_usage_in_bytes** | **int** | |
+**should_change_password** | **bool** | |
+**status** | [**UserStatus**](UserStatus.md) | |
+**storage_label** | **str** | |
+**updated_at** | **datetime** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserAdminResponseDto from a JSON string
+user_admin_response_dto_instance = UserAdminResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(UserAdminResponseDto.to_json())
+
+# convert the object into a dict
+user_admin_response_dto_dict = user_admin_response_dto_instance.to_dict()
+# create an instance of UserAdminResponseDto from a dict
+user_admin_response_dto_from_dict = UserAdminResponseDto.from_dict(user_admin_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserAdminUpdateDto.md b/generated/immich/openapi_client/docs/UserAdminUpdateDto.md
new file mode 100644
index 0000000..8dbdd7b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserAdminUpdateDto.md
@@ -0,0 +1,34 @@
+# UserAdminUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**email** | **str** | | [optional]
+**name** | **str** | | [optional]
+**password** | **str** | | [optional]
+**quota_size_in_bytes** | **int** | | [optional]
+**should_change_password** | **bool** | | [optional]
+**storage_label** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_admin_update_dto import UserAdminUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserAdminUpdateDto from a JSON string
+user_admin_update_dto_instance = UserAdminUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(UserAdminUpdateDto.to_json())
+
+# convert the object into a dict
+user_admin_update_dto_dict = user_admin_update_dto_instance.to_dict()
+# create an instance of UserAdminUpdateDto from a dict
+user_admin_update_dto_from_dict = UserAdminUpdateDto.from_dict(user_admin_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserAvatarColor.md b/generated/immich/openapi_client/docs/UserAvatarColor.md
new file mode 100644
index 0000000..baa19ff
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserAvatarColor.md
@@ -0,0 +1,28 @@
+# UserAvatarColor
+
+
+## Enum
+
+* `PRIMARY` (value: `'primary'`)
+
+* `PINK` (value: `'pink'`)
+
+* `RED` (value: `'red'`)
+
+* `YELLOW` (value: `'yellow'`)
+
+* `BLUE` (value: `'blue'`)
+
+* `GREEN` (value: `'green'`)
+
+* `PURPLE` (value: `'purple'`)
+
+* `ORANGE` (value: `'orange'`)
+
+* `GRAY` (value: `'gray'`)
+
+* `AMBER` (value: `'amber'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserLicense.md b/generated/immich/openapi_client/docs/UserLicense.md
new file mode 100644
index 0000000..728c6c1
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserLicense.md
@@ -0,0 +1,31 @@
+# UserLicense
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**activated_at** | **datetime** | |
+**activation_key** | **str** | |
+**license_key** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_license import UserLicense
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserLicense from a JSON string
+user_license_instance = UserLicense.from_json(json)
+# print the JSON string representation of the object
+print(UserLicense.to_json())
+
+# convert the object into a dict
+user_license_dict = user_license_instance.to_dict()
+# create an instance of UserLicense from a dict
+user_license_from_dict = UserLicense.from_dict(user_license_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserPreferencesResponseDto.md b/generated/immich/openapi_client/docs/UserPreferencesResponseDto.md
new file mode 100644
index 0000000..fdf7503
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserPreferencesResponseDto.md
@@ -0,0 +1,38 @@
+# UserPreferencesResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**avatar** | [**AvatarResponse**](AvatarResponse.md) | |
+**download** | [**DownloadResponse**](DownloadResponse.md) | |
+**email_notifications** | [**EmailNotificationsResponse**](EmailNotificationsResponse.md) | |
+**folders** | [**FoldersResponse**](FoldersResponse.md) | |
+**memories** | [**MemoriesResponse**](MemoriesResponse.md) | |
+**people** | [**PeopleResponse**](PeopleResponse.md) | |
+**purchase** | [**PurchaseResponse**](PurchaseResponse.md) | |
+**ratings** | [**RatingsResponse**](RatingsResponse.md) | |
+**shared_links** | [**SharedLinksResponse**](SharedLinksResponse.md) | |
+**tags** | [**TagsResponse**](TagsResponse.md) | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_preferences_response_dto import UserPreferencesResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserPreferencesResponseDto from a JSON string
+user_preferences_response_dto_instance = UserPreferencesResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(UserPreferencesResponseDto.to_json())
+
+# convert the object into a dict
+user_preferences_response_dto_dict = user_preferences_response_dto_instance.to_dict()
+# create an instance of UserPreferencesResponseDto from a dict
+user_preferences_response_dto_from_dict = UserPreferencesResponseDto.from_dict(user_preferences_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserPreferencesUpdateDto.md b/generated/immich/openapi_client/docs/UserPreferencesUpdateDto.md
new file mode 100644
index 0000000..603b13c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserPreferencesUpdateDto.md
@@ -0,0 +1,38 @@
+# UserPreferencesUpdateDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**avatar** | [**AvatarUpdate**](AvatarUpdate.md) | | [optional]
+**download** | [**DownloadUpdate**](DownloadUpdate.md) | | [optional]
+**email_notifications** | [**EmailNotificationsUpdate**](EmailNotificationsUpdate.md) | | [optional]
+**folders** | [**FoldersUpdate**](FoldersUpdate.md) | | [optional]
+**memories** | [**MemoriesUpdate**](MemoriesUpdate.md) | | [optional]
+**people** | [**PeopleUpdate**](PeopleUpdate.md) | | [optional]
+**purchase** | [**PurchaseUpdate**](PurchaseUpdate.md) | | [optional]
+**ratings** | [**RatingsUpdate**](RatingsUpdate.md) | | [optional]
+**shared_links** | [**SharedLinksUpdate**](SharedLinksUpdate.md) | | [optional]
+**tags** | [**TagsUpdate**](TagsUpdate.md) | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_preferences_update_dto import UserPreferencesUpdateDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserPreferencesUpdateDto from a JSON string
+user_preferences_update_dto_instance = UserPreferencesUpdateDto.from_json(json)
+# print the JSON string representation of the object
+print(UserPreferencesUpdateDto.to_json())
+
+# convert the object into a dict
+user_preferences_update_dto_dict = user_preferences_update_dto_instance.to_dict()
+# create an instance of UserPreferencesUpdateDto from a dict
+user_preferences_update_dto_from_dict = UserPreferencesUpdateDto.from_dict(user_preferences_update_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserResponseDto.md b/generated/immich/openapi_client/docs/UserResponseDto.md
new file mode 100644
index 0000000..c212e9b
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserResponseDto.md
@@ -0,0 +1,34 @@
+# UserResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**avatar_color** | [**UserAvatarColor**](UserAvatarColor.md) | |
+**email** | **str** | |
+**id** | **str** | |
+**name** | **str** | |
+**profile_changed_at** | **datetime** | |
+**profile_image_path** | **str** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserResponseDto from a JSON string
+user_response_dto_instance = UserResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(UserResponseDto.to_json())
+
+# convert the object into a dict
+user_response_dto_dict = user_response_dto_instance.to_dict()
+# create an instance of UserResponseDto from a dict
+user_response_dto_from_dict = UserResponseDto.from_dict(user_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserStatus.md b/generated/immich/openapi_client/docs/UserStatus.md
new file mode 100644
index 0000000..bd4460c
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserStatus.md
@@ -0,0 +1,14 @@
+# UserStatus
+
+
+## Enum
+
+* `ACTIVE` (value: `'active'`)
+
+* `REMOVING` (value: `'removing'`)
+
+* `DELETED` (value: `'deleted'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UserUpdateMeDto.md b/generated/immich/openapi_client/docs/UserUpdateMeDto.md
new file mode 100644
index 0000000..c4aa9d8
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UserUpdateMeDto.md
@@ -0,0 +1,31 @@
+# UserUpdateMeDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**email** | **str** | | [optional]
+**name** | **str** | | [optional]
+**password** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.user_update_me_dto import UserUpdateMeDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of UserUpdateMeDto from a JSON string
+user_update_me_dto_instance = UserUpdateMeDto.from_json(json)
+# print the JSON string representation of the object
+print(UserUpdateMeDto.to_json())
+
+# convert the object into a dict
+user_update_me_dto_dict = user_update_me_dto_instance.to_dict()
+# create an instance of UserUpdateMeDto from a dict
+user_update_me_dto_from_dict = UserUpdateMeDto.from_dict(user_update_me_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/UsersAdminApi.md b/generated/immich/openapi_client/docs/UsersAdminApi.md
new file mode 100644
index 0000000..02e44a4
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UsersAdminApi.md
@@ -0,0 +1,722 @@
+# generated.immich.openapi_client.UsersAdminApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_user_admin**](UsersAdminApi.md#create_user_admin) | **POST** /admin/users |
+[**delete_user_admin**](UsersAdminApi.md#delete_user_admin) | **DELETE** /admin/users/{id} |
+[**get_user_admin**](UsersAdminApi.md#get_user_admin) | **GET** /admin/users/{id} |
+[**get_user_preferences_admin**](UsersAdminApi.md#get_user_preferences_admin) | **GET** /admin/users/{id}/preferences |
+[**restore_user_admin**](UsersAdminApi.md#restore_user_admin) | **POST** /admin/users/{id}/restore |
+[**search_users_admin**](UsersAdminApi.md#search_users_admin) | **GET** /admin/users |
+[**update_user_admin**](UsersAdminApi.md#update_user_admin) | **PUT** /admin/users/{id} |
+[**update_user_preferences_admin**](UsersAdminApi.md#update_user_preferences_admin) | **PUT** /admin/users/{id}/preferences |
+
+
+# **create_user_admin**
+> UserAdminResponseDto create_user_admin(user_admin_create_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_create_dto import UserAdminCreateDto
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ user_admin_create_dto = generated.immich.openapi_client.UserAdminCreateDto() # UserAdminCreateDto |
+
+ try:
+ api_response = api_instance.create_user_admin(user_admin_create_dto)
+ print("The response of UsersAdminApi->create_user_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->create_user_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_admin_create_dto** | [**UserAdminCreateDto**](UserAdminCreateDto.md)| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_user_admin**
+> UserAdminResponseDto delete_user_admin(id, user_admin_delete_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_delete_dto import UserAdminDeleteDto
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ id = 'id_example' # str |
+ user_admin_delete_dto = generated.immich.openapi_client.UserAdminDeleteDto() # UserAdminDeleteDto |
+
+ try:
+ api_response = api_instance.delete_user_admin(id, user_admin_delete_dto)
+ print("The response of UsersAdminApi->delete_user_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->delete_user_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **user_admin_delete_dto** | [**UserAdminDeleteDto**](UserAdminDeleteDto.md)| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_user_admin**
+> UserAdminResponseDto get_user_admin(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_user_admin(id)
+ print("The response of UsersAdminApi->get_user_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->get_user_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_user_preferences_admin**
+> UserPreferencesResponseDto get_user_preferences_admin(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_preferences_response_dto import UserPreferencesResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_user_preferences_admin(id)
+ print("The response of UsersAdminApi->get_user_preferences_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->get_user_preferences_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**UserPreferencesResponseDto**](UserPreferencesResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **restore_user_admin**
+> UserAdminResponseDto restore_user_admin(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.restore_user_admin(id)
+ print("The response of UsersAdminApi->restore_user_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->restore_user_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_users_admin**
+> List[UserAdminResponseDto] search_users_admin(with_deleted=with_deleted)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ with_deleted = True # bool | (optional)
+
+ try:
+ api_response = api_instance.search_users_admin(with_deleted=with_deleted)
+ print("The response of UsersAdminApi->search_users_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->search_users_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **with_deleted** | **bool**| | [optional]
+
+### Return type
+
+[**List[UserAdminResponseDto]**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_user_admin**
+> UserAdminResponseDto update_user_admin(id, user_admin_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.models.user_admin_update_dto import UserAdminUpdateDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ id = 'id_example' # str |
+ user_admin_update_dto = generated.immich.openapi_client.UserAdminUpdateDto() # UserAdminUpdateDto |
+
+ try:
+ api_response = api_instance.update_user_admin(id, user_admin_update_dto)
+ print("The response of UsersAdminApi->update_user_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->update_user_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **user_admin_update_dto** | [**UserAdminUpdateDto**](UserAdminUpdateDto.md)| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_user_preferences_admin**
+> UserPreferencesResponseDto update_user_preferences_admin(id, user_preferences_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersAdminApi(api_client)
+ id = 'id_example' # str |
+ user_preferences_update_dto = generated.immich.openapi_client.UserPreferencesUpdateDto() # UserPreferencesUpdateDto |
+
+ try:
+ api_response = api_instance.update_user_preferences_admin(id, user_preferences_update_dto)
+ print("The response of UsersAdminApi->update_user_preferences_admin:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersAdminApi->update_user_preferences_admin: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **user_preferences_update_dto** | [**UserPreferencesUpdateDto**](UserPreferencesUpdateDto.md)| |
+
+### Return type
+
+[**UserPreferencesResponseDto**](UserPreferencesResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/UsersApi.md b/generated/immich/openapi_client/docs/UsersApi.md
new file mode 100644
index 0000000..8ce4f52
--- /dev/null
+++ b/generated/immich/openapi_client/docs/UsersApi.md
@@ -0,0 +1,1036 @@
+# generated.immich.openapi_client.UsersApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_profile_image**](UsersApi.md#create_profile_image) | **POST** /users/profile-image |
+[**delete_profile_image**](UsersApi.md#delete_profile_image) | **DELETE** /users/profile-image |
+[**delete_user_license**](UsersApi.md#delete_user_license) | **DELETE** /users/me/license |
+[**get_my_preferences**](UsersApi.md#get_my_preferences) | **GET** /users/me/preferences |
+[**get_my_user**](UsersApi.md#get_my_user) | **GET** /users/me |
+[**get_profile_image**](UsersApi.md#get_profile_image) | **GET** /users/{id}/profile-image |
+[**get_user**](UsersApi.md#get_user) | **GET** /users/{id} |
+[**get_user_license**](UsersApi.md#get_user_license) | **GET** /users/me/license |
+[**search_users**](UsersApi.md#search_users) | **GET** /users |
+[**set_user_license**](UsersApi.md#set_user_license) | **PUT** /users/me/license |
+[**update_my_preferences**](UsersApi.md#update_my_preferences) | **PUT** /users/me/preferences |
+[**update_my_user**](UsersApi.md#update_my_user) | **PUT** /users/me |
+
+
+# **create_profile_image**
+> CreateProfileImageResponseDto create_profile_image(file)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.create_profile_image_response_dto import CreateProfileImageResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+ file = None # bytearray |
+
+ try:
+ api_response = api_instance.create_profile_image(file)
+ print("The response of UsersApi->create_profile_image:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->create_profile_image: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **file** | **bytearray**| |
+
+### Return type
+
+[**CreateProfileImageResponseDto**](CreateProfileImageResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_profile_image**
+> delete_profile_image()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+
+ try:
+ api_instance.delete_profile_image()
+ except Exception as e:
+ print("Exception when calling UsersApi->delete_profile_image: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_user_license**
+> delete_user_license()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+
+ try:
+ api_instance.delete_user_license()
+ except Exception as e:
+ print("Exception when calling UsersApi->delete_user_license: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_my_preferences**
+> UserPreferencesResponseDto get_my_preferences()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_preferences_response_dto import UserPreferencesResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+
+ try:
+ api_response = api_instance.get_my_preferences()
+ print("The response of UsersApi->get_my_preferences:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->get_my_preferences: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**UserPreferencesResponseDto**](UserPreferencesResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_my_user**
+> UserAdminResponseDto get_my_user()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+
+ try:
+ api_response = api_instance.get_my_user()
+ print("The response of UsersApi->get_my_user:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->get_my_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_profile_image**
+> bytearray get_profile_image(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_profile_image(id)
+ print("The response of UsersApi->get_profile_image:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->get_profile_image: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/octet-stream
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_user**
+> UserResponseDto get_user(id)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+ id = 'id_example' # str |
+
+ try:
+ api_response = api_instance.get_user(id)
+ print("The response of UsersApi->get_user:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->get_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+
+### Return type
+
+[**UserResponseDto**](UserResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_user_license**
+> LicenseResponseDto get_user_license()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.license_response_dto import LicenseResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+
+ try:
+ api_response = api_instance.get_user_license()
+ print("The response of UsersApi->get_user_license:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->get_user_license: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**LicenseResponseDto**](LicenseResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_users**
+> List[UserResponseDto] search_users()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+
+ try:
+ api_response = api_instance.search_users()
+ print("The response of UsersApi->search_users:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->search_users: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+[**List[UserResponseDto]**](UserResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **set_user_license**
+> LicenseResponseDto set_user_license(license_key_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+ license_key_dto = generated.immich.openapi_client.LicenseKeyDto() # LicenseKeyDto |
+
+ try:
+ api_response = api_instance.set_user_license(license_key_dto)
+ print("The response of UsersApi->set_user_license:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->set_user_license: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **license_key_dto** | [**LicenseKeyDto**](LicenseKeyDto.md)| |
+
+### Return type
+
+[**LicenseResponseDto**](LicenseResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_my_preferences**
+> UserPreferencesResponseDto update_my_preferences(user_preferences_update_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+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.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+ user_preferences_update_dto = generated.immich.openapi_client.UserPreferencesUpdateDto() # UserPreferencesUpdateDto |
+
+ try:
+ api_response = api_instance.update_my_preferences(user_preferences_update_dto)
+ print("The response of UsersApi->update_my_preferences:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->update_my_preferences: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_preferences_update_dto** | [**UserPreferencesUpdateDto**](UserPreferencesUpdateDto.md)| |
+
+### Return type
+
+[**UserPreferencesResponseDto**](UserPreferencesResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **update_my_user**
+> UserAdminResponseDto update_my_user(user_update_me_dto)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+from generated.immich.openapi_client.models.user_update_me_dto import UserUpdateMeDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.UsersApi(api_client)
+ user_update_me_dto = generated.immich.openapi_client.UserUpdateMeDto() # UserUpdateMeDto |
+
+ try:
+ api_response = api_instance.update_my_user(user_update_me_dto)
+ print("The response of UsersApi->update_my_user:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling UsersApi->update_my_user: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_update_me_dto** | [**UserUpdateMeDto**](UserUpdateMeDto.md)| |
+
+### Return type
+
+[**UserAdminResponseDto**](UserAdminResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/docs/ValidateAccessTokenResponseDto.md b/generated/immich/openapi_client/docs/ValidateAccessTokenResponseDto.md
new file mode 100644
index 0000000..3f2b185
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ValidateAccessTokenResponseDto.md
@@ -0,0 +1,29 @@
+# ValidateAccessTokenResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**auth_status** | **bool** | |
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.validate_access_token_response_dto import ValidateAccessTokenResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ValidateAccessTokenResponseDto from a JSON string
+validate_access_token_response_dto_instance = ValidateAccessTokenResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ValidateAccessTokenResponseDto.to_json())
+
+# convert the object into a dict
+validate_access_token_response_dto_dict = validate_access_token_response_dto_instance.to_dict()
+# create an instance of ValidateAccessTokenResponseDto from a dict
+validate_access_token_response_dto_from_dict = ValidateAccessTokenResponseDto.from_dict(validate_access_token_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ValidateLibraryDto.md b/generated/immich/openapi_client/docs/ValidateLibraryDto.md
new file mode 100644
index 0000000..3129a38
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ValidateLibraryDto.md
@@ -0,0 +1,30 @@
+# ValidateLibraryDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**exclusion_patterns** | **List[str]** | | [optional]
+**import_paths** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.validate_library_dto import ValidateLibraryDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ValidateLibraryDto from a JSON string
+validate_library_dto_instance = ValidateLibraryDto.from_json(json)
+# print the JSON string representation of the object
+print(ValidateLibraryDto.to_json())
+
+# convert the object into a dict
+validate_library_dto_dict = validate_library_dto_instance.to_dict()
+# create an instance of ValidateLibraryDto from a dict
+validate_library_dto_from_dict = ValidateLibraryDto.from_dict(validate_library_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ValidateLibraryImportPathResponseDto.md b/generated/immich/openapi_client/docs/ValidateLibraryImportPathResponseDto.md
new file mode 100644
index 0000000..5355cde
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ValidateLibraryImportPathResponseDto.md
@@ -0,0 +1,31 @@
+# ValidateLibraryImportPathResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**import_path** | **str** | |
+**is_valid** | **bool** | | [default to False]
+**message** | **str** | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.validate_library_import_path_response_dto import ValidateLibraryImportPathResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ValidateLibraryImportPathResponseDto from a JSON string
+validate_library_import_path_response_dto_instance = ValidateLibraryImportPathResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ValidateLibraryImportPathResponseDto.to_json())
+
+# convert the object into a dict
+validate_library_import_path_response_dto_dict = validate_library_import_path_response_dto_instance.to_dict()
+# create an instance of ValidateLibraryImportPathResponseDto from a dict
+validate_library_import_path_response_dto_from_dict = ValidateLibraryImportPathResponseDto.from_dict(validate_library_import_path_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ValidateLibraryResponseDto.md b/generated/immich/openapi_client/docs/ValidateLibraryResponseDto.md
new file mode 100644
index 0000000..e4bc460
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ValidateLibraryResponseDto.md
@@ -0,0 +1,29 @@
+# ValidateLibraryResponseDto
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**import_paths** | [**List[ValidateLibraryImportPathResponseDto]**](ValidateLibraryImportPathResponseDto.md) | | [optional]
+
+## Example
+
+```python
+from generated.immich.openapi_client.models.validate_library_response_dto import ValidateLibraryResponseDto
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ValidateLibraryResponseDto from a JSON string
+validate_library_response_dto_instance = ValidateLibraryResponseDto.from_json(json)
+# print the JSON string representation of the object
+print(ValidateLibraryResponseDto.to_json())
+
+# convert the object into a dict
+validate_library_response_dto_dict = validate_library_response_dto_instance.to_dict()
+# create an instance of ValidateLibraryResponseDto from a dict
+validate_library_response_dto_from_dict = ValidateLibraryResponseDto.from_dict(validate_library_response_dto_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/VideoCodec.md b/generated/immich/openapi_client/docs/VideoCodec.md
new file mode 100644
index 0000000..01c5d84
--- /dev/null
+++ b/generated/immich/openapi_client/docs/VideoCodec.md
@@ -0,0 +1,16 @@
+# VideoCodec
+
+
+## Enum
+
+* `H264` (value: `'h264'`)
+
+* `HEVC` (value: `'hevc'`)
+
+* `VP9` (value: `'vp9'`)
+
+* `AV1` (value: `'av1'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/VideoContainer.md b/generated/immich/openapi_client/docs/VideoContainer.md
new file mode 100644
index 0000000..7605bec
--- /dev/null
+++ b/generated/immich/openapi_client/docs/VideoContainer.md
@@ -0,0 +1,16 @@
+# VideoContainer
+
+
+## Enum
+
+* `MOV` (value: `'mov'`)
+
+* `MP4` (value: `'mp4'`)
+
+* `OGG` (value: `'ogg'`)
+
+* `WEBM` (value: `'webm'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/generated/immich/openapi_client/docs/ViewApi.md b/generated/immich/openapi_client/docs/ViewApi.md
new file mode 100644
index 0000000..7d9dc55
--- /dev/null
+++ b/generated/immich/openapi_client/docs/ViewApi.md
@@ -0,0 +1,179 @@
+# generated.immich.openapi_client.ViewApi
+
+All URIs are relative to *https://github.com/api*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_assets_by_original_path**](ViewApi.md#get_assets_by_original_path) | **GET** /view/folder |
+[**get_unique_original_paths**](ViewApi.md#get_unique_original_paths) | **GET** /view/folder/unique-paths |
+
+
+# **get_assets_by_original_path**
+> List[AssetResponseDto] get_assets_by_original_path(path)
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ViewApi(api_client)
+ path = 'path_example' # str |
+
+ try:
+ api_response = api_instance.get_assets_by_original_path(path)
+ print("The response of ViewApi->get_assets_by_original_path:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ViewApi->get_assets_by_original_path: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **path** | **str**| |
+
+### Return type
+
+[**List[AssetResponseDto]**](AssetResponseDto.md)
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_unique_original_paths**
+> List[str] get_unique_original_paths()
+
+### Example
+
+* Api Key Authentication (cookie):
+* Api Key Authentication (api_key):
+* Bearer (JWT) Authentication (bearer):
+
+```python
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.ViewApi(api_client)
+
+ try:
+ api_response = api_instance.get_unique_original_paths()
+ print("The response of ViewApi->get_unique_original_paths:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ViewApi->get_unique_original_paths: %s\n" % e)
+```
+
+
+
+### Parameters
+
+This endpoint does not need any parameter.
+
+### Return type
+
+**List[str]**
+
+### Authorization
+
+[cookie](../README.md#cookie), [api_key](../README.md#api_key), [bearer](../README.md#bearer)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/generated/immich/openapi_client/exceptions.py b/generated/immich/openapi_client/exceptions.py
new file mode 100644
index 0000000..5b29b9b
--- /dev/null
+++ b/generated/immich/openapi_client/exceptions.py
@@ -0,0 +1,216 @@
+# 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 typing import Any, Optional
+from typing_extensions import Self
+
+class OpenApiException(Exception):
+ """The base exception class for all OpenAPIExceptions"""
+
+
+class ApiTypeError(OpenApiException, TypeError):
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
+ key_type=None) -> None:
+ """ Raises an exception for TypeErrors
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list): a list of keys an indices to get to the
+ current_item
+ None if unset
+ valid_classes (tuple): the primitive classes that current item
+ should be an instance of
+ None if unset
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a list
+ None if unset
+ """
+ self.path_to_item = path_to_item
+ self.valid_classes = valid_classes
+ self.key_type = key_type
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiTypeError, self).__init__(full_msg)
+
+
+class ApiValueError(OpenApiException, ValueError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list) the path to the exception in the
+ received_data dict. None if unset
+ """
+
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiValueError, self).__init__(full_msg)
+
+
+class ApiAttributeError(OpenApiException, AttributeError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Raised when an attribute reference or assignment fails.
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiAttributeError, self).__init__(full_msg)
+
+
+class ApiKeyError(OpenApiException, KeyError):
+ def __init__(self, msg, path_to_item=None) -> None:
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiKeyError, self).__init__(full_msg)
+
+
+class ApiException(OpenApiException):
+
+ def __init__(
+ self,
+ status=None,
+ reason=None,
+ http_resp=None,
+ *,
+ body: Optional[str] = None,
+ data: Optional[Any] = None,
+ ) -> None:
+ self.status = status
+ self.reason = reason
+ self.body = body
+ self.data = data
+ self.headers = None
+
+ if http_resp:
+ if self.status is None:
+ self.status = http_resp.status
+ if self.reason is None:
+ self.reason = http_resp.reason
+ if self.body is None:
+ try:
+ self.body = http_resp.data.decode('utf-8')
+ except Exception:
+ pass
+ self.headers = http_resp.getheaders()
+
+ @classmethod
+ def from_response(
+ cls,
+ *,
+ http_resp,
+ body: Optional[str],
+ data: Optional[Any],
+ ) -> Self:
+ if http_resp.status == 400:
+ raise BadRequestException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 401:
+ raise UnauthorizedException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 403:
+ raise ForbiddenException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 404:
+ raise NotFoundException(http_resp=http_resp, body=body, data=data)
+
+ # Added new conditions for 409 and 422
+ if http_resp.status == 409:
+ raise ConflictException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 422:
+ raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data)
+
+ if 500 <= http_resp.status <= 599:
+ raise ServiceException(http_resp=http_resp, body=body, data=data)
+ raise ApiException(http_resp=http_resp, body=body, data=data)
+
+ def __str__(self):
+ """Custom error messages for exception"""
+ error_message = "({0})\n"\
+ "Reason: {1}\n".format(self.status, self.reason)
+ if self.headers:
+ error_message += "HTTP response headers: {0}\n".format(
+ self.headers)
+
+ if self.data or self.body:
+ error_message += "HTTP response body: {0}\n".format(self.data or self.body)
+
+ return error_message
+
+
+class BadRequestException(ApiException):
+ pass
+
+
+class NotFoundException(ApiException):
+ pass
+
+
+class UnauthorizedException(ApiException):
+ pass
+
+
+class ForbiddenException(ApiException):
+ pass
+
+
+class ServiceException(ApiException):
+ pass
+
+
+class ConflictException(ApiException):
+ """Exception for HTTP 409 Conflict."""
+ pass
+
+
+class UnprocessableEntityException(ApiException):
+ """Exception for HTTP 422 Unprocessable Entity."""
+ pass
+
+
+def render_path(path_to_item):
+ """Returns a string representation of a path"""
+ result = ""
+ for pth in path_to_item:
+ if isinstance(pth, int):
+ result += "[{0}]".format(pth)
+ else:
+ result += "['{0}']".format(pth)
+ return result
diff --git a/generated/immich/openapi_client/models/__init__.py b/generated/immich/openapi_client/models/__init__.py
new file mode 100644
index 0000000..882f88d
--- /dev/null
+++ b/generated/immich/openapi_client/models/__init__.py
@@ -0,0 +1,264 @@
+# coding: utf-8
+
+# flake8: noqa
+"""
+ 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
+
+
+# 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
+from generated.immich.openapi_client.models.add_users_dto import AddUsersDto
+from generated.immich.openapi_client.models.admin_onboarding_update_dto import AdminOnboardingUpdateDto
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.models.album_statistics_response_dto import AlbumStatisticsResponseDto
+from generated.immich.openapi_client.models.album_user_add_dto import AlbumUserAddDto
+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.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_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_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
+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_order import AssetOrder
+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.audio_codec import AudioCodec
+from generated.immich.openapi_client.models.avatar_response import AvatarResponse
+from generated.immich.openapi_client.models.avatar_update import AvatarUpdate
+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.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.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.database_backup_config import DatabaseBackupConfig
+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_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.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.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_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.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.on_this_day_dto import OnThisDayDto
+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.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
+from generated.immich.openapi_client.models.people_update_dto import PeopleUpdateDto
+from generated.immich.openapi_client.models.people_update_item import PeopleUpdateItem
+from generated.immich.openapi_client.models.permission import Permission
+from generated.immich.openapi_client.models.person_create_dto import PersonCreateDto
+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.places_response_dto import PlacesResponseDto
+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.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.reverse_geocoding_state_response_dto import ReverseGeocodingStateResponseDto
+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
+from generated.immich.openapi_client.models.search_explore_response_dto import SearchExploreResponseDto
+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_suggestion_type import SearchSuggestionType
+from generated.immich.openapi_client.models.server_about_response_dto import ServerAboutResponseDto
+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_response_dto import SessionResponseDto
+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_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
+from generated.immich.openapi_client.models.shared_links_update import SharedLinksUpdate
+from generated.immich.openapi_client.models.sign_up_dto import SignUpDto
+from generated.immich.openapi_client.models.smart_search_dto import SmartSearchDto
+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.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_asset_delete_v1 import SyncAssetDeleteV1
+from generated.immich.openapi_client.models.sync_asset_exif_v1 import SyncAssetExifV1
+from generated.immich.openapi_client.models.sync_asset_v1 import SyncAssetV1
+from generated.immich.openapi_client.models.sync_entity_type import SyncEntityType
+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_request_type import SyncRequestType
+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_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_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_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
+from generated.immich.openapi_client.models.system_config_library_watch_dto import SystemConfigLibraryWatchDto
+from generated.immich.openapi_client.models.system_config_logging_dto import SystemConfigLoggingDto
+from generated.immich.openapi_client.models.system_config_machine_learning_dto import SystemConfigMachineLearningDto
+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_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
+from generated.immich.openapi_client.models.system_config_reverse_geocoding_dto import SystemConfigReverseGeocodingDto
+from generated.immich.openapi_client.models.system_config_server_dto import SystemConfigServerDto
+from generated.immich.openapi_client.models.system_config_smtp_dto import SystemConfigSmtpDto
+from generated.immich.openapi_client.models.system_config_smtp_transport_dto import SystemConfigSmtpTransportDto
+from generated.immich.openapi_client.models.system_config_storage_template_dto import SystemConfigStorageTemplateDto
+from generated.immich.openapi_client.models.system_config_template_emails_dto import SystemConfigTemplateEmailsDto
+from generated.immich.openapi_client.models.system_config_template_storage_option_dto import SystemConfigTemplateStorageOptionDto
+from generated.immich.openapi_client.models.system_config_templates_dto import SystemConfigTemplatesDto
+from generated.immich.openapi_client.models.system_config_theme_dto import SystemConfigThemeDto
+from generated.immich.openapi_client.models.system_config_trash_dto import SystemConfigTrashDto
+from generated.immich.openapi_client.models.system_config_user_dto import SystemConfigUserDto
+from generated.immich.openapi_client.models.tag_bulk_assets_dto import TagBulkAssetsDto
+from generated.immich.openapi_client.models.tag_bulk_assets_response_dto import TagBulkAssetsResponseDto
+from generated.immich.openapi_client.models.tag_create_dto import TagCreateDto
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+from generated.immich.openapi_client.models.tag_update_dto import TagUpdateDto
+from generated.immich.openapi_client.models.tag_upsert_dto import TagUpsertDto
+from generated.immich.openapi_client.models.tags_response import TagsResponse
+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.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
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+from generated.immich.openapi_client.models.update_album_dto import UpdateAlbumDto
+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
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+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_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
+from generated.immich.openapi_client.models.user_status import UserStatus
+from generated.immich.openapi_client.models.user_update_me_dto import UserUpdateMeDto
+from generated.immich.openapi_client.models.validate_access_token_response_dto import ValidateAccessTokenResponseDto
+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.video_codec import VideoCodec
+from generated.immich.openapi_client.models.video_container import VideoContainer
diff --git a/generated/immich/openapi_client/models/activity_create_dto.py b/generated/immich/openapi_client/models/activity_create_dto.py
new file mode 100644
index 0000000..5e28b28
--- /dev/null
+++ b/generated/immich/openapi_client/models/activity_create_dto.py
@@ -0,0 +1,94 @@
+# 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.reaction_type import ReactionType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ActivityCreateDto(BaseModel):
+ """
+ ActivityCreateDto
+ """ # noqa: E501
+ album_id: StrictStr = Field(alias="albumId")
+ asset_id: Optional[StrictStr] = Field(default=None, alias="assetId")
+ comment: Optional[StrictStr] = None
+ type: ReactionType
+ __properties: ClassVar[List[str]] = ["albumId", "assetId", "comment", "type"]
+
+ 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 ActivityCreateDto 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 ActivityCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumId": obj.get("albumId"),
+ "assetId": obj.get("assetId"),
+ "comment": obj.get("comment"),
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/activity_response_dto.py b/generated/immich/openapi_client/models/activity_response_dto.py
new file mode 100644
index 0000000..c5447e5
--- /dev/null
+++ b/generated/immich/openapi_client/models/activity_response_dto.py
@@ -0,0 +1,113 @@
+# 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 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
+from typing_extensions import Self
+
+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
+ type: ReactionType
+ user: UserResponseDto
+ __properties: ClassVar[List[str]] = ["assetId", "comment", "createdAt", "id", "type", "user"]
+
+ 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 ActivityResponseDto 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 user
+ if self.user:
+ _dict['user'] = self.user.to_dict()
+ # set to None if asset_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.asset_id is None and "asset_id" in self.model_fields_set:
+ _dict['assetId'] = None
+
+ # set to None if comment (nullable) is None
+ # and model_fields_set contains the field
+ if self.comment is None and "comment" in self.model_fields_set:
+ _dict['comment'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ActivityResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetId": obj.get("assetId"),
+ "comment": obj.get("comment"),
+ "createdAt": obj.get("createdAt"),
+ "id": obj.get("id"),
+ "type": obj.get("type"),
+ "user": UserResponseDto.from_dict(obj["user"]) if obj.get("user") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/activity_statistics_response_dto.py b/generated/immich/openapi_client/models/activity_statistics_response_dto.py
new file mode 100644
index 0000000..460a375
--- /dev/null
+++ b/generated/immich/openapi_client/models/activity_statistics_response_dto.py
@@ -0,0 +1,87 @@
+# 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 ActivityStatisticsResponseDto(BaseModel):
+ """
+ ActivityStatisticsResponseDto
+ """ # noqa: E501
+ comments: StrictInt
+ __properties: ClassVar[List[str]] = ["comments"]
+
+ 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 ActivityStatisticsResponseDto 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 ActivityStatisticsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "comments": obj.get("comments")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/add_users_dto.py b/generated/immich/openapi_client/models/add_users_dto.py
new file mode 100644
index 0000000..1d77341
--- /dev/null
+++ b/generated/immich/openapi_client/models/add_users_dto.py
@@ -0,0 +1,96 @@
+# 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 typing_extensions import Annotated
+from generated.immich.openapi_client.models.album_user_add_dto import AlbumUserAddDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AddUsersDto(BaseModel):
+ """
+ AddUsersDto
+ """ # noqa: E501
+ album_users: Annotated[List[AlbumUserAddDto], Field(min_length=1)] = Field(alias="albumUsers")
+ __properties: ClassVar[List[str]] = ["albumUsers"]
+
+ 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 AddUsersDto 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 album_users (list)
+ _items = []
+ if self.album_users:
+ for _item_album_users in self.album_users:
+ if _item_album_users:
+ _items.append(_item_album_users.to_dict())
+ _dict['albumUsers'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AddUsersDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumUsers": [AlbumUserAddDto.from_dict(_item) for _item in obj["albumUsers"]] if obj.get("albumUsers") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/admin_onboarding_update_dto.py b/generated/immich/openapi_client/models/admin_onboarding_update_dto.py
new file mode 100644
index 0000000..37b9bba
--- /dev/null
+++ b/generated/immich/openapi_client/models/admin_onboarding_update_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AdminOnboardingUpdateDto(BaseModel):
+ """
+ AdminOnboardingUpdateDto
+ """ # noqa: E501
+ is_onboarded: StrictBool = Field(alias="isOnboarded")
+ __properties: ClassVar[List[str]] = ["isOnboarded"]
+
+ 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 AdminOnboardingUpdateDto 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 AdminOnboardingUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "isOnboarded": obj.get("isOnboarded")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/album_response_dto.py b/generated/immich/openapi_client/models/album_response_dto.py
new file mode 100644
index 0000000..23b5c48
--- /dev/null
+++ b/generated/immich/openapi_client/models/album_response_dto.py
@@ -0,0 +1,148 @@
+# 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, StrictBool, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+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 typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ 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"]
+
+ 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 AlbumResponseDto 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 album_users (list)
+ _items = []
+ if self.album_users:
+ for _item_album_users in self.album_users:
+ 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)
+ _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()
+ # 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:
+ _dict['albumThumbnailAssetId'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AlbumResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumName": obj.get("albumName"),
+ "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,
+ "createdAt": obj.get("createdAt"),
+ "description": obj.get("description"),
+ "endDate": obj.get("endDate"),
+ "hasSharedLink": obj.get("hasSharedLink"),
+ "id": obj.get("id"),
+ "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")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/album_statistics_response_dto.py b/generated/immich/openapi_client/models/album_statistics_response_dto.py
new file mode 100644
index 0000000..09300d9
--- /dev/null
+++ b/generated/immich/openapi_client/models/album_statistics_response_dto.py
@@ -0,0 +1,91 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AlbumStatisticsResponseDto(BaseModel):
+ """
+ AlbumStatisticsResponseDto
+ """ # noqa: E501
+ not_shared: StrictInt = Field(alias="notShared")
+ owned: StrictInt
+ shared: StrictInt
+ __properties: ClassVar[List[str]] = ["notShared", "owned", "shared"]
+
+ 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 AlbumStatisticsResponseDto 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 AlbumStatisticsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "notShared": obj.get("notShared"),
+ "owned": obj.get("owned"),
+ "shared": obj.get("shared")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/album_user_add_dto.py b/generated/immich/openapi_client/models/album_user_add_dto.py
new file mode 100644
index 0000000..ae684de
--- /dev/null
+++ b/generated/immich/openapi_client/models/album_user_add_dto.py
@@ -0,0 +1,90 @@
+# 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.album_user_role import AlbumUserRole
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AlbumUserAddDto(BaseModel):
+ """
+ AlbumUserAddDto
+ """ # noqa: E501
+ role: Optional[AlbumUserRole] = None
+ user_id: StrictStr = Field(alias="userId")
+ __properties: ClassVar[List[str]] = ["role", "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 AlbumUserAddDto 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 AlbumUserAddDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "role": obj.get("role"),
+ "userId": obj.get("userId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/album_user_create_dto.py b/generated/immich/openapi_client/models/album_user_create_dto.py
new file mode 100644
index 0000000..d6d6cd1
--- /dev/null
+++ b/generated/immich/openapi_client/models/album_user_create_dto.py
@@ -0,0 +1,90 @@
+# 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 generated.immich.openapi_client.models.album_user_role import AlbumUserRole
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AlbumUserCreateDto(BaseModel):
+ """
+ AlbumUserCreateDto
+ """ # noqa: E501
+ role: AlbumUserRole
+ user_id: StrictStr = Field(alias="userId")
+ __properties: ClassVar[List[str]] = ["role", "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 AlbumUserCreateDto 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 AlbumUserCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "role": obj.get("role"),
+ "userId": obj.get("userId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/album_user_response_dto.py b/generated/immich/openapi_client/models/album_user_response_dto.py
new file mode 100644
index 0000000..4a32288
--- /dev/null
+++ b/generated/immich/openapi_client/models/album_user_response_dto.py
@@ -0,0 +1,94 @@
+# 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.album_user_role import AlbumUserRole
+from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AlbumUserResponseDto(BaseModel):
+ """
+ AlbumUserResponseDto
+ """ # noqa: E501
+ role: AlbumUserRole
+ user: UserResponseDto
+ __properties: ClassVar[List[str]] = ["role", "user"]
+
+ 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 AlbumUserResponseDto 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 user
+ if self.user:
+ _dict['user'] = self.user.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AlbumUserResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "role": obj.get("role"),
+ "user": UserResponseDto.from_dict(obj["user"]) if obj.get("user") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/album_user_role.py b/generated/immich/openapi_client/models/album_user_role.py
new file mode 100644
index 0000000..65ce57d
--- /dev/null
+++ b/generated/immich/openapi_client/models/album_user_role.py
@@ -0,0 +1,37 @@
+# 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 AlbumUserRole(str, Enum):
+ """
+ AlbumUserRole
+ """
+
+ """
+ allowed enum values
+ """
+ EDITOR = 'editor'
+ VIEWER = 'viewer'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AlbumUserRole from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/all_job_status_response_dto.py b/generated/immich/openapi_client/models/all_job_status_response_dto.py
new file mode 100644
index 0000000..ba5eefe
--- /dev/null
+++ b/generated/immich/openapi_client/models/all_job_status_response_dto.py
@@ -0,0 +1,161 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/api_key_create_dto.py b/generated/immich/openapi_client/models/api_key_create_dto.py
new file mode 100644
index 0000000..5a6ab88
--- /dev/null
+++ b/generated/immich/openapi_client/models/api_key_create_dto.py
@@ -0,0 +1,91 @@
+# 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 typing_extensions import Annotated
+from generated.immich.openapi_client.models.permission import Permission
+from typing import Optional, Set
+from typing_extensions import Self
+
+class APIKeyCreateDto(BaseModel):
+ """
+ APIKeyCreateDto
+ """ # noqa: E501
+ name: Optional[StrictStr] = None
+ permissions: Annotated[List[Permission], Field(min_length=1)]
+ __properties: ClassVar[List[str]] = ["name", "permissions"]
+
+ 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 APIKeyCreateDto 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 APIKeyCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name"),
+ "permissions": obj.get("permissions")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/api_key_create_response_dto.py b/generated/immich/openapi_client/models/api_key_create_response_dto.py
new file mode 100644
index 0000000..4be2d17
--- /dev/null
+++ b/generated/immich/openapi_client/models/api_key_create_response_dto.py
@@ -0,0 +1,93 @@
+# 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 generated.immich.openapi_client.models.api_key_response_dto import APIKeyResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class APIKeyCreateResponseDto(BaseModel):
+ """
+ APIKeyCreateResponseDto
+ """ # noqa: E501
+ api_key: APIKeyResponseDto = Field(alias="apiKey")
+ secret: StrictStr
+ __properties: ClassVar[List[str]] = ["apiKey", "secret"]
+
+ 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 APIKeyCreateResponseDto 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 api_key
+ if self.api_key:
+ _dict['apiKey'] = self.api_key.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of APIKeyCreateResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "apiKey": APIKeyResponseDto.from_dict(obj["apiKey"]) if obj.get("apiKey") is not None else None,
+ "secret": obj.get("secret")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/api_key_response_dto.py b/generated/immich/openapi_client/models/api_key_response_dto.py
new file mode 100644
index 0000000..493dd84
--- /dev/null
+++ b/generated/immich/openapi_client/models/api_key_response_dto.py
@@ -0,0 +1,97 @@
+# 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 generated.immich.openapi_client.models.permission import Permission
+from typing import Optional, Set
+from typing_extensions import Self
+
+class APIKeyResponseDto(BaseModel):
+ """
+ APIKeyResponseDto
+ """ # noqa: E501
+ created_at: datetime = Field(alias="createdAt")
+ id: StrictStr
+ name: StrictStr
+ permissions: List[Permission]
+ updated_at: datetime = Field(alias="updatedAt")
+ __properties: ClassVar[List[str]] = ["createdAt", "id", "name", "permissions", "updatedAt"]
+
+ 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 APIKeyResponseDto 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 APIKeyResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "createdAt": obj.get("createdAt"),
+ "id": obj.get("id"),
+ "name": obj.get("name"),
+ "permissions": obj.get("permissions"),
+ "updatedAt": obj.get("updatedAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/api_key_update_dto.py b/generated/immich/openapi_client/models/api_key_update_dto.py
new file mode 100644
index 0000000..cef964b
--- /dev/null
+++ b/generated/immich/openapi_client/models/api_key_update_dto.py
@@ -0,0 +1,87 @@
+# 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 APIKeyUpdateDto(BaseModel):
+ """
+ APIKeyUpdateDto
+ """ # noqa: E501
+ name: StrictStr
+ __properties: ClassVar[List[str]] = ["name"]
+
+ 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 APIKeyUpdateDto 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 APIKeyUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_bulk_delete_dto.py b/generated/immich/openapi_client/models/asset_bulk_delete_dto.py
new file mode 100644
index 0000000..1bfd7dd
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_bulk_delete_dto.py
@@ -0,0 +1,89 @@
+# 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetBulkDeleteDto(BaseModel):
+ """
+ AssetBulkDeleteDto
+ """ # noqa: E501
+ force: Optional[StrictBool] = None
+ ids: List[StrictStr]
+ __properties: ClassVar[List[str]] = ["force", "ids"]
+
+ 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 AssetBulkDeleteDto 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 AssetBulkDeleteDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "force": obj.get("force"),
+ "ids": obj.get("ids")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_bulk_update_dto.py b/generated/immich/openapi_client/models/asset_bulk_update_dto.py
new file mode 100644
index 0000000..4929671
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_bulk_update_dto.py
@@ -0,0 +1,107 @@
+# 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, 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 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"]
+
+ 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 AssetBulkUpdateDto 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,
+ )
+ # 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
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AssetBulkUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "dateTimeOriginal": obj.get("dateTimeOriginal"),
+ "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")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_bulk_upload_check_dto.py b/generated/immich/openapi_client/models/asset_bulk_upload_check_dto.py
new file mode 100644
index 0000000..feacdf1
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_bulk_upload_check_dto.py
@@ -0,0 +1,95 @@
+# 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.asset_bulk_upload_check_item import AssetBulkUploadCheckItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetBulkUploadCheckDto(BaseModel):
+ """
+ AssetBulkUploadCheckDto
+ """ # noqa: E501
+ assets: List[AssetBulkUploadCheckItem]
+ __properties: ClassVar[List[str]] = ["assets"]
+
+ 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 AssetBulkUploadCheckDto 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 assets (list)
+ _items = []
+ if self.assets:
+ for _item_assets in self.assets:
+ if _item_assets:
+ _items.append(_item_assets.to_dict())
+ _dict['assets'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AssetBulkUploadCheckDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assets": [AssetBulkUploadCheckItem.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_bulk_upload_check_item.py b/generated/immich/openapi_client/models/asset_bulk_upload_check_item.py
new file mode 100644
index 0000000..73c743b
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_bulk_upload_check_item.py
@@ -0,0 +1,89 @@
+# 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 AssetBulkUploadCheckItem(BaseModel):
+ """
+ AssetBulkUploadCheckItem
+ """ # noqa: E501
+ checksum: StrictStr = Field(description="base64 or hex encoded sha1 hash")
+ id: StrictStr
+ __properties: ClassVar[List[str]] = ["checksum", "id"]
+
+ 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 AssetBulkUploadCheckItem 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 AssetBulkUploadCheckItem 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"),
+ "id": obj.get("id")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_bulk_upload_check_response_dto.py b/generated/immich/openapi_client/models/asset_bulk_upload_check_response_dto.py
new file mode 100644
index 0000000..eb85233
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_bulk_upload_check_response_dto.py
@@ -0,0 +1,95 @@
+# 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.asset_bulk_upload_check_result import AssetBulkUploadCheckResult
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetBulkUploadCheckResponseDto(BaseModel):
+ """
+ AssetBulkUploadCheckResponseDto
+ """ # noqa: E501
+ results: List[AssetBulkUploadCheckResult]
+ __properties: ClassVar[List[str]] = ["results"]
+
+ 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 AssetBulkUploadCheckResponseDto 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 results (list)
+ _items = []
+ if self.results:
+ for _item_results in self.results:
+ if _item_results:
+ _items.append(_item_results.to_dict())
+ _dict['results'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AssetBulkUploadCheckResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "results": [AssetBulkUploadCheckResult.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_bulk_upload_check_result.py b/generated/immich/openapi_client/models/asset_bulk_upload_check_result.py
new file mode 100644
index 0000000..82e3bb0
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_bulk_upload_check_result.py
@@ -0,0 +1,112 @@
+# 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, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+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
+ __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"""
+ 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')")
+ 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 AssetBulkUploadCheckResult 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 AssetBulkUploadCheckResult from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "action": obj.get("action"),
+ "assetId": obj.get("assetId"),
+ "id": obj.get("id"),
+ "isTrashed": obj.get("isTrashed"),
+ "reason": obj.get("reason")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_delta_sync_dto.py b/generated/immich/openapi_client/models/asset_delta_sync_dto.py
new file mode 100644
index 0000000..33f31cf
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_delta_sync_dto.py
@@ -0,0 +1,90 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/asset_delta_sync_response_dto.py b/generated/immich/openapi_client/models/asset_delta_sync_response_dto.py
new file mode 100644
index 0000000..24919a9
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_delta_sync_response_dto.py
@@ -0,0 +1,99 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/asset_face_create_dto.py b/generated/immich/openapi_client/models/asset_face_create_dto.py
new file mode 100644
index 0000000..90eec80
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_face_create_dto.py
@@ -0,0 +1,101 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+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
+ __properties: ClassVar[List[str]] = ["assetId", "height", "imageHeight", "imageWidth", "personId", "width", "x", "y"]
+
+ 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 AssetFaceCreateDto 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 AssetFaceCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetId": obj.get("assetId"),
+ "height": obj.get("height"),
+ "imageHeight": obj.get("imageHeight"),
+ "imageWidth": obj.get("imageWidth"),
+ "personId": obj.get("personId"),
+ "width": obj.get("width"),
+ "x": obj.get("x"),
+ "y": obj.get("y")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_face_delete_dto.py b/generated/immich/openapi_client/models/asset_face_delete_dto.py
new file mode 100644
index 0000000..4f38747
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_face_delete_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetFaceDeleteDto(BaseModel):
+ """
+ AssetFaceDeleteDto
+ """ # noqa: E501
+ force: StrictBool
+ __properties: ClassVar[List[str]] = ["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 AssetFaceDeleteDto 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 AssetFaceDeleteDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "force": obj.get("force")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_face_response_dto.py b/generated/immich/openapi_client/models/asset_face_response_dto.py
new file mode 100644
index 0000000..d5f4ed9
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_face_response_dto.py
@@ -0,0 +1,113 @@
+# 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.person_response_dto import PersonResponseDto
+from generated.immich.openapi_client.models.source_type import SourceType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetFaceResponseDto(BaseModel):
+ """
+ AssetFaceResponseDto
+ """ # 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")
+ 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"]
+
+ 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 AssetFaceResponseDto 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 person
+ if self.person:
+ _dict['person'] = self.person.to_dict()
+ # set to None if person (nullable) is None
+ # and model_fields_set contains the field
+ if self.person is None and "person" in self.model_fields_set:
+ _dict['person'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AssetFaceResponseDto 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"),
+ "person": PersonResponseDto.from_dict(obj["person"]) if obj.get("person") is not None else None,
+ "sourceType": obj.get("sourceType")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_face_update_dto.py b/generated/immich/openapi_client/models/asset_face_update_dto.py
new file mode 100644
index 0000000..e762894
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_face_update_dto.py
@@ -0,0 +1,95 @@
+# 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.asset_face_update_item import AssetFaceUpdateItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetFaceUpdateDto(BaseModel):
+ """
+ AssetFaceUpdateDto
+ """ # noqa: E501
+ data: List[AssetFaceUpdateItem]
+ __properties: ClassVar[List[str]] = ["data"]
+
+ 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 AssetFaceUpdateDto 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 data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AssetFaceUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": [AssetFaceUpdateItem.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_face_update_item.py b/generated/immich/openapi_client/models/asset_face_update_item.py
new file mode 100644
index 0000000..6a48b39
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_face_update_item.py
@@ -0,0 +1,89 @@
+# 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 AssetFaceUpdateItem(BaseModel):
+ """
+ AssetFaceUpdateItem
+ """ # noqa: E501
+ asset_id: StrictStr = Field(alias="assetId")
+ person_id: StrictStr = Field(alias="personId")
+ __properties: ClassVar[List[str]] = ["assetId", "personId"]
+
+ 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 AssetFaceUpdateItem 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 AssetFaceUpdateItem from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetId": obj.get("assetId"),
+ "personId": obj.get("personId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_face_without_person_response_dto.py b/generated/immich/openapi_client/models/asset_face_without_person_response_dto.py
new file mode 100644
index 0000000..a354846
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_face_without_person_response_dto.py
@@ -0,0 +1,102 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/asset_full_sync_dto.py b/generated/immich/openapi_client/models/asset_full_sync_dto.py
new file mode 100644
index 0000000..fb5f20e
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_full_sync_dto.py
@@ -0,0 +1,95 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/asset_ids_dto.py b/generated/immich/openapi_client/models/asset_ids_dto.py
new file mode 100644
index 0000000..e4114bc
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_ids_dto.py
@@ -0,0 +1,87 @@
+# 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 AssetIdsDto(BaseModel):
+ """
+ AssetIdsDto
+ """ # noqa: E501
+ asset_ids: List[StrictStr] = Field(alias="assetIds")
+ __properties: ClassVar[List[str]] = ["assetIds"]
+
+ 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 AssetIdsDto 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 AssetIdsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetIds": obj.get("assetIds")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_ids_response_dto.py b/generated/immich/openapi_client/models/asset_ids_response_dto.py
new file mode 100644
index 0000000..963f353
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_ids_response_dto.py
@@ -0,0 +1,101 @@
+# 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, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetIdsResponseDto(BaseModel):
+ """
+ AssetIdsResponseDto
+ """ # noqa: E501
+ asset_id: StrictStr = Field(alias="assetId")
+ error: Optional[StrictStr] = None
+ success: StrictBool
+ __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')")
+ 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 AssetIdsResponseDto 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 AssetIdsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetId": obj.get("assetId"),
+ "error": obj.get("error"),
+ "success": obj.get("success")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_job_name.py b/generated/immich/openapi_client/models/asset_job_name.py
new file mode 100644
index 0000000..dd68d68
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_job_name.py
@@ -0,0 +1,39 @@
+# 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 AssetJobName(str, Enum):
+ """
+ AssetJobName
+ """
+
+ """
+ allowed enum values
+ """
+ REFRESH_MINUS_FACES = 'refresh-faces'
+ REFRESH_MINUS_METADATA = 'refresh-metadata'
+ REGENERATE_MINUS_THUMBNAIL = 'regenerate-thumbnail'
+ TRANSCODE_MINUS_VIDEO = 'transcode-video'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AssetJobName from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/asset_jobs_dto.py b/generated/immich/openapi_client/models/asset_jobs_dto.py
new file mode 100644
index 0000000..7c49540
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_jobs_dto.py
@@ -0,0 +1,90 @@
+# 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 generated.immich.openapi_client.models.asset_job_name import AssetJobName
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetJobsDto(BaseModel):
+ """
+ AssetJobsDto
+ """ # noqa: E501
+ asset_ids: List[StrictStr] = Field(alias="assetIds")
+ name: AssetJobName
+ __properties: ClassVar[List[str]] = ["assetIds", "name"]
+
+ 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 AssetJobsDto 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 AssetJobsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetIds": obj.get("assetIds"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_media_response_dto.py b/generated/immich/openapi_client/models/asset_media_response_dto.py
new file mode 100644
index 0000000..c811e3e
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_media_response_dto.py
@@ -0,0 +1,90 @@
+# 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.asset_media_status import AssetMediaStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetMediaResponseDto(BaseModel):
+ """
+ AssetMediaResponseDto
+ """ # noqa: E501
+ id: StrictStr
+ status: AssetMediaStatus
+ __properties: ClassVar[List[str]] = ["id", "status"]
+
+ 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 AssetMediaResponseDto 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 AssetMediaResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "status": obj.get("status")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_media_size.py b/generated/immich/openapi_client/models/asset_media_size.py
new file mode 100644
index 0000000..9b65be8
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_media_size.py
@@ -0,0 +1,38 @@
+# 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 AssetMediaSize(str, Enum):
+ """
+ AssetMediaSize
+ """
+
+ """
+ allowed enum values
+ """
+ FULLSIZE = 'fullsize'
+ PREVIEW = 'preview'
+ THUMBNAIL = 'thumbnail'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AssetMediaSize from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/asset_media_status.py b/generated/immich/openapi_client/models/asset_media_status.py
new file mode 100644
index 0000000..3c132cd
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_media_status.py
@@ -0,0 +1,38 @@
+# 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 AssetMediaStatus(str, Enum):
+ """
+ AssetMediaStatus
+ """
+
+ """
+ allowed enum values
+ """
+ CREATED = 'created'
+ REPLACED = 'replaced'
+ DUPLICATE = 'duplicate'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AssetMediaStatus from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/asset_order.py b/generated/immich/openapi_client/models/asset_order.py
new file mode 100644
index 0000000..67d5a52
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_order.py
@@ -0,0 +1,37 @@
+# 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 AssetOrder(str, Enum):
+ """
+ AssetOrder
+ """
+
+ """
+ allowed enum values
+ """
+ ASC = 'asc'
+ DESC = 'desc'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AssetOrder from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/asset_response_dto.py b/generated/immich/openapi_client/models/asset_response_dto.py
new file mode 100644
index 0000000..7e6fad0
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_response_dto.py
@@ -0,0 +1,208 @@
+# 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, 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 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.exif_response_dto import ExifResponseDto
+from generated.immich.openapi_client.models.person_with_faces_response_dto import PersonWithFacesResponseDto
+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
+from typing_extensions import Self
+
+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
+ 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")
+ 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")
+ stack: Optional[AssetStackResponseDto] = None
+ tags: Optional[List[TagResponseDto]] = None
+ thumbhash: Optional[StrictStr]
+ 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"]
+
+ 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 AssetResponseDto 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 exif_info
+ if self.exif_info:
+ _dict['exifInfo'] = self.exif_info.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of owner
+ if self.owner:
+ _dict['owner'] = self.owner.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in people (list)
+ _items = []
+ if self.people:
+ for _item_people in self.people:
+ if _item_people:
+ _items.append(_item_people.to_dict())
+ _dict['people'] = _items
+ # override the default output from pydantic by calling `to_dict()` of stack
+ if self.stack:
+ _dict['stack'] = self.stack.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in tags (list)
+ _items = []
+ if self.tags:
+ for _item_tags in self.tags:
+ 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 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:
+ _dict['libraryId'] = None
+
+ # set to None if live_photo_video_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.live_photo_video_id is None and "live_photo_video_id" in self.model_fields_set:
+ _dict['livePhotoVideoId'] = None
+
+ # set to None if stack (nullable) is None
+ # and model_fields_set contains the field
+ if self.stack is None and "stack" in self.model_fields_set:
+ _dict['stack'] = None
+
+ # set to None if thumbhash (nullable) is None
+ # and model_fields_set contains the field
+ if self.thumbhash is None and "thumbhash" in self.model_fields_set:
+ _dict['thumbhash'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AssetResponseDto 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"),
+ "deviceAssetId": obj.get("deviceAssetId"),
+ "deviceId": obj.get("deviceId"),
+ "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"),
+ "id": obj.get("id"),
+ "isArchived": obj.get("isArchived"),
+ "isFavorite": obj.get("isFavorite"),
+ "isOffline": obj.get("isOffline"),
+ "isTrashed": obj.get("isTrashed"),
+ "libraryId": obj.get("libraryId"),
+ "livePhotoVideoId": obj.get("livePhotoVideoId"),
+ "localDateTime": obj.get("localDateTime"),
+ "originalFileName": obj.get("originalFileName"),
+ "originalMimeType": obj.get("originalMimeType"),
+ "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,
+ "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")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_stack_response_dto.py b/generated/immich/openapi_client/models/asset_stack_response_dto.py
new file mode 100644
index 0000000..fda1886
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_stack_response_dto.py
@@ -0,0 +1,91 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AssetStackResponseDto(BaseModel):
+ """
+ AssetStackResponseDto
+ """ # noqa: E501
+ asset_count: StrictInt = Field(alias="assetCount")
+ id: StrictStr
+ primary_asset_id: StrictStr = Field(alias="primaryAssetId")
+ __properties: ClassVar[List[str]] = ["assetCount", "id", "primaryAssetId"]
+
+ 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 AssetStackResponseDto 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 AssetStackResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetCount": obj.get("assetCount"),
+ "id": obj.get("id"),
+ "primaryAssetId": obj.get("primaryAssetId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_stats_response_dto.py b/generated/immich/openapi_client/models/asset_stats_response_dto.py
new file mode 100644
index 0000000..bdd9825
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_stats_response_dto.py
@@ -0,0 +1,91 @@
+# 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 AssetStatsResponseDto(BaseModel):
+ """
+ AssetStatsResponseDto
+ """ # noqa: E501
+ images: StrictInt
+ total: StrictInt
+ videos: StrictInt
+ __properties: ClassVar[List[str]] = ["images", "total", "videos"]
+
+ 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 AssetStatsResponseDto 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 AssetStatsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "images": obj.get("images"),
+ "total": obj.get("total"),
+ "videos": obj.get("videos")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/asset_type_enum.py b/generated/immich/openapi_client/models/asset_type_enum.py
new file mode 100644
index 0000000..b825950
--- /dev/null
+++ b/generated/immich/openapi_client/models/asset_type_enum.py
@@ -0,0 +1,39 @@
+# 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 AssetTypeEnum(str, Enum):
+ """
+ AssetTypeEnum
+ """
+
+ """
+ allowed enum values
+ """
+ IMAGE = 'IMAGE'
+ VIDEO = 'VIDEO'
+ AUDIO = 'AUDIO'
+ OTHER = 'OTHER'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AssetTypeEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/audio_codec.py b/generated/immich/openapi_client/models/audio_codec.py
new file mode 100644
index 0000000..3991ab9
--- /dev/null
+++ b/generated/immich/openapi_client/models/audio_codec.py
@@ -0,0 +1,39 @@
+# 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 AudioCodec(str, Enum):
+ """
+ AudioCodec
+ """
+
+ """
+ allowed enum values
+ """
+ MP3 = 'mp3'
+ AAC = 'aac'
+ LIBOPUS = 'libopus'
+ PCM_S16LE = 'pcm_s16le'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AudioCodec from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/avatar_response.py b/generated/immich/openapi_client/models/avatar_response.py
new file mode 100644
index 0000000..72f1d41
--- /dev/null
+++ b/generated/immich/openapi_client/models/avatar_response.py
@@ -0,0 +1,88 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/avatar_update.py b/generated/immich/openapi_client/models/avatar_update.py
new file mode 100644
index 0000000..cb7457e
--- /dev/null
+++ b/generated/immich/openapi_client/models/avatar_update.py
@@ -0,0 +1,88 @@
+# 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, Optional
+from generated.immich.openapi_client.models.user_avatar_color import UserAvatarColor
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AvatarUpdate(BaseModel):
+ """
+ AvatarUpdate
+ """ # noqa: E501
+ color: Optional[UserAvatarColor] = None
+ __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 AvatarUpdate 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 AvatarUpdate 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
+
+
diff --git a/generated/immich/openapi_client/models/bulk_id_response_dto.py b/generated/immich/openapi_client/models/bulk_id_response_dto.py
new file mode 100644
index 0000000..80776c9
--- /dev/null
+++ b/generated/immich/openapi_client/models/bulk_id_response_dto.py
@@ -0,0 +1,101 @@
+# 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, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class BulkIdResponseDto(BaseModel):
+ """
+ BulkIdResponseDto
+ """ # noqa: E501
+ error: Optional[StrictStr] = None
+ id: StrictStr
+ success: StrictBool
+ __properties: ClassVar[List[str]] = ["error", "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')")
+ 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 BulkIdResponseDto 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 BulkIdResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "error": obj.get("error"),
+ "id": obj.get("id"),
+ "success": obj.get("success")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/bulk_ids_dto.py b/generated/immich/openapi_client/models/bulk_ids_dto.py
new file mode 100644
index 0000000..f5727f4
--- /dev/null
+++ b/generated/immich/openapi_client/models/bulk_ids_dto.py
@@ -0,0 +1,87 @@
+# 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 BulkIdsDto(BaseModel):
+ """
+ BulkIdsDto
+ """ # noqa: E501
+ ids: List[StrictStr]
+ __properties: ClassVar[List[str]] = ["ids"]
+
+ 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 BulkIdsDto 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 BulkIdsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "ids": obj.get("ids")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/change_password_dto.py b/generated/immich/openapi_client/models/change_password_dto.py
new file mode 100644
index 0000000..ed5f2b2
--- /dev/null
+++ b/generated/immich/openapi_client/models/change_password_dto.py
@@ -0,0 +1,90 @@
+# 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 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"]
+
+ 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 ChangePasswordDto 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 ChangePasswordDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "newPassword": obj.get("newPassword"),
+ "password": obj.get("password")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/check_existing_assets_dto.py b/generated/immich/openapi_client/models/check_existing_assets_dto.py
new file mode 100644
index 0000000..03d92ae
--- /dev/null
+++ b/generated/immich/openapi_client/models/check_existing_assets_dto.py
@@ -0,0 +1,90 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/check_existing_assets_response_dto.py b/generated/immich/openapi_client/models/check_existing_assets_response_dto.py
new file mode 100644
index 0000000..65b4069
--- /dev/null
+++ b/generated/immich/openapi_client/models/check_existing_assets_response_dto.py
@@ -0,0 +1,87 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/clip_config.py b/generated/immich/openapi_client/models/clip_config.py
new file mode 100644
index 0000000..c6717d0
--- /dev/null
+++ b/generated/immich/openapi_client/models/clip_config.py
@@ -0,0 +1,89 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class CLIPConfig(BaseModel):
+ """
+ CLIPConfig
+ """ # noqa: E501
+ enabled: StrictBool
+ model_name: StrictStr = Field(alias="modelName")
+ __properties: ClassVar[List[str]] = ["enabled", "modelName"]
+
+ 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 CLIPConfig 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 CLIPConfig from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "modelName": obj.get("modelName")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/colorspace.py b/generated/immich/openapi_client/models/colorspace.py
new file mode 100644
index 0000000..0acec34
--- /dev/null
+++ b/generated/immich/openapi_client/models/colorspace.py
@@ -0,0 +1,37 @@
+# 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 Colorspace(str, Enum):
+ """
+ Colorspace
+ """
+
+ """
+ allowed enum values
+ """
+ SRGB = 'srgb'
+ P3 = 'p3'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of Colorspace from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/cq_mode.py b/generated/immich/openapi_client/models/cq_mode.py
new file mode 100644
index 0000000..5991cce
--- /dev/null
+++ b/generated/immich/openapi_client/models/cq_mode.py
@@ -0,0 +1,38 @@
+# 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 CQMode(str, Enum):
+ """
+ CQMode
+ """
+
+ """
+ allowed enum values
+ """
+ AUTO = 'auto'
+ CQP = 'cqp'
+ ICQ = 'icq'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of CQMode from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/create_album_dto.py b/generated/immich/openapi_client/models/create_album_dto.py
new file mode 100644
index 0000000..cfc60ab
--- /dev/null
+++ b/generated/immich/openapi_client/models/create_album_dto.py
@@ -0,0 +1,101 @@
+# 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.album_user_create_dto import AlbumUserCreateDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+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
+ __properties: ClassVar[List[str]] = ["albumName", "albumUsers", "assetIds", "description"]
+
+ 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 CreateAlbumDto 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 album_users (list)
+ _items = []
+ if self.album_users:
+ for _item_album_users in self.album_users:
+ if _item_album_users:
+ _items.append(_item_album_users.to_dict())
+ _dict['albumUsers'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CreateAlbumDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumName": obj.get("albumName"),
+ "albumUsers": [AlbumUserCreateDto.from_dict(_item) for _item in obj["albumUsers"]] if obj.get("albumUsers") is not None else None,
+ "assetIds": obj.get("assetIds"),
+ "description": obj.get("description")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/create_library_dto.py b/generated/immich/openapi_client/models/create_library_dto.py
new file mode 100644
index 0000000..b2412b4
--- /dev/null
+++ b/generated/immich/openapi_client/models/create_library_dto.py
@@ -0,0 +1,94 @@
+# 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 typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ __properties: ClassVar[List[str]] = ["exclusionPatterns", "importPaths", "name", "ownerId"]
+
+ 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 CreateLibraryDto 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 CreateLibraryDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "exclusionPatterns": obj.get("exclusionPatterns"),
+ "importPaths": obj.get("importPaths"),
+ "name": obj.get("name"),
+ "ownerId": obj.get("ownerId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/create_profile_image_response_dto.py b/generated/immich/openapi_client/models/create_profile_image_response_dto.py
new file mode 100644
index 0000000..5f8cebc
--- /dev/null
+++ b/generated/immich/openapi_client/models/create_profile_image_response_dto.py
@@ -0,0 +1,92 @@
+# 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 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")
+ __properties: ClassVar[List[str]] = ["profileChangedAt", "profileImagePath", "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 CreateProfileImageResponseDto 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 CreateProfileImageResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "profileChangedAt": obj.get("profileChangedAt"),
+ "profileImagePath": obj.get("profileImagePath"),
+ "userId": obj.get("userId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/database_backup_config.py b/generated/immich/openapi_client/models/database_backup_config.py
new file mode 100644
index 0000000..999fb16
--- /dev/null
+++ b/generated/immich/openapi_client/models/database_backup_config.py
@@ -0,0 +1,92 @@
+# 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, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ __properties: ClassVar[List[str]] = ["cronExpression", "enabled", "keepLastAmount"]
+
+ 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 DatabaseBackupConfig 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 DatabaseBackupConfig from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "cronExpression": obj.get("cronExpression"),
+ "enabled": obj.get("enabled"),
+ "keepLastAmount": obj.get("keepLastAmount")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/download_archive_info.py b/generated/immich/openapi_client/models/download_archive_info.py
new file mode 100644
index 0000000..3c0421a
--- /dev/null
+++ b/generated/immich/openapi_client/models/download_archive_info.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DownloadArchiveInfo(BaseModel):
+ """
+ DownloadArchiveInfo
+ """ # noqa: E501
+ asset_ids: List[StrictStr] = Field(alias="assetIds")
+ size: StrictInt
+ __properties: ClassVar[List[str]] = ["assetIds", "size"]
+
+ 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 DownloadArchiveInfo 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 DownloadArchiveInfo from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetIds": obj.get("assetIds"),
+ "size": obj.get("size")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/download_info_dto.py b/generated/immich/openapi_client/models/download_info_dto.py
new file mode 100644
index 0000000..8a99c36
--- /dev/null
+++ b/generated/immich/openapi_client/models/download_info_dto.py
@@ -0,0 +1,94 @@
+# 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 typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ __properties: ClassVar[List[str]] = ["albumId", "archiveSize", "assetIds", "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 DownloadInfoDto 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 DownloadInfoDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumId": obj.get("albumId"),
+ "archiveSize": obj.get("archiveSize"),
+ "assetIds": obj.get("assetIds"),
+ "userId": obj.get("userId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/download_response.py b/generated/immich/openapi_client/models/download_response.py
new file mode 100644
index 0000000..c874a6d
--- /dev/null
+++ b/generated/immich/openapi_client/models/download_response.py
@@ -0,0 +1,89 @@
+# 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, StrictInt
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DownloadResponse(BaseModel):
+ """
+ DownloadResponse
+ """ # noqa: E501
+ archive_size: StrictInt = Field(alias="archiveSize")
+ include_embedded_videos: StrictBool = Field(alias="includeEmbeddedVideos")
+ __properties: ClassVar[List[str]] = ["archiveSize", "includeEmbeddedVideos"]
+
+ 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 DownloadResponse 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 DownloadResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "archiveSize": obj.get("archiveSize"),
+ "includeEmbeddedVideos": obj.get("includeEmbeddedVideos") if obj.get("includeEmbeddedVideos") is not None else False
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/download_response_dto.py b/generated/immich/openapi_client/models/download_response_dto.py
new file mode 100644
index 0000000..0ee0793
--- /dev/null
+++ b/generated/immich/openapi_client/models/download_response_dto.py
@@ -0,0 +1,97 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from generated.immich.openapi_client.models.download_archive_info import DownloadArchiveInfo
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DownloadResponseDto(BaseModel):
+ """
+ DownloadResponseDto
+ """ # noqa: E501
+ archives: List[DownloadArchiveInfo]
+ total_size: StrictInt = Field(alias="totalSize")
+ __properties: ClassVar[List[str]] = ["archives", "totalSize"]
+
+ 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 DownloadResponseDto 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 archives (list)
+ _items = []
+ if self.archives:
+ for _item_archives in self.archives:
+ if _item_archives:
+ _items.append(_item_archives.to_dict())
+ _dict['archives'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of DownloadResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "archives": [DownloadArchiveInfo.from_dict(_item) for _item in obj["archives"]] if obj.get("archives") is not None else None,
+ "totalSize": obj.get("totalSize")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/download_update.py b/generated/immich/openapi_client/models/download_update.py
new file mode 100644
index 0000000..0f1ad72
--- /dev/null
+++ b/generated/immich/openapi_client/models/download_update.py
@@ -0,0 +1,90 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ __properties: ClassVar[List[str]] = ["archiveSize", "includeEmbeddedVideos"]
+
+ 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 DownloadUpdate 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 DownloadUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "archiveSize": obj.get("archiveSize"),
+ "includeEmbeddedVideos": obj.get("includeEmbeddedVideos")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/duplicate_detection_config.py b/generated/immich/openapi_client/models/duplicate_detection_config.py
new file mode 100644
index 0000000..6b21676
--- /dev/null
+++ b/generated/immich/openapi_client/models/duplicate_detection_config.py
@@ -0,0 +1,90 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ __properties: ClassVar[List[str]] = ["enabled", "maxDistance"]
+
+ 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 DuplicateDetectionConfig 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 DuplicateDetectionConfig from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "maxDistance": obj.get("maxDistance")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/duplicate_response_dto.py b/generated/immich/openapi_client/models/duplicate_response_dto.py
new file mode 100644
index 0000000..22c4a79
--- /dev/null
+++ b/generated/immich/openapi_client/models/duplicate_response_dto.py
@@ -0,0 +1,97 @@
+# 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 generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DuplicateResponseDto(BaseModel):
+ """
+ DuplicateResponseDto
+ """ # noqa: E501
+ assets: List[AssetResponseDto]
+ duplicate_id: StrictStr = Field(alias="duplicateId")
+ __properties: ClassVar[List[str]] = ["assets", "duplicateId"]
+
+ 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 DuplicateResponseDto 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 assets (list)
+ _items = []
+ if self.assets:
+ for _item_assets in self.assets:
+ if _item_assets:
+ _items.append(_item_assets.to_dict())
+ _dict['assets'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of DuplicateResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _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")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/email_notifications_response.py b/generated/immich/openapi_client/models/email_notifications_response.py
new file mode 100644
index 0000000..81f39ec
--- /dev/null
+++ b/generated/immich/openapi_client/models/email_notifications_response.py
@@ -0,0 +1,91 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class EmailNotificationsResponse(BaseModel):
+ """
+ EmailNotificationsResponse
+ """ # noqa: E501
+ album_invite: StrictBool = Field(alias="albumInvite")
+ album_update: StrictBool = Field(alias="albumUpdate")
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["albumInvite", "albumUpdate", "enabled"]
+
+ 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 EmailNotificationsResponse 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 EmailNotificationsResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumInvite": obj.get("albumInvite"),
+ "albumUpdate": obj.get("albumUpdate"),
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/email_notifications_update.py b/generated/immich/openapi_client/models/email_notifications_update.py
new file mode 100644
index 0000000..a1c82e1
--- /dev/null
+++ b/generated/immich/openapi_client/models/email_notifications_update.py
@@ -0,0 +1,91 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+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
+ __properties: ClassVar[List[str]] = ["albumInvite", "albumUpdate", "enabled"]
+
+ 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 EmailNotificationsUpdate 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 EmailNotificationsUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumInvite": obj.get("albumInvite"),
+ "albumUpdate": obj.get("albumUpdate"),
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/exif_response_dto.py b/generated/immich/openapi_client/models/exif_response_dto.py
new file mode 100644
index 0000000..4ac310c
--- /dev/null
+++ b/generated/immich/openapi_client/models/exif_response_dto.py
@@ -0,0 +1,240 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ExifResponseDto(BaseModel):
+ """
+ ExifResponseDto
+ """ # 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")
+ __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(
+ 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 ExifResponseDto 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,
+ )
+ # set to None if city (nullable) is None
+ # and model_fields_set contains the field
+ if self.city is None and "city" in self.model_fields_set:
+ _dict['city'] = None
+
+ # set to None if country (nullable) is None
+ # and model_fields_set contains the field
+ if self.country is None and "country" in self.model_fields_set:
+ _dict['country'] = None
+
+ # set to None if date_time_original (nullable) is None
+ # and model_fields_set contains the field
+ if self.date_time_original is None and "date_time_original" in self.model_fields_set:
+ _dict['dateTimeOriginal'] = None
+
+ # set to None if description (nullable) is None
+ # and model_fields_set contains the field
+ if self.description is None and "description" in self.model_fields_set:
+ _dict['description'] = None
+
+ # set to None if exif_image_height (nullable) is None
+ # and model_fields_set contains the field
+ if self.exif_image_height is None and "exif_image_height" in self.model_fields_set:
+ _dict['exifImageHeight'] = None
+
+ # set to None if exif_image_width (nullable) is None
+ # and model_fields_set contains the field
+ if self.exif_image_width is None and "exif_image_width" in self.model_fields_set:
+ _dict['exifImageWidth'] = None
+
+ # set to None if exposure_time (nullable) is None
+ # and model_fields_set contains the field
+ if self.exposure_time is None and "exposure_time" in self.model_fields_set:
+ _dict['exposureTime'] = None
+
+ # set to None if f_number (nullable) is None
+ # and model_fields_set contains the field
+ if self.f_number is None and "f_number" in self.model_fields_set:
+ _dict['fNumber'] = None
+
+ # set to None if file_size_in_byte (nullable) is None
+ # and model_fields_set contains the field
+ if self.file_size_in_byte is None and "file_size_in_byte" in self.model_fields_set:
+ _dict['fileSizeInByte'] = None
+
+ # set to None if focal_length (nullable) is None
+ # and model_fields_set contains the field
+ if self.focal_length is None and "focal_length" in self.model_fields_set:
+ _dict['focalLength'] = None
+
+ # set to None if iso (nullable) is None
+ # and model_fields_set contains the field
+ if self.iso is None and "iso" in self.model_fields_set:
+ _dict['iso'] = None
+
+ # set to None if latitude (nullable) is None
+ # and model_fields_set contains the field
+ if self.latitude is None and "latitude" in self.model_fields_set:
+ _dict['latitude'] = None
+
+ # set to None if lens_model (nullable) is None
+ # and model_fields_set contains the field
+ if self.lens_model is None and "lens_model" in self.model_fields_set:
+ _dict['lensModel'] = None
+
+ # set to None if longitude (nullable) is None
+ # and model_fields_set contains the field
+ if self.longitude is None and "longitude" in self.model_fields_set:
+ _dict['longitude'] = None
+
+ # set to None if make (nullable) is None
+ # and model_fields_set contains the field
+ if self.make is None and "make" in self.model_fields_set:
+ _dict['make'] = None
+
+ # set to None if model (nullable) is None
+ # and model_fields_set contains the field
+ if self.model is None and "model" in self.model_fields_set:
+ _dict['model'] = None
+
+ # set to None if modify_date (nullable) is None
+ # and model_fields_set contains the field
+ if self.modify_date is None and "modify_date" in self.model_fields_set:
+ _dict['modifyDate'] = None
+
+ # set to None if orientation (nullable) is None
+ # and model_fields_set contains the field
+ if self.orientation is None and "orientation" in self.model_fields_set:
+ _dict['orientation'] = None
+
+ # set to None if projection_type (nullable) is None
+ # and model_fields_set contains the field
+ if self.projection_type is None and "projection_type" in self.model_fields_set:
+ _dict['projectionType'] = 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
+
+ # set to None if state (nullable) is None
+ # and model_fields_set contains the field
+ if self.state is None and "state" in self.model_fields_set:
+ _dict['state'] = None
+
+ # set to None if time_zone (nullable) is None
+ # and model_fields_set contains the field
+ if self.time_zone is None and "time_zone" in self.model_fields_set:
+ _dict['timeZone'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ExifResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "city": obj.get("city"),
+ "country": obj.get("country"),
+ "dateTimeOriginal": obj.get("dateTimeOriginal"),
+ "description": obj.get("description"),
+ "exifImageHeight": obj.get("exifImageHeight"),
+ "exifImageWidth": obj.get("exifImageWidth"),
+ "exposureTime": obj.get("exposureTime"),
+ "fNumber": obj.get("fNumber"),
+ "fileSizeInByte": obj.get("fileSizeInByte"),
+ "focalLength": obj.get("focalLength"),
+ "iso": obj.get("iso"),
+ "latitude": obj.get("latitude"),
+ "lensModel": obj.get("lensModel"),
+ "longitude": obj.get("longitude"),
+ "make": obj.get("make"),
+ "model": obj.get("model"),
+ "modifyDate": obj.get("modifyDate"),
+ "orientation": obj.get("orientation"),
+ "projectionType": obj.get("projectionType"),
+ "rating": obj.get("rating"),
+ "state": obj.get("state"),
+ "timeZone": obj.get("timeZone")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/face_dto.py b/generated/immich/openapi_client/models/face_dto.py
new file mode 100644
index 0000000..8461fc1
--- /dev/null
+++ b/generated/immich/openapi_client/models/face_dto.py
@@ -0,0 +1,87 @@
+# 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 FaceDto(BaseModel):
+ """
+ FaceDto
+ """ # noqa: E501
+ id: StrictStr
+ __properties: ClassVar[List[str]] = ["id"]
+
+ 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 FaceDto 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 FaceDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/facial_recognition_config.py b/generated/immich/openapi_client/models/facial_recognition_config.py
new file mode 100644
index 0000000..9ec93e0
--- /dev/null
+++ b/generated/immich/openapi_client/models/facial_recognition_config.py
@@ -0,0 +1,96 @@
+# 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, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ __properties: ClassVar[List[str]] = ["enabled", "maxDistance", "minFaces", "minScore", "modelName"]
+
+ 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 FacialRecognitionConfig 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 FacialRecognitionConfig from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "maxDistance": obj.get("maxDistance"),
+ "minFaces": obj.get("minFaces"),
+ "minScore": obj.get("minScore"),
+ "modelName": obj.get("modelName")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/file_checksum_dto.py b/generated/immich/openapi_client/models/file_checksum_dto.py
new file mode 100644
index 0000000..520f7a4
--- /dev/null
+++ b/generated/immich/openapi_client/models/file_checksum_dto.py
@@ -0,0 +1,87 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/file_checksum_response_dto.py b/generated/immich/openapi_client/models/file_checksum_response_dto.py
new file mode 100644
index 0000000..66e1441
--- /dev/null
+++ b/generated/immich/openapi_client/models/file_checksum_response_dto.py
@@ -0,0 +1,89 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/file_report_dto.py b/generated/immich/openapi_client/models/file_report_dto.py
new file mode 100644
index 0000000..a851fb4
--- /dev/null
+++ b/generated/immich/openapi_client/models/file_report_dto.py
@@ -0,0 +1,97 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/file_report_fix_dto.py b/generated/immich/openapi_client/models/file_report_fix_dto.py
new file mode 100644
index 0000000..ddb9c3a
--- /dev/null
+++ b/generated/immich/openapi_client/models/file_report_fix_dto.py
@@ -0,0 +1,95 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/file_report_item_dto.py b/generated/immich/openapi_client/models/file_report_item_dto.py
new file mode 100644
index 0000000..e520b6c
--- /dev/null
+++ b/generated/immich/openapi_client/models/file_report_item_dto.py
@@ -0,0 +1,97 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/folders_response.py b/generated/immich/openapi_client/models/folders_response.py
new file mode 100644
index 0000000..db6f198
--- /dev/null
+++ b/generated/immich/openapi_client/models/folders_response.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class FoldersResponse(BaseModel):
+ """
+ FoldersResponse
+ """ # noqa: E501
+ enabled: StrictBool
+ sidebar_web: StrictBool = Field(alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 FoldersResponse 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 FoldersResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ 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
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/folders_update.py b/generated/immich/openapi_client/models/folders_update.py
new file mode 100644
index 0000000..9903054
--- /dev/null
+++ b/generated/immich/openapi_client/models/folders_update.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class FoldersUpdate(BaseModel):
+ """
+ FoldersUpdate
+ """ # noqa: E501
+ enabled: Optional[StrictBool] = None
+ sidebar_web: Optional[StrictBool] = Field(default=None, alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 FoldersUpdate 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 FoldersUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "sidebarWeb": obj.get("sidebarWeb")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/image_format.py b/generated/immich/openapi_client/models/image_format.py
new file mode 100644
index 0000000..c5ddb40
--- /dev/null
+++ b/generated/immich/openapi_client/models/image_format.py
@@ -0,0 +1,37 @@
+# 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 ImageFormat(str, Enum):
+ """
+ ImageFormat
+ """
+
+ """
+ allowed enum values
+ """
+ JPEG = 'jpeg'
+ WEBP = 'webp'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ImageFormat from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/job_command.py b/generated/immich/openapi_client/models/job_command.py
new file mode 100644
index 0000000..c60f75c
--- /dev/null
+++ b/generated/immich/openapi_client/models/job_command.py
@@ -0,0 +1,40 @@
+# 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))
+
+
diff --git a/generated/immich/openapi_client/models/job_command_dto.py b/generated/immich/openapi_client/models/job_command_dto.py
new file mode 100644
index 0000000..50cd4d2
--- /dev/null
+++ b/generated/immich/openapi_client/models/job_command_dto.py
@@ -0,0 +1,90 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/job_counts_dto.py b/generated/immich/openapi_client/models/job_counts_dto.py
new file mode 100644
index 0000000..da9d202
--- /dev/null
+++ b/generated/immich/openapi_client/models/job_counts_dto.py
@@ -0,0 +1,97 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/job_create_dto.py b/generated/immich/openapi_client/models/job_create_dto.py
new file mode 100644
index 0000000..66cc923
--- /dev/null
+++ b/generated/immich/openapi_client/models/job_create_dto.py
@@ -0,0 +1,88 @@
+# 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.manual_job_name import ManualJobName
+from typing import Optional, Set
+from typing_extensions import Self
+
+class JobCreateDto(BaseModel):
+ """
+ JobCreateDto
+ """ # noqa: E501
+ name: ManualJobName
+ __properties: ClassVar[List[str]] = ["name"]
+
+ 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 JobCreateDto 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 JobCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/job_name.py b/generated/immich/openapi_client/models/job_name.py
new file mode 100644
index 0000000..276f6bf
--- /dev/null
+++ b/generated/immich/openapi_client/models/job_name.py
@@ -0,0 +1,50 @@
+# 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 JobName(str, Enum):
+ """
+ JobName
+ """
+
+ """
+ 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'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of JobName from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/job_settings_dto.py b/generated/immich/openapi_client/models/job_settings_dto.py
new file mode 100644
index 0000000..00a7b5c
--- /dev/null
+++ b/generated/immich/openapi_client/models/job_settings_dto.py
@@ -0,0 +1,88 @@
+# 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 typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class JobSettingsDto(BaseModel):
+ """
+ JobSettingsDto
+ """ # noqa: E501
+ concurrency: Annotated[int, Field(strict=True, ge=1)]
+ __properties: ClassVar[List[str]] = ["concurrency"]
+
+ 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 JobSettingsDto 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 JobSettingsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "concurrency": obj.get("concurrency")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/job_status_dto.py b/generated/immich/openapi_client/models/job_status_dto.py
new file mode 100644
index 0000000..306ff06
--- /dev/null
+++ b/generated/immich/openapi_client/models/job_status_dto.py
@@ -0,0 +1,97 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/library_response_dto.py b/generated/immich/openapi_client/models/library_response_dto.py
new file mode 100644
index 0000000..fc10b60
--- /dev/null
+++ b/generated/immich/openapi_client/models/library_response_dto.py
@@ -0,0 +1,109 @@
+# 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, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+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")
+ __properties: ClassVar[List[str]] = ["assetCount", "createdAt", "exclusionPatterns", "id", "importPaths", "name", "ownerId", "refreshedAt", "updatedAt"]
+
+ 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 LibraryResponseDto 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,
+ )
+ # set to None if refreshed_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.refreshed_at is None and "refreshed_at" in self.model_fields_set:
+ _dict['refreshedAt'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of LibraryResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetCount": obj.get("assetCount"),
+ "createdAt": obj.get("createdAt"),
+ "exclusionPatterns": obj.get("exclusionPatterns"),
+ "id": obj.get("id"),
+ "importPaths": obj.get("importPaths"),
+ "name": obj.get("name"),
+ "ownerId": obj.get("ownerId"),
+ "refreshedAt": obj.get("refreshedAt"),
+ "updatedAt": obj.get("updatedAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/library_stats_response_dto.py b/generated/immich/openapi_client/models/library_stats_response_dto.py
new file mode 100644
index 0000000..fdffca0
--- /dev/null
+++ b/generated/immich/openapi_client/models/library_stats_response_dto.py
@@ -0,0 +1,93 @@
+# 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 LibraryStatsResponseDto(BaseModel):
+ """
+ LibraryStatsResponseDto
+ """ # noqa: E501
+ photos: StrictInt
+ total: StrictInt
+ usage: StrictInt
+ videos: StrictInt
+ __properties: ClassVar[List[str]] = ["photos", "total", "usage", "videos"]
+
+ 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 LibraryStatsResponseDto 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 LibraryStatsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ 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
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/license_key_dto.py b/generated/immich/openapi_client/models/license_key_dto.py
new file mode 100644
index 0000000..3943019
--- /dev/null
+++ b/generated/immich/openapi_client/models/license_key_dto.py
@@ -0,0 +1,97 @@
+# 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, 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 LicenseKeyDto(BaseModel):
+ """
+ LicenseKeyDto
+ """ # noqa: E501
+ activation_key: StrictStr = Field(alias="activationKey")
+ license_key: Annotated[str, Field(strict=True)] = Field(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}/")
+ 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 LicenseKeyDto 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 LicenseKeyDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "activationKey": obj.get("activationKey"),
+ "licenseKey": obj.get("licenseKey")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/license_response_dto.py b/generated/immich/openapi_client/models/license_response_dto.py
new file mode 100644
index 0000000..105122d
--- /dev/null
+++ b/generated/immich/openapi_client/models/license_response_dto.py
@@ -0,0 +1,100 @@
+# 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
+
+
diff --git a/generated/immich/openapi_client/models/log_level.py b/generated/immich/openapi_client/models/log_level.py
new file mode 100644
index 0000000..9629ec3
--- /dev/null
+++ b/generated/immich/openapi_client/models/log_level.py
@@ -0,0 +1,41 @@
+# 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 LogLevel(str, Enum):
+ """
+ LogLevel
+ """
+
+ """
+ allowed enum values
+ """
+ VERBOSE = 'verbose'
+ DEBUG = 'debug'
+ LOG = 'log'
+ WARN = 'warn'
+ ERROR = 'error'
+ FATAL = 'fatal'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of LogLevel from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/login_credential_dto.py b/generated/immich/openapi_client/models/login_credential_dto.py
new file mode 100644
index 0000000..cdd30b1
--- /dev/null
+++ b/generated/immich/openapi_client/models/login_credential_dto.py
@@ -0,0 +1,89 @@
+# 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 LoginCredentialDto(BaseModel):
+ """
+ LoginCredentialDto
+ """ # noqa: E501
+ email: StrictStr
+ password: StrictStr
+ __properties: ClassVar[List[str]] = ["email", "password"]
+
+ 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 LoginCredentialDto 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 LoginCredentialDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "email": obj.get("email"),
+ "password": obj.get("password")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/login_response_dto.py b/generated/immich/openapi_client/models/login_response_dto.py
new file mode 100644
index 0000000..a201b98
--- /dev/null
+++ b/generated/immich/openapi_client/models/login_response_dto.py
@@ -0,0 +1,99 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+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"]
+
+ 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 LoginResponseDto 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 LoginResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accessToken": obj.get("accessToken"),
+ "isAdmin": obj.get("isAdmin"),
+ "name": obj.get("name"),
+ "profileImagePath": obj.get("profileImagePath"),
+ "shouldChangePassword": obj.get("shouldChangePassword"),
+ "userEmail": obj.get("userEmail"),
+ "userId": obj.get("userId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/logout_response_dto.py b/generated/immich/openapi_client/models/logout_response_dto.py
new file mode 100644
index 0000000..48c18a4
--- /dev/null
+++ b/generated/immich/openapi_client/models/logout_response_dto.py
@@ -0,0 +1,89 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class LogoutResponseDto(BaseModel):
+ """
+ LogoutResponseDto
+ """ # noqa: E501
+ redirect_uri: StrictStr = Field(alias="redirectUri")
+ successful: StrictBool
+ __properties: ClassVar[List[str]] = ["redirectUri", "successful"]
+
+ 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 LogoutResponseDto 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 LogoutResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "redirectUri": obj.get("redirectUri"),
+ "successful": obj.get("successful")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/manual_job_name.py b/generated/immich/openapi_client/models/manual_job_name.py
new file mode 100644
index 0000000..ff6be37
--- /dev/null
+++ b/generated/immich/openapi_client/models/manual_job_name.py
@@ -0,0 +1,41 @@
+# 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 ManualJobName(str, Enum):
+ """
+ ManualJobName
+ """
+
+ """
+ allowed enum values
+ """
+ PERSON_MINUS_CLEANUP = 'person-cleanup'
+ TAG_MINUS_CLEANUP = 'tag-cleanup'
+ USER_MINUS_CLEANUP = 'user-cleanup'
+ MEMORY_MINUS_CLEANUP = 'memory-cleanup'
+ MEMORY_MINUS_CREATE = 'memory-create'
+ BACKUP_MINUS_DATABASE = 'backup-database'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ManualJobName from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/map_marker_response_dto.py b/generated/immich/openapi_client/models/map_marker_response_dto.py
new file mode 100644
index 0000000..39b74f1
--- /dev/null
+++ b/generated/immich/openapi_client/models/map_marker_response_dto.py
@@ -0,0 +1,112 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing import Optional, Set
+from typing_extensions import Self
+
+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]
+ __properties: ClassVar[List[str]] = ["city", "country", "id", "lat", "lon", "state"]
+
+ 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 MapMarkerResponseDto 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,
+ )
+ # set to None if city (nullable) is None
+ # and model_fields_set contains the field
+ if self.city is None and "city" in self.model_fields_set:
+ _dict['city'] = None
+
+ # set to None if country (nullable) is None
+ # and model_fields_set contains the field
+ if self.country is None and "country" in self.model_fields_set:
+ _dict['country'] = None
+
+ # set to None if state (nullable) is None
+ # and model_fields_set contains the field
+ if self.state is None and "state" in self.model_fields_set:
+ _dict['state'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MapMarkerResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "city": obj.get("city"),
+ "country": obj.get("country"),
+ "id": obj.get("id"),
+ "lat": obj.get("lat"),
+ "lon": obj.get("lon"),
+ "state": obj.get("state")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/map_reverse_geocode_response_dto.py b/generated/immich/openapi_client/models/map_reverse_geocode_response_dto.py
new file mode 100644
index 0000000..0410e50
--- /dev/null
+++ b/generated/immich/openapi_client/models/map_reverse_geocode_response_dto.py
@@ -0,0 +1,106 @@
+# 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MapReverseGeocodeResponseDto(BaseModel):
+ """
+ MapReverseGeocodeResponseDto
+ """ # noqa: E501
+ city: Optional[StrictStr]
+ country: Optional[StrictStr]
+ state: Optional[StrictStr]
+ __properties: ClassVar[List[str]] = ["city", "country", "state"]
+
+ 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 MapReverseGeocodeResponseDto 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,
+ )
+ # set to None if city (nullable) is None
+ # and model_fields_set contains the field
+ if self.city is None and "city" in self.model_fields_set:
+ _dict['city'] = None
+
+ # set to None if country (nullable) is None
+ # and model_fields_set contains the field
+ if self.country is None and "country" in self.model_fields_set:
+ _dict['country'] = None
+
+ # set to None if state (nullable) is None
+ # and model_fields_set contains the field
+ if self.state is None and "state" in self.model_fields_set:
+ _dict['state'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MapReverseGeocodeResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "city": obj.get("city"),
+ "country": obj.get("country"),
+ "state": obj.get("state")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/memories_response.py b/generated/immich/openapi_client/models/memories_response.py
new file mode 100644
index 0000000..acbc5c8
--- /dev/null
+++ b/generated/immich/openapi_client/models/memories_response.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MemoriesResponse(BaseModel):
+ """
+ MemoriesResponse
+ """ # noqa: E501
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 MemoriesResponse 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 MemoriesResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled") if obj.get("enabled") is not None else True
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/memories_update.py b/generated/immich/openapi_client/models/memories_update.py
new file mode 100644
index 0000000..46b31b3
--- /dev/null
+++ b/generated/immich/openapi_client/models/memories_update.py
@@ -0,0 +1,87 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class MemoriesUpdate(BaseModel):
+ """
+ MemoriesUpdate
+ """ # noqa: E501
+ enabled: Optional[StrictBool] = None
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 MemoriesUpdate 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 MemoriesUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/memory_create_dto.py b/generated/immich/openapi_client/models/memory_create_dto.py
new file mode 100644
index 0000000..480f1d7
--- /dev/null
+++ b/generated/immich/openapi_client/models/memory_create_dto.py
@@ -0,0 +1,103 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+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
+from typing_extensions import Self
+
+class MemoryCreateDto(BaseModel):
+ """
+ MemoryCreateDto
+ """ # noqa: E501
+ asset_ids: Optional[List[StrictStr]] = Field(default=None, 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")
+ type: MemoryType
+ __properties: ClassVar[List[str]] = ["assetIds", "data", "isSaved", "memoryAt", "seenAt", "type"]
+
+ 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 MemoryCreateDto 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 data
+ if self.data:
+ _dict['data'] = self.data.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MemoryCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetIds": obj.get("assetIds"),
+ "data": OnThisDayDto.from_dict(obj["data"]) if obj.get("data") is not None else None,
+ "isSaved": obj.get("isSaved"),
+ "memoryAt": obj.get("memoryAt"),
+ "seenAt": obj.get("seenAt"),
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/memory_lane_response_dto.py b/generated/immich/openapi_client/models/memory_lane_response_dto.py
new file mode 100644
index 0000000..459b872
--- /dev/null
+++ b/generated/immich/openapi_client/models/memory_lane_response_dto.py
@@ -0,0 +1,97 @@
+# 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
+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 MemoryLaneResponseDto(BaseModel):
+ """
+ MemoryLaneResponseDto
+ """ # noqa: E501
+ assets: List[AssetResponseDto]
+ years_ago: StrictInt = Field(alias="yearsAgo")
+ __properties: ClassVar[List[str]] = ["assets", "yearsAgo"]
+
+ 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 MemoryLaneResponseDto 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 assets (list)
+ _items = []
+ if self.assets:
+ for _item_assets in self.assets:
+ if _item_assets:
+ _items.append(_item_assets.to_dict())
+ _dict['assets'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MemoryLaneResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assets": [AssetResponseDto.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None,
+ "yearsAgo": obj.get("yearsAgo")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/memory_response_dto.py b/generated/immich/openapi_client/models/memory_response_dto.py
new file mode 100644
index 0000000..93f3384
--- /dev/null
+++ b/generated/immich/openapi_client/models/memory_response_dto.py
@@ -0,0 +1,125 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+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
+from typing_extensions import Self
+
+class MemoryResponseDto(BaseModel):
+ """
+ MemoryResponseDto
+ """ # noqa: E501
+ assets: List[AssetResponseDto]
+ created_at: datetime = Field(alias="createdAt")
+ data: OnThisDayDto
+ deleted_at: Optional[datetime] = Field(default=None, alias="deletedAt")
+ hide_at: Optional[datetime] = Field(default=None, alias="hideAt")
+ id: StrictStr
+ is_saved: StrictBool = Field(alias="isSaved")
+ memory_at: datetime = Field(alias="memoryAt")
+ owner_id: StrictStr = Field(alias="ownerId")
+ seen_at: Optional[datetime] = Field(default=None, alias="seenAt")
+ show_at: Optional[datetime] = Field(default=None, alias="showAt")
+ type: MemoryType
+ updated_at: datetime = Field(alias="updatedAt")
+ __properties: ClassVar[List[str]] = ["assets", "createdAt", "data", "deletedAt", "hideAt", "id", "isSaved", "memoryAt", "ownerId", "seenAt", "showAt", "type", "updatedAt"]
+
+ 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 MemoryResponseDto 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 assets (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 data
+ if self.data:
+ _dict['data'] = self.data.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MemoryResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assets": [AssetResponseDto.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None,
+ "createdAt": obj.get("createdAt"),
+ "data": OnThisDayDto.from_dict(obj["data"]) if obj.get("data") is not None else None,
+ "deletedAt": obj.get("deletedAt"),
+ "hideAt": obj.get("hideAt"),
+ "id": obj.get("id"),
+ "isSaved": obj.get("isSaved"),
+ "memoryAt": obj.get("memoryAt"),
+ "ownerId": obj.get("ownerId"),
+ "seenAt": obj.get("seenAt"),
+ "showAt": obj.get("showAt"),
+ "type": obj.get("type"),
+ "updatedAt": obj.get("updatedAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/memory_type.py b/generated/immich/openapi_client/models/memory_type.py
new file mode 100644
index 0000000..eeb0d32
--- /dev/null
+++ b/generated/immich/openapi_client/models/memory_type.py
@@ -0,0 +1,36 @@
+# 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 MemoryType(str, Enum):
+ """
+ MemoryType
+ """
+
+ """
+ allowed enum values
+ """
+ ON_THIS_DAY = 'on_this_day'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of MemoryType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/memory_update_dto.py b/generated/immich/openapi_client/models/memory_update_dto.py
new file mode 100644
index 0000000..4391be7
--- /dev/null
+++ b/generated/immich/openapi_client/models/memory_update_dto.py
@@ -0,0 +1,92 @@
+# 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, StrictBool
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MemoryUpdateDto(BaseModel):
+ """
+ MemoryUpdateDto
+ """ # noqa: E501
+ is_saved: Optional[StrictBool] = Field(default=None, alias="isSaved")
+ memory_at: Optional[datetime] = Field(default=None, alias="memoryAt")
+ seen_at: Optional[datetime] = Field(default=None, alias="seenAt")
+ __properties: ClassVar[List[str]] = ["isSaved", "memoryAt", "seenAt"]
+
+ 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 MemoryUpdateDto 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 MemoryUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "isSaved": obj.get("isSaved"),
+ "memoryAt": obj.get("memoryAt"),
+ "seenAt": obj.get("seenAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/merge_person_dto.py b/generated/immich/openapi_client/models/merge_person_dto.py
new file mode 100644
index 0000000..ea853c2
--- /dev/null
+++ b/generated/immich/openapi_client/models/merge_person_dto.py
@@ -0,0 +1,87 @@
+# 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 MergePersonDto(BaseModel):
+ """
+ MergePersonDto
+ """ # noqa: E501
+ ids: List[StrictStr]
+ __properties: ClassVar[List[str]] = ["ids"]
+
+ 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 MergePersonDto 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 MergePersonDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "ids": obj.get("ids")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/metadata_search_dto.py b/generated/immich/openapi_client/models/metadata_search_dto.py
new file mode 100644
index 0000000..895a875
--- /dev/null
+++ b/generated/immich/openapi_client/models/metadata_search_dto.py
@@ -0,0 +1,207 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.asset_order import AssetOrder
+from generated.immich.openapi_client.models.asset_type_enum import AssetTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MetadataSearchDto(BaseModel):
+ """
+ MetadataSearchDto
+ """ # noqa: E501
+ checksum: Optional[StrictStr] = None
+ city: Optional[StrictStr] = None
+ country: Optional[StrictStr] = None
+ created_after: Optional[datetime] = Field(default=None, alias="createdAfter")
+ created_before: Optional[datetime] = Field(default=None, alias="createdBefore")
+ description: Optional[StrictStr] = None
+ device_asset_id: Optional[StrictStr] = Field(default=None, alias="deviceAssetId")
+ device_id: Optional[StrictStr] = Field(default=None, alias="deviceId")
+ encoded_video_path: Optional[StrictStr] = Field(default=None, alias="encodedVideoPath")
+ id: Optional[StrictStr] = None
+ is_archived: Optional[StrictBool] = Field(default=None, alias="isArchived")
+ is_encoded: Optional[StrictBool] = Field(default=None, alias="isEncoded")
+ is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
+ is_motion: Optional[StrictBool] = Field(default=None, alias="isMotion")
+ is_not_in_album: Optional[StrictBool] = Field(default=None, alias="isNotInAlbum")
+ is_offline: Optional[StrictBool] = Field(default=None, alias="isOffline")
+ is_visible: Optional[StrictBool] = Field(default=None, alias="isVisible")
+ lens_model: Optional[StrictStr] = Field(default=None, alias="lensModel")
+ library_id: Optional[StrictStr] = Field(default=None, alias="libraryId")
+ make: Optional[StrictStr] = None
+ model: Optional[StrictStr] = None
+ order: Optional[AssetOrder] = None
+ original_file_name: Optional[StrictStr] = Field(default=None, alias="originalFileName")
+ original_path: Optional[StrictStr] = Field(default=None, alias="originalPath")
+ page: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None
+ person_ids: Optional[List[StrictStr]] = Field(default=None, alias="personIds")
+ preview_path: Optional[StrictStr] = Field(default=None, alias="previewPath")
+ rating: Optional[Union[Annotated[float, Field(le=5, strict=True, ge=-1)], Annotated[int, Field(le=5, strict=True, ge=-1)]]] = None
+ size: Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=1)], Annotated[int, Field(le=1000, strict=True, ge=1)]]] = None
+ state: Optional[StrictStr] = None
+ tag_ids: Optional[List[StrictStr]] = Field(default=None, alias="tagIds")
+ taken_after: Optional[datetime] = Field(default=None, alias="takenAfter")
+ taken_before: Optional[datetime] = Field(default=None, alias="takenBefore")
+ thumbnail_path: Optional[StrictStr] = Field(default=None, alias="thumbnailPath")
+ trashed_after: Optional[datetime] = Field(default=None, alias="trashedAfter")
+ trashed_before: Optional[datetime] = Field(default=None, alias="trashedBefore")
+ type: Optional[AssetTypeEnum] = None
+ updated_after: Optional[datetime] = Field(default=None, alias="updatedAfter")
+ updated_before: Optional[datetime] = Field(default=None, alias="updatedBefore")
+ with_archived: Optional[StrictBool] = Field(default=False, alias="withArchived")
+ with_deleted: Optional[StrictBool] = Field(default=None, alias="withDeleted")
+ with_exif: Optional[StrictBool] = Field(default=None, alias="withExif")
+ with_people: Optional[StrictBool] = Field(default=None, alias="withPeople")
+ with_stacked: Optional[StrictBool] = Field(default=None, alias="withStacked")
+ __properties: ClassVar[List[str]] = ["checksum", "city", "country", "createdAfter", "createdBefore", "description", "deviceAssetId", "deviceId", "encodedVideoPath", "id", "isArchived", "isEncoded", "isFavorite", "isMotion", "isNotInAlbum", "isOffline", "isVisible", "lensModel", "libraryId", "make", "model", "order", "originalFileName", "originalPath", "page", "personIds", "previewPath", "rating", "size", "state", "tagIds", "takenAfter", "takenBefore", "thumbnailPath", "trashedAfter", "trashedBefore", "type", "updatedAfter", "updatedBefore", "withArchived", "withDeleted", "withExif", "withPeople", "withStacked"]
+
+ 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 MetadataSearchDto 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,
+ )
+ # set to None if city (nullable) is None
+ # and model_fields_set contains the field
+ if self.city is None and "city" in self.model_fields_set:
+ _dict['city'] = None
+
+ # set to None if country (nullable) is None
+ # and model_fields_set contains the field
+ if self.country is None and "country" in self.model_fields_set:
+ _dict['country'] = None
+
+ # set to None if lens_model (nullable) is None
+ # and model_fields_set contains the field
+ if self.lens_model is None and "lens_model" in self.model_fields_set:
+ _dict['lensModel'] = 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:
+ _dict['libraryId'] = None
+
+ # set to None if model (nullable) is None
+ # and model_fields_set contains the field
+ if self.model is None and "model" in self.model_fields_set:
+ _dict['model'] = None
+
+ # set to None if state (nullable) is None
+ # and model_fields_set contains the field
+ if self.state is None and "state" in self.model_fields_set:
+ _dict['state'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MetadataSearchDto 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"),
+ "city": obj.get("city"),
+ "country": obj.get("country"),
+ "createdAfter": obj.get("createdAfter"),
+ "createdBefore": obj.get("createdBefore"),
+ "description": obj.get("description"),
+ "deviceAssetId": obj.get("deviceAssetId"),
+ "deviceId": obj.get("deviceId"),
+ "encodedVideoPath": obj.get("encodedVideoPath"),
+ "id": obj.get("id"),
+ "isArchived": obj.get("isArchived"),
+ "isEncoded": obj.get("isEncoded"),
+ "isFavorite": obj.get("isFavorite"),
+ "isMotion": obj.get("isMotion"),
+ "isNotInAlbum": obj.get("isNotInAlbum"),
+ "isOffline": obj.get("isOffline"),
+ "isVisible": obj.get("isVisible"),
+ "lensModel": obj.get("lensModel"),
+ "libraryId": obj.get("libraryId"),
+ "make": obj.get("make"),
+ "model": obj.get("model"),
+ "order": obj.get("order"),
+ "originalFileName": obj.get("originalFileName"),
+ "originalPath": obj.get("originalPath"),
+ "page": obj.get("page"),
+ "personIds": obj.get("personIds"),
+ "previewPath": obj.get("previewPath"),
+ "rating": obj.get("rating"),
+ "size": obj.get("size"),
+ "state": obj.get("state"),
+ "tagIds": obj.get("tagIds"),
+ "takenAfter": obj.get("takenAfter"),
+ "takenBefore": obj.get("takenBefore"),
+ "thumbnailPath": obj.get("thumbnailPath"),
+ "trashedAfter": obj.get("trashedAfter"),
+ "trashedBefore": obj.get("trashedBefore"),
+ "type": obj.get("type"),
+ "updatedAfter": obj.get("updatedAfter"),
+ "updatedBefore": obj.get("updatedBefore"),
+ "withArchived": obj.get("withArchived") if obj.get("withArchived") is not None else False,
+ "withDeleted": obj.get("withDeleted"),
+ "withExif": obj.get("withExif"),
+ "withPeople": obj.get("withPeople"),
+ "withStacked": obj.get("withStacked")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/o_auth_authorize_response_dto.py b/generated/immich/openapi_client/models/o_auth_authorize_response_dto.py
new file mode 100644
index 0000000..c2223c5
--- /dev/null
+++ b/generated/immich/openapi_client/models/o_auth_authorize_response_dto.py
@@ -0,0 +1,87 @@
+# 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 OAuthAuthorizeResponseDto(BaseModel):
+ """
+ OAuthAuthorizeResponseDto
+ """ # noqa: E501
+ url: StrictStr
+ __properties: ClassVar[List[str]] = ["url"]
+
+ 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 OAuthAuthorizeResponseDto 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 OAuthAuthorizeResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "url": obj.get("url")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/o_auth_callback_dto.py b/generated/immich/openapi_client/models/o_auth_callback_dto.py
new file mode 100644
index 0000000..05cef0d
--- /dev/null
+++ b/generated/immich/openapi_client/models/o_auth_callback_dto.py
@@ -0,0 +1,87 @@
+# 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 OAuthCallbackDto(BaseModel):
+ """
+ OAuthCallbackDto
+ """ # noqa: E501
+ url: StrictStr
+ __properties: ClassVar[List[str]] = ["url"]
+
+ 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 OAuthCallbackDto 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 OAuthCallbackDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "url": obj.get("url")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/o_auth_config_dto.py b/generated/immich/openapi_client/models/o_auth_config_dto.py
new file mode 100644
index 0000000..8fb30f9
--- /dev/null
+++ b/generated/immich/openapi_client/models/o_auth_config_dto.py
@@ -0,0 +1,87 @@
+# 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 OAuthConfigDto(BaseModel):
+ """
+ OAuthConfigDto
+ """ # noqa: E501
+ redirect_uri: StrictStr = Field(alias="redirectUri")
+ __properties: ClassVar[List[str]] = ["redirectUri"]
+
+ 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 OAuthConfigDto 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 OAuthConfigDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "redirectUri": obj.get("redirectUri")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/on_this_day_dto.py b/generated/immich/openapi_client/models/on_this_day_dto.py
new file mode 100644
index 0000000..17d3bed
--- /dev/null
+++ b/generated/immich/openapi_client/models/on_this_day_dto.py
@@ -0,0 +1,88 @@
+# 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, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OnThisDayDto(BaseModel):
+ """
+ OnThisDayDto
+ """ # noqa: E501
+ year: Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]
+ __properties: ClassVar[List[str]] = ["year"]
+
+ 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 OnThisDayDto 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 OnThisDayDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "year": obj.get("year")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/partner_direction.py b/generated/immich/openapi_client/models/partner_direction.py
new file mode 100644
index 0000000..f1d9040
--- /dev/null
+++ b/generated/immich/openapi_client/models/partner_direction.py
@@ -0,0 +1,37 @@
+# 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 PartnerDirection(str, Enum):
+ """
+ PartnerDirection
+ """
+
+ """
+ allowed enum values
+ """
+ SHARED_MINUS_BY = 'shared-by'
+ SHARED_MINUS_WITH = 'shared-with'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of PartnerDirection from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/partner_response_dto.py b/generated/immich/openapi_client/models/partner_response_dto.py
new file mode 100644
index 0000000..de557f9
--- /dev/null
+++ b/generated/immich/openapi_client/models/partner_response_dto.py
@@ -0,0 +1,101 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from generated.immich.openapi_client.models.user_avatar_color import UserAvatarColor
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PartnerResponseDto(BaseModel):
+ """
+ PartnerResponseDto
+ """ # noqa: E501
+ avatar_color: UserAvatarColor = Field(alias="avatarColor")
+ email: StrictStr
+ id: StrictStr
+ in_timeline: Optional[StrictBool] = Field(default=None, alias="inTimeline")
+ name: StrictStr
+ profile_changed_at: datetime = Field(alias="profileChangedAt")
+ profile_image_path: StrictStr = Field(alias="profileImagePath")
+ __properties: ClassVar[List[str]] = ["avatarColor", "email", "id", "inTimeline", "name", "profileChangedAt", "profileImagePath"]
+
+ 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 PartnerResponseDto 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 PartnerResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "avatarColor": obj.get("avatarColor"),
+ "email": obj.get("email"),
+ "id": obj.get("id"),
+ "inTimeline": obj.get("inTimeline"),
+ "name": obj.get("name"),
+ "profileChangedAt": obj.get("profileChangedAt"),
+ "profileImagePath": obj.get("profileImagePath")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/path_entity_type.py b/generated/immich/openapi_client/models/path_entity_type.py
new file mode 100644
index 0000000..89cdf1c
--- /dev/null
+++ b/generated/immich/openapi_client/models/path_entity_type.py
@@ -0,0 +1,38 @@
+# 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 PathEntityType(str, Enum):
+ """
+ PathEntityType
+ """
+
+ """
+ allowed enum values
+ """
+ ASSET = 'asset'
+ PERSON = 'person'
+ USER = 'user'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of PathEntityType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/path_type.py b/generated/immich/openapi_client/models/path_type.py
new file mode 100644
index 0000000..af7f951
--- /dev/null
+++ b/generated/immich/openapi_client/models/path_type.py
@@ -0,0 +1,43 @@
+# 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 PathType(str, Enum):
+ """
+ PathType
+ """
+
+ """
+ allowed enum values
+ """
+ ORIGINAL = 'original'
+ FULLSIZE = 'fullsize'
+ PREVIEW = 'preview'
+ THUMBNAIL = 'thumbnail'
+ ENCODED_VIDEO = 'encoded_video'
+ SIDECAR = 'sidecar'
+ FACE = 'face'
+ PROFILE = 'profile'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of PathType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/people_response.py b/generated/immich/openapi_client/models/people_response.py
new file mode 100644
index 0000000..a11f126
--- /dev/null
+++ b/generated/immich/openapi_client/models/people_response.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PeopleResponse(BaseModel):
+ """
+ PeopleResponse
+ """ # noqa: E501
+ enabled: StrictBool
+ sidebar_web: StrictBool = Field(alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 PeopleResponse 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 PeopleResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled") if obj.get("enabled") is not None else True,
+ "sidebarWeb": obj.get("sidebarWeb") if obj.get("sidebarWeb") is not None else False
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/people_response_dto.py b/generated/immich/openapi_client/models/people_response_dto.py
new file mode 100644
index 0000000..3c6c12b
--- /dev/null
+++ b/generated/immich/openapi_client/models/people_response_dto.py
@@ -0,0 +1,101 @@
+# 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, StrictInt
+from typing import Any, ClassVar, Dict, List, Optional
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PeopleResponseDto(BaseModel):
+ """
+ PeopleResponseDto
+ """ # noqa: E501
+ has_next_page: Optional[StrictBool] = Field(default=None, description="This property was added in v1.110.0", alias="hasNextPage")
+ hidden: StrictInt
+ people: List[PersonResponseDto]
+ total: StrictInt
+ __properties: ClassVar[List[str]] = ["hasNextPage", "hidden", "people", "total"]
+
+ 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 PeopleResponseDto 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 people (list)
+ _items = []
+ if self.people:
+ for _item_people in self.people:
+ if _item_people:
+ _items.append(_item_people.to_dict())
+ _dict['people'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PeopleResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "hasNextPage": obj.get("hasNextPage"),
+ "hidden": obj.get("hidden"),
+ "people": [PersonResponseDto.from_dict(_item) for _item in obj["people"]] if obj.get("people") is not None else None,
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/people_update.py b/generated/immich/openapi_client/models/people_update.py
new file mode 100644
index 0000000..2c72c4b
--- /dev/null
+++ b/generated/immich/openapi_client/models/people_update.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PeopleUpdate(BaseModel):
+ """
+ PeopleUpdate
+ """ # noqa: E501
+ enabled: Optional[StrictBool] = None
+ sidebar_web: Optional[StrictBool] = Field(default=None, alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 PeopleUpdate 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 PeopleUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "sidebarWeb": obj.get("sidebarWeb")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/people_update_dto.py b/generated/immich/openapi_client/models/people_update_dto.py
new file mode 100644
index 0000000..2ed0b24
--- /dev/null
+++ b/generated/immich/openapi_client/models/people_update_dto.py
@@ -0,0 +1,95 @@
+# 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.people_update_item import PeopleUpdateItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PeopleUpdateDto(BaseModel):
+ """
+ PeopleUpdateDto
+ """ # noqa: E501
+ people: List[PeopleUpdateItem]
+ __properties: ClassVar[List[str]] = ["people"]
+
+ 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 PeopleUpdateDto 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 people (list)
+ _items = []
+ if self.people:
+ for _item_people in self.people:
+ if _item_people:
+ _items.append(_item_people.to_dict())
+ _dict['people'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PeopleUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "people": [PeopleUpdateItem.from_dict(_item) for _item in obj["people"]] if obj.get("people") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/people_update_item.py b/generated/immich/openapi_client/models/people_update_item.py
new file mode 100644
index 0000000..f61d82f
--- /dev/null
+++ b/generated/immich/openapi_client/models/people_update_item.py
@@ -0,0 +1,110 @@
+# 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 date
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PeopleUpdateItem(BaseModel):
+ """
+ PeopleUpdateItem
+ """ # noqa: E501
+ birth_date: Optional[date] = Field(default=None, description="Person date of birth. Note: the mobile app cannot currently set the birth date to null.", alias="birthDate")
+ color: Optional[StrictStr] = None
+ feature_face_asset_id: Optional[StrictStr] = Field(default=None, description="Asset is used to get the feature face thumbnail.", alias="featureFaceAssetId")
+ id: StrictStr = Field(description="Person id.")
+ is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
+ is_hidden: Optional[StrictBool] = Field(default=None, description="Person visibility", alias="isHidden")
+ name: Optional[StrictStr] = Field(default=None, description="Person name.")
+ __properties: ClassVar[List[str]] = ["birthDate", "color", "featureFaceAssetId", "id", "isFavorite", "isHidden", "name"]
+
+ 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 PeopleUpdateItem 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,
+ )
+ # set to None if birth_date (nullable) is None
+ # and model_fields_set contains the field
+ if self.birth_date is None and "birth_date" in self.model_fields_set:
+ _dict['birthDate'] = None
+
+ # set to None if color (nullable) is None
+ # and model_fields_set contains the field
+ if self.color is None and "color" in self.model_fields_set:
+ _dict['color'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PeopleUpdateItem from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "birthDate": obj.get("birthDate"),
+ "color": obj.get("color"),
+ "featureFaceAssetId": obj.get("featureFaceAssetId"),
+ "id": obj.get("id"),
+ "isFavorite": obj.get("isFavorite"),
+ "isHidden": obj.get("isHidden"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/permission.py b/generated/immich/openapi_client/models/permission.py
new file mode 100644
index 0000000..c55daa0
--- /dev/null
+++ b/generated/immich/openapi_client/models/permission.py
@@ -0,0 +1,113 @@
+# 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 Permission(str, Enum):
+ """
+ Permission
+ """
+
+ """
+ allowed enum values
+ """
+ ALL = 'all'
+ ACTIVITY_DOT_CREATE = 'activity.create'
+ ACTIVITY_DOT_READ = 'activity.read'
+ ACTIVITY_DOT_UPDATE = 'activity.update'
+ ACTIVITY_DOT_DELETE = 'activity.delete'
+ ACTIVITY_DOT_STATISTICS = 'activity.statistics'
+ API_KEY_DOT_CREATE = 'apiKey.create'
+ API_KEY_DOT_READ = 'apiKey.read'
+ API_KEY_DOT_UPDATE = 'apiKey.update'
+ API_KEY_DOT_DELETE = 'apiKey.delete'
+ ASSET_DOT_READ = 'asset.read'
+ ASSET_DOT_UPDATE = 'asset.update'
+ ASSET_DOT_DELETE = 'asset.delete'
+ ASSET_DOT_SHARE = 'asset.share'
+ ASSET_DOT_VIEW = 'asset.view'
+ ASSET_DOT_DOWNLOAD = 'asset.download'
+ ASSET_DOT_UPLOAD = 'asset.upload'
+ ALBUM_DOT_CREATE = 'album.create'
+ ALBUM_DOT_READ = 'album.read'
+ ALBUM_DOT_UPDATE = 'album.update'
+ ALBUM_DOT_DELETE = 'album.delete'
+ ALBUM_DOT_STATISTICS = 'album.statistics'
+ ALBUM_DOT_ADD_ASSET = 'album.addAsset'
+ ALBUM_DOT_REMOVE_ASSET = 'album.removeAsset'
+ ALBUM_DOT_SHARE = 'album.share'
+ ALBUM_DOT_DOWNLOAD = 'album.download'
+ AUTH_DEVICE_DOT_DELETE = 'authDevice.delete'
+ ARCHIVE_DOT_READ = 'archive.read'
+ FACE_DOT_CREATE = 'face.create'
+ FACE_DOT_READ = 'face.read'
+ FACE_DOT_UPDATE = 'face.update'
+ FACE_DOT_DELETE = 'face.delete'
+ LIBRARY_DOT_CREATE = 'library.create'
+ LIBRARY_DOT_READ = 'library.read'
+ LIBRARY_DOT_UPDATE = 'library.update'
+ LIBRARY_DOT_DELETE = 'library.delete'
+ LIBRARY_DOT_STATISTICS = 'library.statistics'
+ TIMELINE_DOT_READ = 'timeline.read'
+ TIMELINE_DOT_DOWNLOAD = 'timeline.download'
+ MEMORY_DOT_CREATE = 'memory.create'
+ MEMORY_DOT_READ = 'memory.read'
+ MEMORY_DOT_UPDATE = 'memory.update'
+ MEMORY_DOT_DELETE = 'memory.delete'
+ PARTNER_DOT_CREATE = 'partner.create'
+ PARTNER_DOT_READ = 'partner.read'
+ PARTNER_DOT_UPDATE = 'partner.update'
+ PARTNER_DOT_DELETE = 'partner.delete'
+ PERSON_DOT_CREATE = 'person.create'
+ PERSON_DOT_READ = 'person.read'
+ PERSON_DOT_UPDATE = 'person.update'
+ PERSON_DOT_DELETE = 'person.delete'
+ PERSON_DOT_STATISTICS = 'person.statistics'
+ PERSON_DOT_MERGE = 'person.merge'
+ PERSON_DOT_REASSIGN = 'person.reassign'
+ SESSION_DOT_READ = 'session.read'
+ SESSION_DOT_UPDATE = 'session.update'
+ SESSION_DOT_DELETE = 'session.delete'
+ SHARED_LINK_DOT_CREATE = 'sharedLink.create'
+ SHARED_LINK_DOT_READ = 'sharedLink.read'
+ SHARED_LINK_DOT_UPDATE = 'sharedLink.update'
+ SHARED_LINK_DOT_DELETE = 'sharedLink.delete'
+ STACK_DOT_CREATE = 'stack.create'
+ STACK_DOT_READ = 'stack.read'
+ STACK_DOT_UPDATE = 'stack.update'
+ STACK_DOT_DELETE = 'stack.delete'
+ SYSTEM_CONFIG_DOT_READ = 'systemConfig.read'
+ SYSTEM_CONFIG_DOT_UPDATE = 'systemConfig.update'
+ SYSTEM_METADATA_DOT_READ = 'systemMetadata.read'
+ SYSTEM_METADATA_DOT_UPDATE = 'systemMetadata.update'
+ TAG_DOT_CREATE = 'tag.create'
+ TAG_DOT_READ = 'tag.read'
+ TAG_DOT_UPDATE = 'tag.update'
+ TAG_DOT_DELETE = 'tag.delete'
+ TAG_DOT_ASSET = 'tag.asset'
+ ADMIN_DOT_USER_DOT_CREATE = 'admin.user.create'
+ ADMIN_DOT_USER_DOT_READ = 'admin.user.read'
+ ADMIN_DOT_USER_DOT_UPDATE = 'admin.user.update'
+ ADMIN_DOT_USER_DOT_DELETE = 'admin.user.delete'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of Permission from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/person_create_dto.py b/generated/immich/openapi_client/models/person_create_dto.py
new file mode 100644
index 0000000..7322be0
--- /dev/null
+++ b/generated/immich/openapi_client/models/person_create_dto.py
@@ -0,0 +1,106 @@
+# 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 date
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PersonCreateDto(BaseModel):
+ """
+ PersonCreateDto
+ """ # noqa: E501
+ birth_date: Optional[date] = Field(default=None, description="Person date of birth. Note: the mobile app cannot currently set the birth date to null.", alias="birthDate")
+ color: Optional[StrictStr] = None
+ is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
+ is_hidden: Optional[StrictBool] = Field(default=None, description="Person visibility", alias="isHidden")
+ name: Optional[StrictStr] = Field(default=None, description="Person name.")
+ __properties: ClassVar[List[str]] = ["birthDate", "color", "isFavorite", "isHidden", "name"]
+
+ 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 PersonCreateDto 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,
+ )
+ # set to None if birth_date (nullable) is None
+ # and model_fields_set contains the field
+ if self.birth_date is None and "birth_date" in self.model_fields_set:
+ _dict['birthDate'] = None
+
+ # set to None if color (nullable) is None
+ # and model_fields_set contains the field
+ if self.color is None and "color" in self.model_fields_set:
+ _dict['color'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PersonCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "birthDate": obj.get("birthDate"),
+ "color": obj.get("color"),
+ "isFavorite": obj.get("isFavorite"),
+ "isHidden": obj.get("isHidden"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/person_response_dto.py b/generated/immich/openapi_client/models/person_response_dto.py
new file mode 100644
index 0000000..96c97b8
--- /dev/null
+++ b/generated/immich/openapi_client/models/person_response_dto.py
@@ -0,0 +1,107 @@
+# 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 date, datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PersonResponseDto(BaseModel):
+ """
+ PersonResponseDto
+ """ # noqa: E501
+ birth_date: Optional[date] = Field(alias="birthDate")
+ color: Optional[StrictStr] = Field(default=None, description="This property was added in v1.126.0")
+ id: StrictStr
+ is_favorite: Optional[StrictBool] = Field(default=None, description="This property was added in v1.126.0", alias="isFavorite")
+ is_hidden: StrictBool = Field(alias="isHidden")
+ name: StrictStr
+ thumbnail_path: StrictStr = Field(alias="thumbnailPath")
+ updated_at: Optional[datetime] = Field(default=None, description="This property was added in v1.107.0", alias="updatedAt")
+ __properties: ClassVar[List[str]] = ["birthDate", "color", "id", "isFavorite", "isHidden", "name", "thumbnailPath", "updatedAt"]
+
+ 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 PersonResponseDto 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,
+ )
+ # set to None if birth_date (nullable) is None
+ # and model_fields_set contains the field
+ if self.birth_date is None and "birth_date" in self.model_fields_set:
+ _dict['birthDate'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PersonResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "birthDate": obj.get("birthDate"),
+ "color": obj.get("color"),
+ "id": obj.get("id"),
+ "isFavorite": obj.get("isFavorite"),
+ "isHidden": obj.get("isHidden"),
+ "name": obj.get("name"),
+ "thumbnailPath": obj.get("thumbnailPath"),
+ "updatedAt": obj.get("updatedAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/person_statistics_response_dto.py b/generated/immich/openapi_client/models/person_statistics_response_dto.py
new file mode 100644
index 0000000..c64267c
--- /dev/null
+++ b/generated/immich/openapi_client/models/person_statistics_response_dto.py
@@ -0,0 +1,87 @@
+# 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 PersonStatisticsResponseDto(BaseModel):
+ """
+ PersonStatisticsResponseDto
+ """ # noqa: E501
+ assets: StrictInt
+ __properties: ClassVar[List[str]] = ["assets"]
+
+ 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 PersonStatisticsResponseDto 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 PersonStatisticsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assets": obj.get("assets")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/person_update_dto.py b/generated/immich/openapi_client/models/person_update_dto.py
new file mode 100644
index 0000000..db60ef6
--- /dev/null
+++ b/generated/immich/openapi_client/models/person_update_dto.py
@@ -0,0 +1,108 @@
+# 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 date
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PersonUpdateDto(BaseModel):
+ """
+ PersonUpdateDto
+ """ # noqa: E501
+ birth_date: Optional[date] = Field(default=None, description="Person date of birth. Note: the mobile app cannot currently set the birth date to null.", alias="birthDate")
+ color: Optional[StrictStr] = None
+ feature_face_asset_id: Optional[StrictStr] = Field(default=None, description="Asset is used to get the feature face thumbnail.", alias="featureFaceAssetId")
+ is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
+ is_hidden: Optional[StrictBool] = Field(default=None, description="Person visibility", alias="isHidden")
+ name: Optional[StrictStr] = Field(default=None, description="Person name.")
+ __properties: ClassVar[List[str]] = ["birthDate", "color", "featureFaceAssetId", "isFavorite", "isHidden", "name"]
+
+ 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 PersonUpdateDto 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,
+ )
+ # set to None if birth_date (nullable) is None
+ # and model_fields_set contains the field
+ if self.birth_date is None and "birth_date" in self.model_fields_set:
+ _dict['birthDate'] = None
+
+ # set to None if color (nullable) is None
+ # and model_fields_set contains the field
+ if self.color is None and "color" in self.model_fields_set:
+ _dict['color'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PersonUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "birthDate": obj.get("birthDate"),
+ "color": obj.get("color"),
+ "featureFaceAssetId": obj.get("featureFaceAssetId"),
+ "isFavorite": obj.get("isFavorite"),
+ "isHidden": obj.get("isHidden"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/person_with_faces_response_dto.py b/generated/immich/openapi_client/models/person_with_faces_response_dto.py
new file mode 100644
index 0000000..6982365
--- /dev/null
+++ b/generated/immich/openapi_client/models/person_with_faces_response_dto.py
@@ -0,0 +1,117 @@
+# 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 date, 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 import Optional, Set
+from typing_extensions import Self
+
+class PersonWithFacesResponseDto(BaseModel):
+ """
+ PersonWithFacesResponseDto
+ """ # noqa: E501
+ birth_date: Optional[date] = Field(alias="birthDate")
+ color: Optional[StrictStr] = Field(default=None, description="This property was added in v1.126.0")
+ faces: List[AssetFaceWithoutPersonResponseDto]
+ id: StrictStr
+ is_favorite: Optional[StrictBool] = Field(default=None, description="This property was added in v1.126.0", alias="isFavorite")
+ is_hidden: StrictBool = Field(alias="isHidden")
+ name: StrictStr
+ thumbnail_path: StrictStr = Field(alias="thumbnailPath")
+ updated_at: Optional[datetime] = Field(default=None, description="This property was added in v1.107.0", alias="updatedAt")
+ __properties: ClassVar[List[str]] = ["birthDate", "color", "faces", "id", "isFavorite", "isHidden", "name", "thumbnailPath", "updatedAt"]
+
+ 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 PersonWithFacesResponseDto 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 faces (list)
+ _items = []
+ if self.faces:
+ for _item_faces in self.faces:
+ if _item_faces:
+ _items.append(_item_faces.to_dict())
+ _dict['faces'] = _items
+ # set to None if birth_date (nullable) is None
+ # and model_fields_set contains the field
+ if self.birth_date is None and "birth_date" in self.model_fields_set:
+ _dict['birthDate'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PersonWithFacesResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "birthDate": obj.get("birthDate"),
+ "color": obj.get("color"),
+ "faces": [AssetFaceWithoutPersonResponseDto.from_dict(_item) for _item in obj["faces"]] if obj.get("faces") is not None else None,
+ "id": obj.get("id"),
+ "isFavorite": obj.get("isFavorite"),
+ "isHidden": obj.get("isHidden"),
+ "name": obj.get("name"),
+ "thumbnailPath": obj.get("thumbnailPath"),
+ "updatedAt": obj.get("updatedAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/places_response_dto.py b/generated/immich/openapi_client/models/places_response_dto.py
new file mode 100644
index 0000000..8492cf2
--- /dev/null
+++ b/generated/immich/openapi_client/models/places_response_dto.py
@@ -0,0 +1,95 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PlacesResponseDto(BaseModel):
+ """
+ PlacesResponseDto
+ """ # noqa: E501
+ admin1name: Optional[StrictStr] = None
+ admin2name: Optional[StrictStr] = None
+ latitude: Union[StrictFloat, StrictInt]
+ longitude: Union[StrictFloat, StrictInt]
+ name: StrictStr
+ __properties: ClassVar[List[str]] = ["admin1name", "admin2name", "latitude", "longitude", "name"]
+
+ 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 PlacesResponseDto 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 PlacesResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "admin1name": obj.get("admin1name"),
+ "admin2name": obj.get("admin2name"),
+ "latitude": obj.get("latitude"),
+ "longitude": obj.get("longitude"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/purchase_response.py b/generated/immich/openapi_client/models/purchase_response.py
new file mode 100644
index 0000000..f764c60
--- /dev/null
+++ b/generated/immich/openapi_client/models/purchase_response.py
@@ -0,0 +1,89 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class PurchaseResponse(BaseModel):
+ """
+ PurchaseResponse
+ """ # noqa: E501
+ hide_buy_button_until: StrictStr = Field(alias="hideBuyButtonUntil")
+ show_support_badge: StrictBool = Field(alias="showSupportBadge")
+ __properties: ClassVar[List[str]] = ["hideBuyButtonUntil", "showSupportBadge"]
+
+ 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 PurchaseResponse 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 PurchaseResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "hideBuyButtonUntil": obj.get("hideBuyButtonUntil"),
+ "showSupportBadge": obj.get("showSupportBadge")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/purchase_update.py b/generated/immich/openapi_client/models/purchase_update.py
new file mode 100644
index 0000000..f1a89d9
--- /dev/null
+++ b/generated/immich/openapi_client/models/purchase_update.py
@@ -0,0 +1,89 @@
+# 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PurchaseUpdate(BaseModel):
+ """
+ PurchaseUpdate
+ """ # noqa: E501
+ hide_buy_button_until: Optional[StrictStr] = Field(default=None, alias="hideBuyButtonUntil")
+ show_support_badge: Optional[StrictBool] = Field(default=None, alias="showSupportBadge")
+ __properties: ClassVar[List[str]] = ["hideBuyButtonUntil", "showSupportBadge"]
+
+ 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 PurchaseUpdate 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 PurchaseUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "hideBuyButtonUntil": obj.get("hideBuyButtonUntil"),
+ "showSupportBadge": obj.get("showSupportBadge")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/queue_status_dto.py b/generated/immich/openapi_client/models/queue_status_dto.py
new file mode 100644
index 0000000..ed615ef
--- /dev/null
+++ b/generated/immich/openapi_client/models/queue_status_dto.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class QueueStatusDto(BaseModel):
+ """
+ QueueStatusDto
+ """ # noqa: E501
+ is_active: StrictBool = Field(alias="isActive")
+ is_paused: StrictBool = Field(alias="isPaused")
+ __properties: ClassVar[List[str]] = ["isActive", "isPaused"]
+
+ 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 QueueStatusDto 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 QueueStatusDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "isActive": obj.get("isActive"),
+ "isPaused": obj.get("isPaused")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/random_search_dto.py b/generated/immich/openapi_client/models/random_search_dto.py
new file mode 100644
index 0000000..228f284
--- /dev/null
+++ b/generated/immich/openapi_client/models/random_search_dto.py
@@ -0,0 +1,184 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.asset_type_enum import AssetTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RandomSearchDto(BaseModel):
+ """
+ RandomSearchDto
+ """ # noqa: E501
+ city: Optional[StrictStr] = None
+ country: Optional[StrictStr] = None
+ created_after: Optional[datetime] = Field(default=None, alias="createdAfter")
+ created_before: Optional[datetime] = Field(default=None, alias="createdBefore")
+ device_id: Optional[StrictStr] = Field(default=None, alias="deviceId")
+ is_archived: Optional[StrictBool] = Field(default=None, alias="isArchived")
+ is_encoded: Optional[StrictBool] = Field(default=None, alias="isEncoded")
+ is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
+ is_motion: Optional[StrictBool] = Field(default=None, alias="isMotion")
+ is_not_in_album: Optional[StrictBool] = Field(default=None, alias="isNotInAlbum")
+ is_offline: Optional[StrictBool] = Field(default=None, alias="isOffline")
+ is_visible: Optional[StrictBool] = Field(default=None, alias="isVisible")
+ lens_model: Optional[StrictStr] = Field(default=None, alias="lensModel")
+ library_id: Optional[StrictStr] = Field(default=None, alias="libraryId")
+ make: Optional[StrictStr] = None
+ model: Optional[StrictStr] = None
+ person_ids: Optional[List[StrictStr]] = Field(default=None, alias="personIds")
+ rating: Optional[Union[Annotated[float, Field(le=5, strict=True, ge=-1)], Annotated[int, Field(le=5, strict=True, ge=-1)]]] = None
+ size: Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=1)], Annotated[int, Field(le=1000, strict=True, ge=1)]]] = None
+ state: Optional[StrictStr] = None
+ tag_ids: Optional[List[StrictStr]] = Field(default=None, alias="tagIds")
+ taken_after: Optional[datetime] = Field(default=None, alias="takenAfter")
+ taken_before: Optional[datetime] = Field(default=None, alias="takenBefore")
+ trashed_after: Optional[datetime] = Field(default=None, alias="trashedAfter")
+ trashed_before: Optional[datetime] = Field(default=None, alias="trashedBefore")
+ type: Optional[AssetTypeEnum] = None
+ updated_after: Optional[datetime] = Field(default=None, alias="updatedAfter")
+ updated_before: Optional[datetime] = Field(default=None, alias="updatedBefore")
+ with_archived: Optional[StrictBool] = Field(default=False, alias="withArchived")
+ with_deleted: Optional[StrictBool] = Field(default=None, alias="withDeleted")
+ with_exif: Optional[StrictBool] = Field(default=None, alias="withExif")
+ with_people: Optional[StrictBool] = Field(default=None, alias="withPeople")
+ with_stacked: Optional[StrictBool] = Field(default=None, alias="withStacked")
+ __properties: ClassVar[List[str]] = ["city", "country", "createdAfter", "createdBefore", "deviceId", "isArchived", "isEncoded", "isFavorite", "isMotion", "isNotInAlbum", "isOffline", "isVisible", "lensModel", "libraryId", "make", "model", "personIds", "rating", "size", "state", "tagIds", "takenAfter", "takenBefore", "trashedAfter", "trashedBefore", "type", "updatedAfter", "updatedBefore", "withArchived", "withDeleted", "withExif", "withPeople", "withStacked"]
+
+ 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 RandomSearchDto 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,
+ )
+ # set to None if city (nullable) is None
+ # and model_fields_set contains the field
+ if self.city is None and "city" in self.model_fields_set:
+ _dict['city'] = None
+
+ # set to None if country (nullable) is None
+ # and model_fields_set contains the field
+ if self.country is None and "country" in self.model_fields_set:
+ _dict['country'] = None
+
+ # set to None if lens_model (nullable) is None
+ # and model_fields_set contains the field
+ if self.lens_model is None and "lens_model" in self.model_fields_set:
+ _dict['lensModel'] = 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:
+ _dict['libraryId'] = None
+
+ # set to None if model (nullable) is None
+ # and model_fields_set contains the field
+ if self.model is None and "model" in self.model_fields_set:
+ _dict['model'] = None
+
+ # set to None if state (nullable) is None
+ # and model_fields_set contains the field
+ if self.state is None and "state" in self.model_fields_set:
+ _dict['state'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RandomSearchDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "city": obj.get("city"),
+ "country": obj.get("country"),
+ "createdAfter": obj.get("createdAfter"),
+ "createdBefore": obj.get("createdBefore"),
+ "deviceId": obj.get("deviceId"),
+ "isArchived": obj.get("isArchived"),
+ "isEncoded": obj.get("isEncoded"),
+ "isFavorite": obj.get("isFavorite"),
+ "isMotion": obj.get("isMotion"),
+ "isNotInAlbum": obj.get("isNotInAlbum"),
+ "isOffline": obj.get("isOffline"),
+ "isVisible": obj.get("isVisible"),
+ "lensModel": obj.get("lensModel"),
+ "libraryId": obj.get("libraryId"),
+ "make": obj.get("make"),
+ "model": obj.get("model"),
+ "personIds": obj.get("personIds"),
+ "rating": obj.get("rating"),
+ "size": obj.get("size"),
+ "state": obj.get("state"),
+ "tagIds": obj.get("tagIds"),
+ "takenAfter": obj.get("takenAfter"),
+ "takenBefore": obj.get("takenBefore"),
+ "trashedAfter": obj.get("trashedAfter"),
+ "trashedBefore": obj.get("trashedBefore"),
+ "type": obj.get("type"),
+ "updatedAfter": obj.get("updatedAfter"),
+ "updatedBefore": obj.get("updatedBefore"),
+ "withArchived": obj.get("withArchived") if obj.get("withArchived") is not None else False,
+ "withDeleted": obj.get("withDeleted"),
+ "withExif": obj.get("withExif"),
+ "withPeople": obj.get("withPeople"),
+ "withStacked": obj.get("withStacked")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/ratings_response.py b/generated/immich/openapi_client/models/ratings_response.py
new file mode 100644
index 0000000..191a1d0
--- /dev/null
+++ b/generated/immich/openapi_client/models/ratings_response.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RatingsResponse(BaseModel):
+ """
+ RatingsResponse
+ """ # noqa: E501
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 RatingsResponse 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 RatingsResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled") if obj.get("enabled") is not None else False
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/ratings_update.py b/generated/immich/openapi_client/models/ratings_update.py
new file mode 100644
index 0000000..14282a9
--- /dev/null
+++ b/generated/immich/openapi_client/models/ratings_update.py
@@ -0,0 +1,87 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class RatingsUpdate(BaseModel):
+ """
+ RatingsUpdate
+ """ # noqa: E501
+ enabled: Optional[StrictBool] = None
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 RatingsUpdate 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 RatingsUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/reaction_level.py b/generated/immich/openapi_client/models/reaction_level.py
new file mode 100644
index 0000000..24dcd1c
--- /dev/null
+++ b/generated/immich/openapi_client/models/reaction_level.py
@@ -0,0 +1,37 @@
+# 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 ReactionLevel(str, Enum):
+ """
+ ReactionLevel
+ """
+
+ """
+ allowed enum values
+ """
+ ALBUM = 'album'
+ ASSET = 'asset'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ReactionLevel from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/reaction_type.py b/generated/immich/openapi_client/models/reaction_type.py
new file mode 100644
index 0000000..5ae601b
--- /dev/null
+++ b/generated/immich/openapi_client/models/reaction_type.py
@@ -0,0 +1,37 @@
+# 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 ReactionType(str, Enum):
+ """
+ ReactionType
+ """
+
+ """
+ allowed enum values
+ """
+ COMMENT = 'comment'
+ LIKE = 'like'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ReactionType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/reverse_geocoding_state_response_dto.py b/generated/immich/openapi_client/models/reverse_geocoding_state_response_dto.py
new file mode 100644
index 0000000..1699a43
--- /dev/null
+++ b/generated/immich/openapi_client/models/reverse_geocoding_state_response_dto.py
@@ -0,0 +1,99 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class ReverseGeocodingStateResponseDto(BaseModel):
+ """
+ ReverseGeocodingStateResponseDto
+ """ # noqa: E501
+ last_import_file_name: Optional[StrictStr] = Field(alias="lastImportFileName")
+ last_update: Optional[StrictStr] = Field(alias="lastUpdate")
+ __properties: ClassVar[List[str]] = ["lastImportFileName", "lastUpdate"]
+
+ 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 ReverseGeocodingStateResponseDto 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,
+ )
+ # set to None if last_import_file_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_import_file_name is None and "last_import_file_name" in self.model_fields_set:
+ _dict['lastImportFileName'] = None
+
+ # set to None if last_update (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_update is None and "last_update" in self.model_fields_set:
+ _dict['lastUpdate'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ReverseGeocodingStateResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "lastImportFileName": obj.get("lastImportFileName"),
+ "lastUpdate": obj.get("lastUpdate")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_album_response_dto.py b/generated/immich/openapi_client/models/search_album_response_dto.py
new file mode 100644
index 0000000..aff933c
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_album_response_dto.py
@@ -0,0 +1,109 @@
+# 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 generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.models.search_facet_response_dto import SearchFacetResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SearchAlbumResponseDto(BaseModel):
+ """
+ SearchAlbumResponseDto
+ """ # noqa: E501
+ count: StrictInt
+ facets: List[SearchFacetResponseDto]
+ items: List[AlbumResponseDto]
+ total: StrictInt
+ __properties: ClassVar[List[str]] = ["count", "facets", "items", "total"]
+
+ 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 SearchAlbumResponseDto 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 facets (list)
+ _items = []
+ if self.facets:
+ for _item_facets in self.facets:
+ if _item_facets:
+ _items.append(_item_facets.to_dict())
+ _dict['facets'] = _items
+ # 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 SearchAlbumResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "count": obj.get("count"),
+ "facets": [SearchFacetResponseDto.from_dict(_item) for _item in obj["facets"]] if obj.get("facets") is not None else None,
+ "items": [AlbumResponseDto.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None,
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_asset_response_dto.py b/generated/immich/openapi_client/models/search_asset_response_dto.py
new file mode 100644
index 0000000..46dbaaa
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_asset_response_dto.py
@@ -0,0 +1,116 @@
+# 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.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.models.search_facet_response_dto import SearchFacetResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SearchAssetResponseDto(BaseModel):
+ """
+ SearchAssetResponseDto
+ """ # noqa: E501
+ count: StrictInt
+ facets: List[SearchFacetResponseDto]
+ items: List[AssetResponseDto]
+ next_page: Optional[StrictStr] = Field(alias="nextPage")
+ total: StrictInt
+ __properties: ClassVar[List[str]] = ["count", "facets", "items", "nextPage", "total"]
+
+ 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 SearchAssetResponseDto 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 facets (list)
+ _items = []
+ if self.facets:
+ for _item_facets in self.facets:
+ if _item_facets:
+ _items.append(_item_facets.to_dict())
+ _dict['facets'] = _items
+ # 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
+ # set to None if next_page (nullable) is None
+ # and model_fields_set contains the field
+ if self.next_page is None and "next_page" in self.model_fields_set:
+ _dict['nextPage'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SearchAssetResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "count": obj.get("count"),
+ "facets": [SearchFacetResponseDto.from_dict(_item) for _item in obj["facets"]] if obj.get("facets") is not None else None,
+ "items": [AssetResponseDto.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None,
+ "nextPage": obj.get("nextPage"),
+ "total": obj.get("total")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_explore_item.py b/generated/immich/openapi_client/models/search_explore_item.py
new file mode 100644
index 0000000..afe80ca
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_explore_item.py
@@ -0,0 +1,93 @@
+# 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.asset_response_dto import AssetResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SearchExploreItem(BaseModel):
+ """
+ SearchExploreItem
+ """ # noqa: E501
+ data: AssetResponseDto
+ value: StrictStr
+ __properties: ClassVar[List[str]] = ["data", "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 SearchExploreItem 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 data
+ if self.data:
+ _dict['data'] = self.data.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SearchExploreItem from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "data": AssetResponseDto.from_dict(obj["data"]) if obj.get("data") is not None else None,
+ "value": obj.get("value")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_explore_response_dto.py b/generated/immich/openapi_client/models/search_explore_response_dto.py
new file mode 100644
index 0000000..d7b86e4
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_explore_response_dto.py
@@ -0,0 +1,97 @@
+# 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 generated.immich.openapi_client.models.search_explore_item import SearchExploreItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SearchExploreResponseDto(BaseModel):
+ """
+ SearchExploreResponseDto
+ """ # noqa: E501
+ field_name: StrictStr = Field(alias="fieldName")
+ items: List[SearchExploreItem]
+ __properties: ClassVar[List[str]] = ["fieldName", "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 SearchExploreResponseDto 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 SearchExploreResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "fieldName": obj.get("fieldName"),
+ "items": [SearchExploreItem.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_facet_count_response_dto.py b/generated/immich/openapi_client/models/search_facet_count_response_dto.py
new file mode 100644
index 0000000..2cbcd92
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_facet_count_response_dto.py
@@ -0,0 +1,89 @@
+# 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, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SearchFacetCountResponseDto(BaseModel):
+ """
+ SearchFacetCountResponseDto
+ """ # noqa: E501
+ count: StrictInt
+ value: StrictStr
+ __properties: ClassVar[List[str]] = ["count", "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 SearchFacetCountResponseDto 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 SearchFacetCountResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "count": obj.get("count"),
+ "value": obj.get("value")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_facet_response_dto.py b/generated/immich/openapi_client/models/search_facet_response_dto.py
new file mode 100644
index 0000000..846d3d1
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_facet_response_dto.py
@@ -0,0 +1,97 @@
+# 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 generated.immich.openapi_client.models.search_facet_count_response_dto import SearchFacetCountResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SearchFacetResponseDto(BaseModel):
+ """
+ SearchFacetResponseDto
+ """ # noqa: E501
+ counts: List[SearchFacetCountResponseDto]
+ field_name: StrictStr = Field(alias="fieldName")
+ __properties: ClassVar[List[str]] = ["counts", "fieldName"]
+
+ 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 SearchFacetResponseDto 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 counts (list)
+ _items = []
+ if self.counts:
+ for _item_counts in self.counts:
+ if _item_counts:
+ _items.append(_item_counts.to_dict())
+ _dict['counts'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SearchFacetResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "counts": [SearchFacetCountResponseDto.from_dict(_item) for _item in obj["counts"]] if obj.get("counts") is not None else None,
+ "fieldName": obj.get("fieldName")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_response_dto.py b/generated/immich/openapi_client/models/search_response_dto.py
new file mode 100644
index 0000000..7440922
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_response_dto.py
@@ -0,0 +1,97 @@
+# 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.search_album_response_dto import SearchAlbumResponseDto
+from generated.immich.openapi_client.models.search_asset_response_dto import SearchAssetResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SearchResponseDto(BaseModel):
+ """
+ SearchResponseDto
+ """ # noqa: E501
+ albums: SearchAlbumResponseDto
+ assets: SearchAssetResponseDto
+ __properties: ClassVar[List[str]] = ["albums", "assets"]
+
+ 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 SearchResponseDto 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 albums
+ if self.albums:
+ _dict['albums'] = self.albums.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of assets
+ if self.assets:
+ _dict['assets'] = self.assets.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SearchResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albums": SearchAlbumResponseDto.from_dict(obj["albums"]) if obj.get("albums") is not None else None,
+ "assets": SearchAssetResponseDto.from_dict(obj["assets"]) if obj.get("assets") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/search_suggestion_type.py b/generated/immich/openapi_client/models/search_suggestion_type.py
new file mode 100644
index 0000000..01c89ed
--- /dev/null
+++ b/generated/immich/openapi_client/models/search_suggestion_type.py
@@ -0,0 +1,40 @@
+# 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 SearchSuggestionType(str, Enum):
+ """
+ SearchSuggestionType
+ """
+
+ """
+ allowed enum values
+ """
+ COUNTRY = 'country'
+ STATE = 'state'
+ CITY = 'city'
+ CAMERA_MINUS_MAKE = 'camera-make'
+ CAMERA_MINUS_MODEL = 'camera-model'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of SearchSuggestionType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/server_about_response_dto.py b/generated/immich/openapi_client/models/server_about_response_dto.py
new file mode 100644
index 0000000..969973e
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_about_response_dto.py
@@ -0,0 +1,127 @@
+# 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServerAboutResponseDto(BaseModel):
+ """
+ ServerAboutResponseDto
+ """ # noqa: E501
+ build: Optional[StrictStr] = None
+ build_image: Optional[StrictStr] = Field(default=None, alias="buildImage")
+ build_image_url: Optional[StrictStr] = Field(default=None, alias="buildImageUrl")
+ build_url: Optional[StrictStr] = Field(default=None, alias="buildUrl")
+ exiftool: Optional[StrictStr] = None
+ ffmpeg: Optional[StrictStr] = None
+ imagemagick: Optional[StrictStr] = None
+ libvips: Optional[StrictStr] = None
+ licensed: StrictBool
+ nodejs: Optional[StrictStr] = None
+ repository: Optional[StrictStr] = None
+ repository_url: Optional[StrictStr] = Field(default=None, alias="repositoryUrl")
+ source_commit: Optional[StrictStr] = Field(default=None, alias="sourceCommit")
+ source_ref: Optional[StrictStr] = Field(default=None, alias="sourceRef")
+ source_url: Optional[StrictStr] = Field(default=None, alias="sourceUrl")
+ third_party_bug_feature_url: Optional[StrictStr] = Field(default=None, alias="thirdPartyBugFeatureUrl")
+ third_party_documentation_url: Optional[StrictStr] = Field(default=None, alias="thirdPartyDocumentationUrl")
+ third_party_source_url: Optional[StrictStr] = Field(default=None, alias="thirdPartySourceUrl")
+ third_party_support_url: Optional[StrictStr] = Field(default=None, alias="thirdPartySupportUrl")
+ version: StrictStr
+ version_url: StrictStr = Field(alias="versionUrl")
+ __properties: ClassVar[List[str]] = ["build", "buildImage", "buildImageUrl", "buildUrl", "exiftool", "ffmpeg", "imagemagick", "libvips", "licensed", "nodejs", "repository", "repositoryUrl", "sourceCommit", "sourceRef", "sourceUrl", "thirdPartyBugFeatureUrl", "thirdPartyDocumentationUrl", "thirdPartySourceUrl", "thirdPartySupportUrl", "version", "versionUrl"]
+
+ 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 ServerAboutResponseDto 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 ServerAboutResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "build": obj.get("build"),
+ "buildImage": obj.get("buildImage"),
+ "buildImageUrl": obj.get("buildImageUrl"),
+ "buildUrl": obj.get("buildUrl"),
+ "exiftool": obj.get("exiftool"),
+ "ffmpeg": obj.get("ffmpeg"),
+ "imagemagick": obj.get("imagemagick"),
+ "libvips": obj.get("libvips"),
+ "licensed": obj.get("licensed"),
+ "nodejs": obj.get("nodejs"),
+ "repository": obj.get("repository"),
+ "repositoryUrl": obj.get("repositoryUrl"),
+ "sourceCommit": obj.get("sourceCommit"),
+ "sourceRef": obj.get("sourceRef"),
+ "sourceUrl": obj.get("sourceUrl"),
+ "thirdPartyBugFeatureUrl": obj.get("thirdPartyBugFeatureUrl"),
+ "thirdPartyDocumentationUrl": obj.get("thirdPartyDocumentationUrl"),
+ "thirdPartySourceUrl": obj.get("thirdPartySourceUrl"),
+ "thirdPartySupportUrl": obj.get("thirdPartySupportUrl"),
+ "version": obj.get("version"),
+ "versionUrl": obj.get("versionUrl")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_config_dto.py b/generated/immich/openapi_client/models/server_config_dto.py
new file mode 100644
index 0000000..925aa2e
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_config_dto.py
@@ -0,0 +1,105 @@
+# 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, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServerConfigDto(BaseModel):
+ """
+ ServerConfigDto
+ """ # noqa: E501
+ external_domain: StrictStr = Field(alias="externalDomain")
+ is_initialized: StrictBool = Field(alias="isInitialized")
+ is_onboarded: StrictBool = Field(alias="isOnboarded")
+ login_page_message: StrictStr = Field(alias="loginPageMessage")
+ map_dark_style_url: StrictStr = Field(alias="mapDarkStyleUrl")
+ map_light_style_url: StrictStr = Field(alias="mapLightStyleUrl")
+ oauth_button_text: StrictStr = Field(alias="oauthButtonText")
+ public_users: StrictBool = Field(alias="publicUsers")
+ trash_days: StrictInt = Field(alias="trashDays")
+ user_delete_delay: StrictInt = Field(alias="userDeleteDelay")
+ __properties: ClassVar[List[str]] = ["externalDomain", "isInitialized", "isOnboarded", "loginPageMessage", "mapDarkStyleUrl", "mapLightStyleUrl", "oauthButtonText", "publicUsers", "trashDays", "userDeleteDelay"]
+
+ 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 ServerConfigDto 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 ServerConfigDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "externalDomain": obj.get("externalDomain"),
+ "isInitialized": obj.get("isInitialized"),
+ "isOnboarded": obj.get("isOnboarded"),
+ "loginPageMessage": obj.get("loginPageMessage"),
+ "mapDarkStyleUrl": obj.get("mapDarkStyleUrl"),
+ "mapLightStyleUrl": obj.get("mapLightStyleUrl"),
+ "oauthButtonText": obj.get("oauthButtonText"),
+ "publicUsers": obj.get("publicUsers"),
+ "trashDays": obj.get("trashDays"),
+ "userDeleteDelay": obj.get("userDeleteDelay")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_features_dto.py b/generated/immich/openapi_client/models/server_features_dto.py
new file mode 100644
index 0000000..40b6f55
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_features_dto.py
@@ -0,0 +1,113 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServerFeaturesDto(BaseModel):
+ """
+ ServerFeaturesDto
+ """ # noqa: E501
+ config_file: StrictBool = Field(alias="configFile")
+ duplicate_detection: StrictBool = Field(alias="duplicateDetection")
+ email: StrictBool
+ facial_recognition: StrictBool = Field(alias="facialRecognition")
+ import_faces: StrictBool = Field(alias="importFaces")
+ map: StrictBool
+ oauth: StrictBool
+ oauth_auto_launch: StrictBool = Field(alias="oauthAutoLaunch")
+ password_login: StrictBool = Field(alias="passwordLogin")
+ reverse_geocoding: StrictBool = Field(alias="reverseGeocoding")
+ search: StrictBool
+ sidecar: StrictBool
+ smart_search: StrictBool = Field(alias="smartSearch")
+ trash: StrictBool
+ __properties: ClassVar[List[str]] = ["configFile", "duplicateDetection", "email", "facialRecognition", "importFaces", "map", "oauth", "oauthAutoLaunch", "passwordLogin", "reverseGeocoding", "search", "sidecar", "smartSearch", "trash"]
+
+ 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 ServerFeaturesDto 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 ServerFeaturesDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "configFile": obj.get("configFile"),
+ "duplicateDetection": obj.get("duplicateDetection"),
+ "email": obj.get("email"),
+ "facialRecognition": obj.get("facialRecognition"),
+ "importFaces": obj.get("importFaces"),
+ "map": obj.get("map"),
+ "oauth": obj.get("oauth"),
+ "oauthAutoLaunch": obj.get("oauthAutoLaunch"),
+ "passwordLogin": obj.get("passwordLogin"),
+ "reverseGeocoding": obj.get("reverseGeocoding"),
+ "search": obj.get("search"),
+ "sidecar": obj.get("sidecar"),
+ "smartSearch": obj.get("smartSearch"),
+ "trash": obj.get("trash")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_media_types_response_dto.py b/generated/immich/openapi_client/models/server_media_types_response_dto.py
new file mode 100644
index 0000000..b747002
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_media_types_response_dto.py
@@ -0,0 +1,91 @@
+# 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 ServerMediaTypesResponseDto(BaseModel):
+ """
+ ServerMediaTypesResponseDto
+ """ # noqa: E501
+ image: List[StrictStr]
+ sidecar: List[StrictStr]
+ video: List[StrictStr]
+ __properties: ClassVar[List[str]] = ["image", "sidecar", "video"]
+
+ 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 ServerMediaTypesResponseDto 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 ServerMediaTypesResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "image": obj.get("image"),
+ "sidecar": obj.get("sidecar"),
+ "video": obj.get("video")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_ping_response.py b/generated/immich/openapi_client/models/server_ping_response.py
new file mode 100644
index 0000000..3598f7e
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_ping_response.py
@@ -0,0 +1,89 @@
+# 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 ServerPingResponse(BaseModel):
+ """
+ ServerPingResponse
+ """ # noqa: E501
+ res: StrictStr
+ __properties: ClassVar[List[str]] = ["res"]
+
+ 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 ServerPingResponse 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.
+ * OpenAPI `readOnly` fields are excluded.
+ """
+ excluded_fields: Set[str] = set([
+ "res",
+ ])
+
+ _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 ServerPingResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "res": obj.get("res")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_stats_response_dto.py b/generated/immich/openapi_client/models/server_stats_response_dto.py
new file mode 100644
index 0000000..6a6dea2
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_stats_response_dto.py
@@ -0,0 +1,105 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from generated.immich.openapi_client.models.usage_by_user_dto import UsageByUserDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServerStatsResponseDto(BaseModel):
+ """
+ ServerStatsResponseDto
+ """ # noqa: E501
+ photos: StrictInt
+ usage: StrictInt
+ usage_by_user: List[UsageByUserDto] = Field(alias="usageByUser")
+ usage_photos: StrictInt = Field(alias="usagePhotos")
+ usage_videos: StrictInt = Field(alias="usageVideos")
+ videos: StrictInt
+ __properties: ClassVar[List[str]] = ["photos", "usage", "usageByUser", "usagePhotos", "usageVideos", "videos"]
+
+ 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 ServerStatsResponseDto 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 usage_by_user (list)
+ _items = []
+ if self.usage_by_user:
+ for _item_usage_by_user in self.usage_by_user:
+ if _item_usage_by_user:
+ _items.append(_item_usage_by_user.to_dict())
+ _dict['usageByUser'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ServerStatsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "photos": obj.get("photos") if obj.get("photos") is not None else 0,
+ "usage": obj.get("usage") if obj.get("usage") is not None else 0,
+ "usageByUser": [UsageByUserDto.from_dict(_item) for _item in obj["usageByUser"]] if obj.get("usageByUser") is not None else None,
+ "usagePhotos": obj.get("usagePhotos") if obj.get("usagePhotos") is not None else 0,
+ "usageVideos": obj.get("usageVideos") if obj.get("usageVideos") is not None else 0,
+ "videos": obj.get("videos") if obj.get("videos") is not None else 0
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_storage_response_dto.py b/generated/immich/openapi_client/models/server_storage_response_dto.py
new file mode 100644
index 0000000..559ba64
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_storage_response_dto.py
@@ -0,0 +1,99 @@
+# 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, StrictFloat, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Union
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServerStorageResponseDto(BaseModel):
+ """
+ ServerStorageResponseDto
+ """ # noqa: E501
+ disk_available: StrictStr = Field(alias="diskAvailable")
+ disk_available_raw: StrictInt = Field(alias="diskAvailableRaw")
+ disk_size: StrictStr = Field(alias="diskSize")
+ disk_size_raw: StrictInt = Field(alias="diskSizeRaw")
+ disk_usage_percentage: Union[StrictFloat, StrictInt] = Field(alias="diskUsagePercentage")
+ disk_use: StrictStr = Field(alias="diskUse")
+ disk_use_raw: StrictInt = Field(alias="diskUseRaw")
+ __properties: ClassVar[List[str]] = ["diskAvailable", "diskAvailableRaw", "diskSize", "diskSizeRaw", "diskUsagePercentage", "diskUse", "diskUseRaw"]
+
+ 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 ServerStorageResponseDto 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 ServerStorageResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "diskAvailable": obj.get("diskAvailable"),
+ "diskAvailableRaw": obj.get("diskAvailableRaw"),
+ "diskSize": obj.get("diskSize"),
+ "diskSizeRaw": obj.get("diskSizeRaw"),
+ "diskUsagePercentage": obj.get("diskUsagePercentage"),
+ "diskUse": obj.get("diskUse"),
+ "diskUseRaw": obj.get("diskUseRaw")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_theme_dto.py b/generated/immich/openapi_client/models/server_theme_dto.py
new file mode 100644
index 0000000..d928c94
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_theme_dto.py
@@ -0,0 +1,87 @@
+# 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 ServerThemeDto(BaseModel):
+ """
+ ServerThemeDto
+ """ # noqa: E501
+ custom_css: StrictStr = Field(alias="customCss")
+ __properties: ClassVar[List[str]] = ["customCss"]
+
+ 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 ServerThemeDto 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 ServerThemeDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customCss": obj.get("customCss")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_version_history_response_dto.py b/generated/immich/openapi_client/models/server_version_history_response_dto.py
new file mode 100644
index 0000000..4ede118
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_version_history_response_dto.py
@@ -0,0 +1,92 @@
+# 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 ServerVersionHistoryResponseDto(BaseModel):
+ """
+ ServerVersionHistoryResponseDto
+ """ # noqa: E501
+ created_at: datetime = Field(alias="createdAt")
+ id: StrictStr
+ version: StrictStr
+ __properties: ClassVar[List[str]] = ["createdAt", "id", "version"]
+
+ 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 ServerVersionHistoryResponseDto 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 ServerVersionHistoryResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "createdAt": obj.get("createdAt"),
+ "id": obj.get("id"),
+ "version": obj.get("version")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/server_version_response_dto.py b/generated/immich/openapi_client/models/server_version_response_dto.py
new file mode 100644
index 0000000..7db8604
--- /dev/null
+++ b/generated/immich/openapi_client/models/server_version_response_dto.py
@@ -0,0 +1,91 @@
+# 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 ServerVersionResponseDto(BaseModel):
+ """
+ ServerVersionResponseDto
+ """ # noqa: E501
+ major: StrictInt
+ minor: StrictInt
+ patch: StrictInt
+ __properties: ClassVar[List[str]] = ["major", "minor", "patch"]
+
+ 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 ServerVersionResponseDto 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 ServerVersionResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "major": obj.get("major"),
+ "minor": obj.get("minor"),
+ "patch": obj.get("patch")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/session_response_dto.py b/generated/immich/openapi_client/models/session_response_dto.py
new file mode 100644
index 0000000..ddf2f69
--- /dev/null
+++ b/generated/immich/openapi_client/models/session_response_dto.py
@@ -0,0 +1,97 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class SessionResponseDto(BaseModel):
+ """
+ SessionResponseDto
+ """ # noqa: E501
+ created_at: StrictStr = Field(alias="createdAt")
+ current: StrictBool
+ device_os: StrictStr = Field(alias="deviceOS")
+ device_type: StrictStr = Field(alias="deviceType")
+ id: StrictStr
+ updated_at: StrictStr = Field(alias="updatedAt")
+ __properties: ClassVar[List[str]] = ["createdAt", "current", "deviceOS", "deviceType", "id", "updatedAt"]
+
+ 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 SessionResponseDto 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 SessionResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "createdAt": obj.get("createdAt"),
+ "current": obj.get("current"),
+ "deviceOS": obj.get("deviceOS"),
+ "deviceType": obj.get("deviceType"),
+ "id": obj.get("id"),
+ "updatedAt": obj.get("updatedAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/shared_link_create_dto.py b/generated/immich/openapi_client/models/shared_link_create_dto.py
new file mode 100644
index 0000000..d4425b6
--- /dev/null
+++ b/generated/immich/openapi_client/models/shared_link_create_dto.py
@@ -0,0 +1,110 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from generated.immich.openapi_client.models.shared_link_type import SharedLinkType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SharedLinkCreateDto(BaseModel):
+ """
+ SharedLinkCreateDto
+ """ # noqa: E501
+ album_id: Optional[StrictStr] = Field(default=None, alias="albumId")
+ allow_download: Optional[StrictBool] = Field(default=True, alias="allowDownload")
+ allow_upload: Optional[StrictBool] = Field(default=None, alias="allowUpload")
+ asset_ids: Optional[List[StrictStr]] = Field(default=None, alias="assetIds")
+ description: Optional[StrictStr] = None
+ expires_at: Optional[datetime] = Field(default=None, alias="expiresAt")
+ password: Optional[StrictStr] = None
+ show_metadata: Optional[StrictBool] = Field(default=True, alias="showMetadata")
+ type: SharedLinkType
+ __properties: ClassVar[List[str]] = ["albumId", "allowDownload", "allowUpload", "assetIds", "description", "expiresAt", "password", "showMetadata", "type"]
+
+ 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 SharedLinkCreateDto 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,
+ )
+ # set to None if expires_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.expires_at is None and "expires_at" in self.model_fields_set:
+ _dict['expiresAt'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SharedLinkCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumId": obj.get("albumId"),
+ "allowDownload": obj.get("allowDownload") if obj.get("allowDownload") is not None else True,
+ "allowUpload": obj.get("allowUpload"),
+ "assetIds": obj.get("assetIds"),
+ "description": obj.get("description"),
+ "expiresAt": obj.get("expiresAt"),
+ "password": obj.get("password"),
+ "showMetadata": obj.get("showMetadata") if obj.get("showMetadata") is not None else True,
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/shared_link_edit_dto.py b/generated/immich/openapi_client/models/shared_link_edit_dto.py
new file mode 100644
index 0000000..ecfe517
--- /dev/null
+++ b/generated/immich/openapi_client/models/shared_link_edit_dto.py
@@ -0,0 +1,105 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SharedLinkEditDto(BaseModel):
+ """
+ SharedLinkEditDto
+ """ # noqa: E501
+ allow_download: Optional[StrictBool] = Field(default=None, alias="allowDownload")
+ allow_upload: Optional[StrictBool] = Field(default=None, alias="allowUpload")
+ change_expiry_time: Optional[StrictBool] = Field(default=None, description="Few clients cannot send null to set the expiryTime to never. Setting this flag and not sending expiryAt is considered as null instead. Clients that can send null values can ignore this.", alias="changeExpiryTime")
+ description: Optional[StrictStr] = None
+ expires_at: Optional[datetime] = Field(default=None, alias="expiresAt")
+ password: Optional[StrictStr] = None
+ show_metadata: Optional[StrictBool] = Field(default=None, alias="showMetadata")
+ __properties: ClassVar[List[str]] = ["allowDownload", "allowUpload", "changeExpiryTime", "description", "expiresAt", "password", "showMetadata"]
+
+ 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 SharedLinkEditDto 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,
+ )
+ # set to None if expires_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.expires_at is None and "expires_at" in self.model_fields_set:
+ _dict['expiresAt'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SharedLinkEditDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "allowDownload": obj.get("allowDownload"),
+ "allowUpload": obj.get("allowUpload"),
+ "changeExpiryTime": obj.get("changeExpiryTime"),
+ "description": obj.get("description"),
+ "expiresAt": obj.get("expiresAt"),
+ "password": obj.get("password"),
+ "showMetadata": obj.get("showMetadata")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/shared_link_response_dto.py b/generated/immich/openapi_client/models/shared_link_response_dto.py
new file mode 100644
index 0000000..2962143
--- /dev/null
+++ b/generated/immich/openapi_client/models/shared_link_response_dto.py
@@ -0,0 +1,147 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from generated.immich.openapi_client.models.shared_link_type import SharedLinkType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SharedLinkResponseDto(BaseModel):
+ """
+ SharedLinkResponseDto
+ """ # noqa: E501
+ album: Optional[AlbumResponseDto] = None
+ allow_download: StrictBool = Field(alias="allowDownload")
+ allow_upload: StrictBool = Field(alias="allowUpload")
+ assets: List[AssetResponseDto]
+ created_at: datetime = Field(alias="createdAt")
+ description: Optional[StrictStr]
+ expires_at: Optional[datetime] = Field(alias="expiresAt")
+ id: StrictStr
+ key: StrictStr
+ password: Optional[StrictStr]
+ show_metadata: StrictBool = Field(alias="showMetadata")
+ token: Optional[StrictStr] = None
+ type: SharedLinkType
+ user_id: StrictStr = Field(alias="userId")
+ __properties: ClassVar[List[str]] = ["album", "allowDownload", "allowUpload", "assets", "createdAt", "description", "expiresAt", "id", "key", "password", "showMetadata", "token", "type", "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 SharedLinkResponseDto 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 album
+ if self.album:
+ _dict['album'] = self.album.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in assets (list)
+ _items = []
+ if self.assets:
+ for _item_assets in self.assets:
+ if _item_assets:
+ _items.append(_item_assets.to_dict())
+ _dict['assets'] = _items
+ # set to None if description (nullable) is None
+ # and model_fields_set contains the field
+ if self.description is None and "description" in self.model_fields_set:
+ _dict['description'] = None
+
+ # set to None if expires_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.expires_at is None and "expires_at" in self.model_fields_set:
+ _dict['expiresAt'] = None
+
+ # set to None if password (nullable) is None
+ # and model_fields_set contains the field
+ if self.password is None and "password" in self.model_fields_set:
+ _dict['password'] = None
+
+ # set to None if token (nullable) is None
+ # and model_fields_set contains the field
+ if self.token is None and "token" in self.model_fields_set:
+ _dict['token'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SharedLinkResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "album": AlbumResponseDto.from_dict(obj["album"]) if obj.get("album") is not None else None,
+ "allowDownload": obj.get("allowDownload"),
+ "allowUpload": obj.get("allowUpload"),
+ "assets": [AssetResponseDto.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None,
+ "createdAt": obj.get("createdAt"),
+ "description": obj.get("description"),
+ "expiresAt": obj.get("expiresAt"),
+ "id": obj.get("id"),
+ "key": obj.get("key"),
+ "password": obj.get("password"),
+ "showMetadata": obj.get("showMetadata"),
+ "token": obj.get("token"),
+ "type": obj.get("type"),
+ "userId": obj.get("userId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/shared_link_type.py b/generated/immich/openapi_client/models/shared_link_type.py
new file mode 100644
index 0000000..56af699
--- /dev/null
+++ b/generated/immich/openapi_client/models/shared_link_type.py
@@ -0,0 +1,37 @@
+# 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 SharedLinkType(str, Enum):
+ """
+ SharedLinkType
+ """
+
+ """
+ allowed enum values
+ """
+ ALBUM = 'ALBUM'
+ INDIVIDUAL = 'INDIVIDUAL'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of SharedLinkType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/shared_links_response.py b/generated/immich/openapi_client/models/shared_links_response.py
new file mode 100644
index 0000000..d223437
--- /dev/null
+++ b/generated/immich/openapi_client/models/shared_links_response.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SharedLinksResponse(BaseModel):
+ """
+ SharedLinksResponse
+ """ # noqa: E501
+ enabled: StrictBool
+ sidebar_web: StrictBool = Field(alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 SharedLinksResponse 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 SharedLinksResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled") if obj.get("enabled") is not None else True,
+ "sidebarWeb": obj.get("sidebarWeb") if obj.get("sidebarWeb") is not None else False
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/shared_links_update.py b/generated/immich/openapi_client/models/shared_links_update.py
new file mode 100644
index 0000000..af05dca
--- /dev/null
+++ b/generated/immich/openapi_client/models/shared_links_update.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SharedLinksUpdate(BaseModel):
+ """
+ SharedLinksUpdate
+ """ # noqa: E501
+ enabled: Optional[StrictBool] = None
+ sidebar_web: Optional[StrictBool] = Field(default=None, alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 SharedLinksUpdate 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 SharedLinksUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "sidebarWeb": obj.get("sidebarWeb")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sign_up_dto.py b/generated/immich/openapi_client/models/sign_up_dto.py
new file mode 100644
index 0000000..db10d60
--- /dev/null
+++ b/generated/immich/openapi_client/models/sign_up_dto.py
@@ -0,0 +1,91 @@
+# 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 SignUpDto(BaseModel):
+ """
+ SignUpDto
+ """ # noqa: E501
+ email: StrictStr
+ name: StrictStr
+ password: StrictStr
+ __properties: ClassVar[List[str]] = ["email", "name", "password"]
+
+ 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 SignUpDto 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 SignUpDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "email": obj.get("email"),
+ "name": obj.get("name"),
+ "password": obj.get("password")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/smart_search_dto.py b/generated/immich/openapi_client/models/smart_search_dto.py
new file mode 100644
index 0000000..02833ba
--- /dev/null
+++ b/generated/immich/openapi_client/models/smart_search_dto.py
@@ -0,0 +1,186 @@
+# 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.asset_type_enum import AssetTypeEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SmartSearchDto(BaseModel):
+ """
+ SmartSearchDto
+ """ # noqa: E501
+ city: Optional[StrictStr] = None
+ country: Optional[StrictStr] = None
+ created_after: Optional[datetime] = Field(default=None, alias="createdAfter")
+ created_before: Optional[datetime] = Field(default=None, alias="createdBefore")
+ device_id: Optional[StrictStr] = Field(default=None, alias="deviceId")
+ is_archived: Optional[StrictBool] = Field(default=None, alias="isArchived")
+ is_encoded: Optional[StrictBool] = Field(default=None, alias="isEncoded")
+ is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
+ is_motion: Optional[StrictBool] = Field(default=None, alias="isMotion")
+ is_not_in_album: Optional[StrictBool] = Field(default=None, alias="isNotInAlbum")
+ is_offline: Optional[StrictBool] = Field(default=None, alias="isOffline")
+ is_visible: Optional[StrictBool] = Field(default=None, alias="isVisible")
+ language: Optional[StrictStr] = None
+ lens_model: Optional[StrictStr] = Field(default=None, alias="lensModel")
+ library_id: Optional[StrictStr] = Field(default=None, alias="libraryId")
+ make: Optional[StrictStr] = None
+ model: Optional[StrictStr] = None
+ page: Optional[Union[Annotated[float, Field(strict=True, ge=1)], Annotated[int, Field(strict=True, ge=1)]]] = None
+ person_ids: Optional[List[StrictStr]] = Field(default=None, alias="personIds")
+ query: StrictStr
+ rating: Optional[Union[Annotated[float, Field(le=5, strict=True, ge=-1)], Annotated[int, Field(le=5, strict=True, ge=-1)]]] = None
+ size: Optional[Union[Annotated[float, Field(le=1000, strict=True, ge=1)], Annotated[int, Field(le=1000, strict=True, ge=1)]]] = None
+ state: Optional[StrictStr] = None
+ tag_ids: Optional[List[StrictStr]] = Field(default=None, alias="tagIds")
+ taken_after: Optional[datetime] = Field(default=None, alias="takenAfter")
+ taken_before: Optional[datetime] = Field(default=None, alias="takenBefore")
+ trashed_after: Optional[datetime] = Field(default=None, alias="trashedAfter")
+ trashed_before: Optional[datetime] = Field(default=None, alias="trashedBefore")
+ type: Optional[AssetTypeEnum] = None
+ updated_after: Optional[datetime] = Field(default=None, alias="updatedAfter")
+ updated_before: Optional[datetime] = Field(default=None, alias="updatedBefore")
+ with_archived: Optional[StrictBool] = Field(default=False, alias="withArchived")
+ with_deleted: Optional[StrictBool] = Field(default=None, alias="withDeleted")
+ with_exif: Optional[StrictBool] = Field(default=None, alias="withExif")
+ __properties: ClassVar[List[str]] = ["city", "country", "createdAfter", "createdBefore", "deviceId", "isArchived", "isEncoded", "isFavorite", "isMotion", "isNotInAlbum", "isOffline", "isVisible", "language", "lensModel", "libraryId", "make", "model", "page", "personIds", "query", "rating", "size", "state", "tagIds", "takenAfter", "takenBefore", "trashedAfter", "trashedBefore", "type", "updatedAfter", "updatedBefore", "withArchived", "withDeleted", "withExif"]
+
+ 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 SmartSearchDto 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,
+ )
+ # set to None if city (nullable) is None
+ # and model_fields_set contains the field
+ if self.city is None and "city" in self.model_fields_set:
+ _dict['city'] = None
+
+ # set to None if country (nullable) is None
+ # and model_fields_set contains the field
+ if self.country is None and "country" in self.model_fields_set:
+ _dict['country'] = None
+
+ # set to None if lens_model (nullable) is None
+ # and model_fields_set contains the field
+ if self.lens_model is None and "lens_model" in self.model_fields_set:
+ _dict['lensModel'] = 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:
+ _dict['libraryId'] = None
+
+ # set to None if model (nullable) is None
+ # and model_fields_set contains the field
+ if self.model is None and "model" in self.model_fields_set:
+ _dict['model'] = None
+
+ # set to None if state (nullable) is None
+ # and model_fields_set contains the field
+ if self.state is None and "state" in self.model_fields_set:
+ _dict['state'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SmartSearchDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "city": obj.get("city"),
+ "country": obj.get("country"),
+ "createdAfter": obj.get("createdAfter"),
+ "createdBefore": obj.get("createdBefore"),
+ "deviceId": obj.get("deviceId"),
+ "isArchived": obj.get("isArchived"),
+ "isEncoded": obj.get("isEncoded"),
+ "isFavorite": obj.get("isFavorite"),
+ "isMotion": obj.get("isMotion"),
+ "isNotInAlbum": obj.get("isNotInAlbum"),
+ "isOffline": obj.get("isOffline"),
+ "isVisible": obj.get("isVisible"),
+ "language": obj.get("language"),
+ "lensModel": obj.get("lensModel"),
+ "libraryId": obj.get("libraryId"),
+ "make": obj.get("make"),
+ "model": obj.get("model"),
+ "page": obj.get("page"),
+ "personIds": obj.get("personIds"),
+ "query": obj.get("query"),
+ "rating": obj.get("rating"),
+ "size": obj.get("size"),
+ "state": obj.get("state"),
+ "tagIds": obj.get("tagIds"),
+ "takenAfter": obj.get("takenAfter"),
+ "takenBefore": obj.get("takenBefore"),
+ "trashedAfter": obj.get("trashedAfter"),
+ "trashedBefore": obj.get("trashedBefore"),
+ "type": obj.get("type"),
+ "updatedAfter": obj.get("updatedAfter"),
+ "updatedBefore": obj.get("updatedBefore"),
+ "withArchived": obj.get("withArchived") if obj.get("withArchived") is not None else False,
+ "withDeleted": obj.get("withDeleted"),
+ "withExif": obj.get("withExif")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/source_type.py b/generated/immich/openapi_client/models/source_type.py
new file mode 100644
index 0000000..d7459a8
--- /dev/null
+++ b/generated/immich/openapi_client/models/source_type.py
@@ -0,0 +1,38 @@
+# 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 SourceType(str, Enum):
+ """
+ SourceType
+ """
+
+ """
+ allowed enum values
+ """
+ MACHINE_MINUS_LEARNING = 'machine-learning'
+ EXIF = 'exif'
+ MANUAL = 'manual'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of SourceType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/stack_create_dto.py b/generated/immich/openapi_client/models/stack_create_dto.py
new file mode 100644
index 0000000..e8838b9
--- /dev/null
+++ b/generated/immich/openapi_client/models/stack_create_dto.py
@@ -0,0 +1,88 @@
+# 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 StackCreateDto(BaseModel):
+ """
+ StackCreateDto
+ """ # noqa: E501
+ asset_ids: Annotated[List[StrictStr], Field(min_length=2)] = Field(description="first asset becomes the primary", alias="assetIds")
+ __properties: ClassVar[List[str]] = ["assetIds"]
+
+ 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 StackCreateDto 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 StackCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetIds": obj.get("assetIds")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/stack_response_dto.py b/generated/immich/openapi_client/models/stack_response_dto.py
new file mode 100644
index 0000000..5849297
--- /dev/null
+++ b/generated/immich/openapi_client/models/stack_response_dto.py
@@ -0,0 +1,99 @@
+# 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 generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class StackResponseDto(BaseModel):
+ """
+ StackResponseDto
+ """ # noqa: E501
+ assets: List[AssetResponseDto]
+ id: StrictStr
+ primary_asset_id: StrictStr = Field(alias="primaryAssetId")
+ __properties: ClassVar[List[str]] = ["assets", "id", "primaryAssetId"]
+
+ 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 StackResponseDto 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 assets (list)
+ _items = []
+ if self.assets:
+ for _item_assets in self.assets:
+ if _item_assets:
+ _items.append(_item_assets.to_dict())
+ _dict['assets'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of StackResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assets": [AssetResponseDto.from_dict(_item) for _item in obj["assets"]] if obj.get("assets") is not None else None,
+ "id": obj.get("id"),
+ "primaryAssetId": obj.get("primaryAssetId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/stack_update_dto.py b/generated/immich/openapi_client/models/stack_update_dto.py
new file mode 100644
index 0000000..1a234bd
--- /dev/null
+++ b/generated/immich/openapi_client/models/stack_update_dto.py
@@ -0,0 +1,87 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class StackUpdateDto(BaseModel):
+ """
+ StackUpdateDto
+ """ # noqa: E501
+ primary_asset_id: Optional[StrictStr] = Field(default=None, alias="primaryAssetId")
+ __properties: ClassVar[List[str]] = ["primaryAssetId"]
+
+ 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 StackUpdateDto 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 StackUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "primaryAssetId": obj.get("primaryAssetId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_ack_delete_dto.py b/generated/immich/openapi_client/models/sync_ack_delete_dto.py
new file mode 100644
index 0000000..70cd79d
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_ack_delete_dto.py
@@ -0,0 +1,88 @@
+# 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, Optional
+from generated.immich.openapi_client.models.sync_entity_type import SyncEntityType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SyncAckDeleteDto(BaseModel):
+ """
+ SyncAckDeleteDto
+ """ # noqa: E501
+ types: Optional[List[SyncEntityType]] = None
+ __properties: ClassVar[List[str]] = ["types"]
+
+ 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 SyncAckDeleteDto 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 SyncAckDeleteDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "types": obj.get("types")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_ack_dto.py b/generated/immich/openapi_client/models/sync_ack_dto.py
new file mode 100644
index 0000000..61565d5
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_ack_dto.py
@@ -0,0 +1,90 @@
+# 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.sync_entity_type import SyncEntityType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SyncAckDto(BaseModel):
+ """
+ SyncAckDto
+ """ # noqa: E501
+ ack: StrictStr
+ type: SyncEntityType
+ __properties: ClassVar[List[str]] = ["ack", "type"]
+
+ 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 SyncAckDto 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 SyncAckDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "ack": obj.get("ack"),
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_ack_set_dto.py b/generated/immich/openapi_client/models/sync_ack_set_dto.py
new file mode 100644
index 0000000..c731b97
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_ack_set_dto.py
@@ -0,0 +1,87 @@
+# 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 SyncAckSetDto(BaseModel):
+ """
+ SyncAckSetDto
+ """ # noqa: E501
+ acks: List[StrictStr]
+ __properties: ClassVar[List[str]] = ["acks"]
+
+ 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 SyncAckSetDto 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 SyncAckSetDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "acks": obj.get("acks")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_asset_delete_v1.py b/generated/immich/openapi_client/models/sync_asset_delete_v1.py
new file mode 100644
index 0000000..7cc8e29
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_asset_delete_v1.py
@@ -0,0 +1,87 @@
+# 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 SyncAssetDeleteV1(BaseModel):
+ """
+ SyncAssetDeleteV1
+ """ # noqa: E501
+ asset_id: StrictStr = Field(alias="assetId")
+ __properties: ClassVar[List[str]] = ["assetId"]
+
+ 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 SyncAssetDeleteV1 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 SyncAssetDeleteV1 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetId": obj.get("assetId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_asset_exif_v1.py b/generated/immich/openapi_client/models/sync_asset_exif_v1.py
new file mode 100644
index 0000000..b970a34
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_asset_exif_v1.py
@@ -0,0 +1,256 @@
+# 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, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SyncAssetExifV1(BaseModel):
+ """
+ SyncAssetExifV1
+ """ # noqa: E501
+ asset_id: StrictStr = Field(alias="assetId")
+ city: Optional[StrictStr]
+ country: Optional[StrictStr]
+ date_time_original: Optional[datetime] = Field(alias="dateTimeOriginal")
+ description: Optional[StrictStr]
+ exif_image_height: Optional[StrictInt] = Field(alias="exifImageHeight")
+ exif_image_width: Optional[StrictInt] = Field(alias="exifImageWidth")
+ exposure_time: Optional[StrictStr] = Field(alias="exposureTime")
+ f_number: Optional[StrictInt] = Field(alias="fNumber")
+ file_size_in_byte: Optional[StrictInt] = Field(alias="fileSizeInByte")
+ focal_length: Optional[StrictInt] = Field(alias="focalLength")
+ fps: Optional[StrictInt]
+ iso: Optional[StrictInt]
+ latitude: Optional[StrictInt]
+ lens_model: Optional[StrictStr] = Field(alias="lensModel")
+ longitude: Optional[StrictInt]
+ make: Optional[StrictStr]
+ model: Optional[StrictStr]
+ modify_date: Optional[datetime] = Field(alias="modifyDate")
+ orientation: Optional[StrictStr]
+ profile_description: Optional[StrictStr] = Field(alias="profileDescription")
+ projection_type: Optional[StrictStr] = Field(alias="projectionType")
+ rating: Optional[StrictInt]
+ state: Optional[StrictStr]
+ time_zone: Optional[StrictStr] = Field(alias="timeZone")
+ __properties: ClassVar[List[str]] = ["assetId", "city", "country", "dateTimeOriginal", "description", "exifImageHeight", "exifImageWidth", "exposureTime", "fNumber", "fileSizeInByte", "focalLength", "fps", "iso", "latitude", "lensModel", "longitude", "make", "model", "modifyDate", "orientation", "profileDescription", "projectionType", "rating", "state", "timeZone"]
+
+ 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 SyncAssetExifV1 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,
+ )
+ # set to None if city (nullable) is None
+ # and model_fields_set contains the field
+ if self.city is None and "city" in self.model_fields_set:
+ _dict['city'] = None
+
+ # set to None if country (nullable) is None
+ # and model_fields_set contains the field
+ if self.country is None and "country" in self.model_fields_set:
+ _dict['country'] = None
+
+ # set to None if date_time_original (nullable) is None
+ # and model_fields_set contains the field
+ if self.date_time_original is None and "date_time_original" in self.model_fields_set:
+ _dict['dateTimeOriginal'] = None
+
+ # set to None if description (nullable) is None
+ # and model_fields_set contains the field
+ if self.description is None and "description" in self.model_fields_set:
+ _dict['description'] = None
+
+ # set to None if exif_image_height (nullable) is None
+ # and model_fields_set contains the field
+ if self.exif_image_height is None and "exif_image_height" in self.model_fields_set:
+ _dict['exifImageHeight'] = None
+
+ # set to None if exif_image_width (nullable) is None
+ # and model_fields_set contains the field
+ if self.exif_image_width is None and "exif_image_width" in self.model_fields_set:
+ _dict['exifImageWidth'] = None
+
+ # set to None if exposure_time (nullable) is None
+ # and model_fields_set contains the field
+ if self.exposure_time is None and "exposure_time" in self.model_fields_set:
+ _dict['exposureTime'] = None
+
+ # set to None if f_number (nullable) is None
+ # and model_fields_set contains the field
+ if self.f_number is None and "f_number" in self.model_fields_set:
+ _dict['fNumber'] = None
+
+ # set to None if file_size_in_byte (nullable) is None
+ # and model_fields_set contains the field
+ if self.file_size_in_byte is None and "file_size_in_byte" in self.model_fields_set:
+ _dict['fileSizeInByte'] = None
+
+ # set to None if focal_length (nullable) is None
+ # and model_fields_set contains the field
+ if self.focal_length is None and "focal_length" in self.model_fields_set:
+ _dict['focalLength'] = None
+
+ # set to None if fps (nullable) is None
+ # and model_fields_set contains the field
+ if self.fps is None and "fps" in self.model_fields_set:
+ _dict['fps'] = None
+
+ # set to None if iso (nullable) is None
+ # and model_fields_set contains the field
+ if self.iso is None and "iso" in self.model_fields_set:
+ _dict['iso'] = None
+
+ # set to None if latitude (nullable) is None
+ # and model_fields_set contains the field
+ if self.latitude is None and "latitude" in self.model_fields_set:
+ _dict['latitude'] = None
+
+ # set to None if lens_model (nullable) is None
+ # and model_fields_set contains the field
+ if self.lens_model is None and "lens_model" in self.model_fields_set:
+ _dict['lensModel'] = None
+
+ # set to None if longitude (nullable) is None
+ # and model_fields_set contains the field
+ if self.longitude is None and "longitude" in self.model_fields_set:
+ _dict['longitude'] = None
+
+ # set to None if make (nullable) is None
+ # and model_fields_set contains the field
+ if self.make is None and "make" in self.model_fields_set:
+ _dict['make'] = None
+
+ # set to None if model (nullable) is None
+ # and model_fields_set contains the field
+ if self.model is None and "model" in self.model_fields_set:
+ _dict['model'] = None
+
+ # set to None if modify_date (nullable) is None
+ # and model_fields_set contains the field
+ if self.modify_date is None and "modify_date" in self.model_fields_set:
+ _dict['modifyDate'] = None
+
+ # set to None if orientation (nullable) is None
+ # and model_fields_set contains the field
+ if self.orientation is None and "orientation" in self.model_fields_set:
+ _dict['orientation'] = None
+
+ # set to None if profile_description (nullable) is None
+ # and model_fields_set contains the field
+ if self.profile_description is None and "profile_description" in self.model_fields_set:
+ _dict['profileDescription'] = None
+
+ # set to None if projection_type (nullable) is None
+ # and model_fields_set contains the field
+ if self.projection_type is None and "projection_type" in self.model_fields_set:
+ _dict['projectionType'] = 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
+
+ # set to None if state (nullable) is None
+ # and model_fields_set contains the field
+ if self.state is None and "state" in self.model_fields_set:
+ _dict['state'] = None
+
+ # set to None if time_zone (nullable) is None
+ # and model_fields_set contains the field
+ if self.time_zone is None and "time_zone" in self.model_fields_set:
+ _dict['timeZone'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SyncAssetExifV1 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetId": obj.get("assetId"),
+ "city": obj.get("city"),
+ "country": obj.get("country"),
+ "dateTimeOriginal": obj.get("dateTimeOriginal"),
+ "description": obj.get("description"),
+ "exifImageHeight": obj.get("exifImageHeight"),
+ "exifImageWidth": obj.get("exifImageWidth"),
+ "exposureTime": obj.get("exposureTime"),
+ "fNumber": obj.get("fNumber"),
+ "fileSizeInByte": obj.get("fileSizeInByte"),
+ "focalLength": obj.get("focalLength"),
+ "fps": obj.get("fps"),
+ "iso": obj.get("iso"),
+ "latitude": obj.get("latitude"),
+ "lensModel": obj.get("lensModel"),
+ "longitude": obj.get("longitude"),
+ "make": obj.get("make"),
+ "model": obj.get("model"),
+ "modifyDate": obj.get("modifyDate"),
+ "orientation": obj.get("orientation"),
+ "profileDescription": obj.get("profileDescription"),
+ "projectionType": obj.get("projectionType"),
+ "rating": obj.get("rating"),
+ "state": obj.get("state"),
+ "timeZone": obj.get("timeZone")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_asset_v1.py b/generated/immich/openapi_client/models/sync_asset_v1.py
new file mode 100644
index 0000000..81fe176
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_asset_v1.py
@@ -0,0 +1,140 @@
+# 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SyncAssetV1(BaseModel):
+ """
+ SyncAssetV1
+ """ # noqa: E501
+ checksum: StrictStr
+ deleted_at: Optional[datetime] = Field(alias="deletedAt")
+ file_created_at: Optional[datetime] = Field(alias="fileCreatedAt")
+ file_modified_at: Optional[datetime] = Field(alias="fileModifiedAt")
+ id: StrictStr
+ is_favorite: StrictBool = Field(alias="isFavorite")
+ is_visible: StrictBool = Field(alias="isVisible")
+ local_date_time: Optional[datetime] = Field(alias="localDateTime")
+ owner_id: StrictStr = Field(alias="ownerId")
+ thumbhash: Optional[StrictStr]
+ type: StrictStr
+ __properties: ClassVar[List[str]] = ["checksum", "deletedAt", "fileCreatedAt", "fileModifiedAt", "id", "isFavorite", "isVisible", "localDateTime", "ownerId", "thumbhash", "type"]
+
+ @field_validator('type')
+ def type_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['IMAGE', 'VIDEO', 'AUDIO', 'OTHER']):
+ raise ValueError("must be one of enum values ('IMAGE', 'VIDEO', 'AUDIO', 'OTHER')")
+ 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 SyncAssetV1 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,
+ )
+ # set to None if deleted_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.deleted_at is None and "deleted_at" in self.model_fields_set:
+ _dict['deletedAt'] = None
+
+ # set to None if file_created_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.file_created_at is None and "file_created_at" in self.model_fields_set:
+ _dict['fileCreatedAt'] = None
+
+ # set to None if file_modified_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.file_modified_at is None and "file_modified_at" in self.model_fields_set:
+ _dict['fileModifiedAt'] = None
+
+ # set to None if local_date_time (nullable) is None
+ # and model_fields_set contains the field
+ if self.local_date_time is None and "local_date_time" in self.model_fields_set:
+ _dict['localDateTime'] = None
+
+ # set to None if thumbhash (nullable) is None
+ # and model_fields_set contains the field
+ if self.thumbhash is None and "thumbhash" in self.model_fields_set:
+ _dict['thumbhash'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SyncAssetV1 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"),
+ "deletedAt": obj.get("deletedAt"),
+ "fileCreatedAt": obj.get("fileCreatedAt"),
+ "fileModifiedAt": obj.get("fileModifiedAt"),
+ "id": obj.get("id"),
+ "isFavorite": obj.get("isFavorite"),
+ "isVisible": obj.get("isVisible"),
+ "localDateTime": obj.get("localDateTime"),
+ "ownerId": obj.get("ownerId"),
+ "thumbhash": obj.get("thumbhash"),
+ "type": obj.get("type")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_entity_type.py b/generated/immich/openapi_client/models/sync_entity_type.py
new file mode 100644
index 0000000..934fac5
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_entity_type.py
@@ -0,0 +1,45 @@
+# 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 SyncEntityType(str, Enum):
+ """
+ SyncEntityType
+ """
+
+ """
+ allowed enum values
+ """
+ USERV1 = 'UserV1'
+ USERDELETEV1 = 'UserDeleteV1'
+ PARTNERV1 = 'PartnerV1'
+ PARTNERDELETEV1 = 'PartnerDeleteV1'
+ ASSETV1 = 'AssetV1'
+ ASSETDELETEV1 = 'AssetDeleteV1'
+ ASSETEXIFV1 = 'AssetExifV1'
+ PARTNERASSETV1 = 'PartnerAssetV1'
+ PARTNERASSETDELETEV1 = 'PartnerAssetDeleteV1'
+ PARTNERASSETEXIFV1 = 'PartnerAssetExifV1'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of SyncEntityType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/sync_partner_delete_v1.py b/generated/immich/openapi_client/models/sync_partner_delete_v1.py
new file mode 100644
index 0000000..bc31927
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_partner_delete_v1.py
@@ -0,0 +1,89 @@
+# 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 SyncPartnerDeleteV1(BaseModel):
+ """
+ SyncPartnerDeleteV1
+ """ # noqa: E501
+ shared_by_id: StrictStr = Field(alias="sharedById")
+ shared_with_id: StrictStr = Field(alias="sharedWithId")
+ __properties: ClassVar[List[str]] = ["sharedById", "sharedWithId"]
+
+ 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 SyncPartnerDeleteV1 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 SyncPartnerDeleteV1 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "sharedById": obj.get("sharedById"),
+ "sharedWithId": obj.get("sharedWithId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_partner_v1.py b/generated/immich/openapi_client/models/sync_partner_v1.py
new file mode 100644
index 0000000..a0f81a2
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_partner_v1.py
@@ -0,0 +1,91 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class SyncPartnerV1(BaseModel):
+ """
+ SyncPartnerV1
+ """ # noqa: E501
+ in_timeline: StrictBool = Field(alias="inTimeline")
+ shared_by_id: StrictStr = Field(alias="sharedById")
+ shared_with_id: StrictStr = Field(alias="sharedWithId")
+ __properties: ClassVar[List[str]] = ["inTimeline", "sharedById", "sharedWithId"]
+
+ 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 SyncPartnerV1 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 SyncPartnerV1 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "inTimeline": obj.get("inTimeline"),
+ "sharedById": obj.get("sharedById"),
+ "sharedWithId": obj.get("sharedWithId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_request_type.py b/generated/immich/openapi_client/models/sync_request_type.py
new file mode 100644
index 0000000..cddf4cd
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_request_type.py
@@ -0,0 +1,41 @@
+# 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 SyncRequestType(str, Enum):
+ """
+ SyncRequestType
+ """
+
+ """
+ allowed enum values
+ """
+ USERSV1 = 'UsersV1'
+ PARTNERSV1 = 'PartnersV1'
+ ASSETSV1 = 'AssetsV1'
+ ASSETEXIFSV1 = 'AssetExifsV1'
+ PARTNERASSETSV1 = 'PartnerAssetsV1'
+ PARTNERASSETEXIFSV1 = 'PartnerAssetExifsV1'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of SyncRequestType from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/sync_stream_dto.py b/generated/immich/openapi_client/models/sync_stream_dto.py
new file mode 100644
index 0000000..392129e
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_stream_dto.py
@@ -0,0 +1,88 @@
+# 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.sync_request_type import SyncRequestType
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SyncStreamDto(BaseModel):
+ """
+ SyncStreamDto
+ """ # noqa: E501
+ types: List[SyncRequestType]
+ __properties: ClassVar[List[str]] = ["types"]
+
+ 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 SyncStreamDto 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 SyncStreamDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "types": obj.get("types")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_user_delete_v1.py b/generated/immich/openapi_client/models/sync_user_delete_v1.py
new file mode 100644
index 0000000..4cd12fd
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_user_delete_v1.py
@@ -0,0 +1,87 @@
+# 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 SyncUserDeleteV1(BaseModel):
+ """
+ SyncUserDeleteV1
+ """ # noqa: E501
+ user_id: StrictStr = Field(alias="userId")
+ __properties: ClassVar[List[str]] = ["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 SyncUserDeleteV1 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 SyncUserDeleteV1 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "userId": obj.get("userId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/sync_user_v1.py b/generated/immich/openapi_client/models/sync_user_v1.py
new file mode 100644
index 0000000..2b4634e
--- /dev/null
+++ b/generated/immich/openapi_client/models/sync_user_v1.py
@@ -0,0 +1,99 @@
+# 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 import Optional, Set
+from typing_extensions import Self
+
+class SyncUserV1(BaseModel):
+ """
+ SyncUserV1
+ """ # noqa: E501
+ deleted_at: Optional[datetime] = Field(alias="deletedAt")
+ email: StrictStr
+ id: StrictStr
+ name: StrictStr
+ __properties: ClassVar[List[str]] = ["deletedAt", "email", "id", "name"]
+
+ 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 SyncUserV1 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,
+ )
+ # set to None if deleted_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.deleted_at is None and "deleted_at" in self.model_fields_set:
+ _dict['deletedAt'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SyncUserV1 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "deletedAt": obj.get("deletedAt"),
+ "email": obj.get("email"),
+ "id": obj.get("id"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_backups_dto.py b/generated/immich/openapi_client/models/system_config_backups_dto.py
new file mode 100644
index 0000000..1af2ba4
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_backups_dto.py
@@ -0,0 +1,91 @@
+# 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.database_backup_config import DatabaseBackupConfig
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigBackupsDto(BaseModel):
+ """
+ SystemConfigBackupsDto
+ """ # noqa: E501
+ database: DatabaseBackupConfig
+ __properties: ClassVar[List[str]] = ["database"]
+
+ 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 SystemConfigBackupsDto 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 database
+ if self.database:
+ _dict['database'] = self.database.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigBackupsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "database": DatabaseBackupConfig.from_dict(obj["database"]) if obj.get("database") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_dto.py b/generated/immich/openapi_client/models/system_config_dto.py
new file mode 100644
index 0000000..23e0c58
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_dto.py
@@ -0,0 +1,205 @@
+# 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.system_config_backups_dto import SystemConfigBackupsDto
+from generated.immich.openapi_client.models.system_config_f_fmpeg_dto import SystemConfigFFmpegDto
+from generated.immich.openapi_client.models.system_config_image_dto import SystemConfigImageDto
+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_logging_dto import SystemConfigLoggingDto
+from generated.immich.openapi_client.models.system_config_machine_learning_dto import SystemConfigMachineLearningDto
+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_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
+from generated.immich.openapi_client.models.system_config_reverse_geocoding_dto import SystemConfigReverseGeocodingDto
+from generated.immich.openapi_client.models.system_config_server_dto import SystemConfigServerDto
+from generated.immich.openapi_client.models.system_config_storage_template_dto import SystemConfigStorageTemplateDto
+from generated.immich.openapi_client.models.system_config_templates_dto import SystemConfigTemplatesDto
+from generated.immich.openapi_client.models.system_config_theme_dto import SystemConfigThemeDto
+from generated.immich.openapi_client.models.system_config_trash_dto import SystemConfigTrashDto
+from generated.immich.openapi_client.models.system_config_user_dto import SystemConfigUserDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigDto(BaseModel):
+ """
+ SystemConfigDto
+ """ # noqa: E501
+ backup: SystemConfigBackupsDto
+ ffmpeg: SystemConfigFFmpegDto
+ image: SystemConfigImageDto
+ job: SystemConfigJobDto
+ library: SystemConfigLibraryDto
+ logging: SystemConfigLoggingDto
+ machine_learning: SystemConfigMachineLearningDto = Field(alias="machineLearning")
+ map: SystemConfigMapDto
+ metadata: SystemConfigMetadataDto
+ new_version_check: SystemConfigNewVersionCheckDto = Field(alias="newVersionCheck")
+ notifications: SystemConfigNotificationsDto
+ oauth: SystemConfigOAuthDto
+ password_login: SystemConfigPasswordLoginDto = Field(alias="passwordLogin")
+ reverse_geocoding: SystemConfigReverseGeocodingDto = Field(alias="reverseGeocoding")
+ server: SystemConfigServerDto
+ storage_template: SystemConfigStorageTemplateDto = Field(alias="storageTemplate")
+ templates: SystemConfigTemplatesDto
+ theme: SystemConfigThemeDto
+ trash: SystemConfigTrashDto
+ user: SystemConfigUserDto
+ __properties: ClassVar[List[str]] = ["backup", "ffmpeg", "image", "job", "library", "logging", "machineLearning", "map", "metadata", "newVersionCheck", "notifications", "oauth", "passwordLogin", "reverseGeocoding", "server", "storageTemplate", "templates", "theme", "trash", "user"]
+
+ 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 SystemConfigDto 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 backup
+ if self.backup:
+ _dict['backup'] = self.backup.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of ffmpeg
+ if self.ffmpeg:
+ _dict['ffmpeg'] = self.ffmpeg.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of image
+ if self.image:
+ _dict['image'] = self.image.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of job
+ if self.job:
+ _dict['job'] = self.job.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 logging
+ if self.logging:
+ _dict['logging'] = self.logging.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of machine_learning
+ if self.machine_learning:
+ _dict['machineLearning'] = self.machine_learning.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of map
+ if self.map:
+ _dict['map'] = self.map.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of new_version_check
+ if self.new_version_check:
+ _dict['newVersionCheck'] = self.new_version_check.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 oauth
+ if self.oauth:
+ _dict['oauth'] = self.oauth.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of password_login
+ if self.password_login:
+ _dict['passwordLogin'] = self.password_login.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of reverse_geocoding
+ if self.reverse_geocoding:
+ _dict['reverseGeocoding'] = self.reverse_geocoding.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of server
+ if self.server:
+ _dict['server'] = self.server.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of storage_template
+ if self.storage_template:
+ _dict['storageTemplate'] = self.storage_template.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of templates
+ if self.templates:
+ _dict['templates'] = self.templates.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of theme
+ if self.theme:
+ _dict['theme'] = self.theme.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of trash
+ if self.trash:
+ _dict['trash'] = self.trash.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of user
+ if self.user:
+ _dict['user'] = self.user.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "backup": SystemConfigBackupsDto.from_dict(obj["backup"]) if obj.get("backup") is not None else None,
+ "ffmpeg": SystemConfigFFmpegDto.from_dict(obj["ffmpeg"]) if obj.get("ffmpeg") is not None else None,
+ "image": SystemConfigImageDto.from_dict(obj["image"]) if obj.get("image") is not None else None,
+ "job": SystemConfigJobDto.from_dict(obj["job"]) if obj.get("job") is not None else None,
+ "library": SystemConfigLibraryDto.from_dict(obj["library"]) if obj.get("library") is not None else None,
+ "logging": SystemConfigLoggingDto.from_dict(obj["logging"]) if obj.get("logging") is not None else None,
+ "machineLearning": SystemConfigMachineLearningDto.from_dict(obj["machineLearning"]) if obj.get("machineLearning") is not None else None,
+ "map": SystemConfigMapDto.from_dict(obj["map"]) if obj.get("map") is not None else None,
+ "metadata": SystemConfigMetadataDto.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "newVersionCheck": SystemConfigNewVersionCheckDto.from_dict(obj["newVersionCheck"]) if obj.get("newVersionCheck") is not None else None,
+ "notifications": SystemConfigNotificationsDto.from_dict(obj["notifications"]) if obj.get("notifications") is not None else None,
+ "oauth": SystemConfigOAuthDto.from_dict(obj["oauth"]) if obj.get("oauth") is not None else None,
+ "passwordLogin": SystemConfigPasswordLoginDto.from_dict(obj["passwordLogin"]) if obj.get("passwordLogin") is not None else None,
+ "reverseGeocoding": SystemConfigReverseGeocodingDto.from_dict(obj["reverseGeocoding"]) if obj.get("reverseGeocoding") is not None else None,
+ "server": SystemConfigServerDto.from_dict(obj["server"]) if obj.get("server") is not None else None,
+ "storageTemplate": SystemConfigStorageTemplateDto.from_dict(obj["storageTemplate"]) if obj.get("storageTemplate") is not None else None,
+ "templates": SystemConfigTemplatesDto.from_dict(obj["templates"]) if obj.get("templates") is not None else None,
+ "theme": SystemConfigThemeDto.from_dict(obj["theme"]) if obj.get("theme") is not None else None,
+ "trash": SystemConfigTrashDto.from_dict(obj["trash"]) if obj.get("trash") is not None else None,
+ "user": SystemConfigUserDto.from_dict(obj["user"]) if obj.get("user") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_f_fmpeg_dto.py b/generated/immich/openapi_client/models/system_config_f_fmpeg_dto.py
new file mode 100644
index 0000000..2ac62e2
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_f_fmpeg_dto.py
@@ -0,0 +1,135 @@
+# 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 typing_extensions import Annotated
+from generated.immich.openapi_client.models.audio_codec import AudioCodec
+from generated.immich.openapi_client.models.cq_mode import CQMode
+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
+from generated.immich.openapi_client.models.video_codec import VideoCodec
+from generated.immich.openapi_client.models.video_container import VideoContainer
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigFFmpegDto(BaseModel):
+ """
+ SystemConfigFFmpegDto
+ """ # noqa: E501
+ accel: TranscodeHWAccel
+ accel_decode: StrictBool = Field(alias="accelDecode")
+ accepted_audio_codecs: List[AudioCodec] = Field(alias="acceptedAudioCodecs")
+ accepted_containers: List[VideoContainer] = Field(alias="acceptedContainers")
+ accepted_video_codecs: List[VideoCodec] = Field(alias="acceptedVideoCodecs")
+ bframes: Annotated[int, Field(le=16, strict=True, ge=-1)]
+ cq_mode: CQMode = Field(alias="cqMode")
+ crf: Annotated[int, Field(le=51, strict=True, ge=0)]
+ gop_size: Annotated[int, Field(strict=True, ge=0)] = Field(alias="gopSize")
+ max_bitrate: StrictStr = Field(alias="maxBitrate")
+ preferred_hw_device: StrictStr = Field(alias="preferredHwDevice")
+ preset: StrictStr
+ refs: Annotated[int, Field(le=6, strict=True, ge=0)]
+ target_audio_codec: AudioCodec = Field(alias="targetAudioCodec")
+ target_resolution: StrictStr = Field(alias="targetResolution")
+ target_video_codec: VideoCodec = Field(alias="targetVideoCodec")
+ temporal_aq: StrictBool = Field(alias="temporalAQ")
+ threads: Annotated[int, Field(strict=True, ge=0)]
+ tonemap: ToneMapping
+ transcode: TranscodePolicy
+ two_pass: StrictBool = Field(alias="twoPass")
+ __properties: ClassVar[List[str]] = ["accel", "accelDecode", "acceptedAudioCodecs", "acceptedContainers", "acceptedVideoCodecs", "bframes", "cqMode", "crf", "gopSize", "maxBitrate", "preferredHwDevice", "preset", "refs", "targetAudioCodec", "targetResolution", "targetVideoCodec", "temporalAQ", "threads", "tonemap", "transcode", "twoPass"]
+
+ 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 SystemConfigFFmpegDto 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 SystemConfigFFmpegDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "accel": obj.get("accel"),
+ "accelDecode": obj.get("accelDecode"),
+ "acceptedAudioCodecs": obj.get("acceptedAudioCodecs"),
+ "acceptedContainers": obj.get("acceptedContainers"),
+ "acceptedVideoCodecs": obj.get("acceptedVideoCodecs"),
+ "bframes": obj.get("bframes"),
+ "cqMode": obj.get("cqMode"),
+ "crf": obj.get("crf"),
+ "gopSize": obj.get("gopSize"),
+ "maxBitrate": obj.get("maxBitrate"),
+ "preferredHwDevice": obj.get("preferredHwDevice"),
+ "preset": obj.get("preset"),
+ "refs": obj.get("refs"),
+ "targetAudioCodec": obj.get("targetAudioCodec"),
+ "targetResolution": obj.get("targetResolution"),
+ "targetVideoCodec": obj.get("targetVideoCodec"),
+ "temporalAQ": obj.get("temporalAQ"),
+ "threads": obj.get("threads"),
+ "tonemap": obj.get("tonemap"),
+ "transcode": obj.get("transcode"),
+ "twoPass": obj.get("twoPass")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_faces_dto.py b/generated/immich/openapi_client/models/system_config_faces_dto.py
new file mode 100644
index 0000000..3f007aa
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_faces_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigFacesDto(BaseModel):
+ """
+ SystemConfigFacesDto
+ """ # noqa: E501
+ var_import: StrictBool = Field(alias="import")
+ __properties: ClassVar[List[str]] = ["import"]
+
+ 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 SystemConfigFacesDto 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 SystemConfigFacesDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "import": obj.get("import")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_generated_fullsize_image_dto.py b/generated/immich/openapi_client/models/system_config_generated_fullsize_image_dto.py
new file mode 100644
index 0000000..041f7c6
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_generated_fullsize_image_dto.py
@@ -0,0 +1,93 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.image_format import ImageFormat
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigGeneratedFullsizeImageDto(BaseModel):
+ """
+ SystemConfigGeneratedFullsizeImageDto
+ """ # noqa: E501
+ enabled: StrictBool
+ format: ImageFormat
+ quality: Annotated[int, Field(le=100, strict=True, ge=1)]
+ __properties: ClassVar[List[str]] = ["enabled", "format", "quality"]
+
+ 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 SystemConfigGeneratedFullsizeImageDto 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 SystemConfigGeneratedFullsizeImageDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "format": obj.get("format"),
+ "quality": obj.get("quality")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_generated_image_dto.py b/generated/immich/openapi_client/models/system_config_generated_image_dto.py
new file mode 100644
index 0000000..566955f
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_generated_image_dto.py
@@ -0,0 +1,93 @@
+# 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 typing_extensions import Annotated
+from generated.immich.openapi_client.models.image_format import ImageFormat
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigGeneratedImageDto(BaseModel):
+ """
+ SystemConfigGeneratedImageDto
+ """ # noqa: E501
+ format: ImageFormat
+ quality: Annotated[int, Field(le=100, strict=True, ge=1)]
+ size: Annotated[int, Field(strict=True, ge=1)]
+ __properties: ClassVar[List[str]] = ["format", "quality", "size"]
+
+ 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 SystemConfigGeneratedImageDto 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 SystemConfigGeneratedImageDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "format": obj.get("format"),
+ "quality": obj.get("quality"),
+ "size": obj.get("size")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_image_dto.py b/generated/immich/openapi_client/models/system_config_image_dto.py
new file mode 100644
index 0000000..f3a9240
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_image_dto.py
@@ -0,0 +1,107 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from generated.immich.openapi_client.models.colorspace import Colorspace
+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 typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigImageDto(BaseModel):
+ """
+ SystemConfigImageDto
+ """ # noqa: E501
+ colorspace: Colorspace
+ extract_embedded: StrictBool = Field(alias="extractEmbedded")
+ fullsize: SystemConfigGeneratedFullsizeImageDto
+ preview: SystemConfigGeneratedImageDto
+ thumbnail: SystemConfigGeneratedImageDto
+ __properties: ClassVar[List[str]] = ["colorspace", "extractEmbedded", "fullsize", "preview", "thumbnail"]
+
+ 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 SystemConfigImageDto 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 fullsize
+ if self.fullsize:
+ _dict['fullsize'] = self.fullsize.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of preview
+ if self.preview:
+ _dict['preview'] = self.preview.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of thumbnail
+ if self.thumbnail:
+ _dict['thumbnail'] = self.thumbnail.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigImageDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "colorspace": obj.get("colorspace"),
+ "extractEmbedded": obj.get("extractEmbedded"),
+ "fullsize": SystemConfigGeneratedFullsizeImageDto.from_dict(obj["fullsize"]) if obj.get("fullsize") is not None else None,
+ "preview": SystemConfigGeneratedImageDto.from_dict(obj["preview"]) if obj.get("preview") is not None else None,
+ "thumbnail": SystemConfigGeneratedImageDto.from_dict(obj["thumbnail"]) if obj.get("thumbnail") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_job_dto.py b/generated/immich/openapi_client/models/system_config_job_dto.py
new file mode 100644
index 0000000..0a53f90
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_job_dto.py
@@ -0,0 +1,141 @@
+# 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_settings_dto import JobSettingsDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigJobDto(BaseModel):
+ """
+ SystemConfigJobDto
+ """ # noqa: E501
+ background_task: JobSettingsDto = Field(alias="backgroundTask")
+ face_detection: JobSettingsDto = Field(alias="faceDetection")
+ library: JobSettingsDto
+ metadata_extraction: JobSettingsDto = Field(alias="metadataExtraction")
+ migration: JobSettingsDto
+ notifications: JobSettingsDto
+ search: JobSettingsDto
+ sidecar: JobSettingsDto
+ smart_search: JobSettingsDto = Field(alias="smartSearch")
+ thumbnail_generation: JobSettingsDto = Field(alias="thumbnailGeneration")
+ video_conversion: JobSettingsDto = Field(alias="videoConversion")
+ __properties: ClassVar[List[str]] = ["backgroundTask", "faceDetection", "library", "metadataExtraction", "migration", "notifications", "search", "sidecar", "smartSearch", "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 SystemConfigJobDto 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 face_detection
+ if self.face_detection:
+ _dict['faceDetection'] = self.face_detection.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 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 SystemConfigJobDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "backgroundTask": JobSettingsDto.from_dict(obj["backgroundTask"]) if obj.get("backgroundTask") is not None else None,
+ "faceDetection": JobSettingsDto.from_dict(obj["faceDetection"]) if obj.get("faceDetection") is not None else None,
+ "library": JobSettingsDto.from_dict(obj["library"]) if obj.get("library") is not None else None,
+ "metadataExtraction": JobSettingsDto.from_dict(obj["metadataExtraction"]) if obj.get("metadataExtraction") is not None else None,
+ "migration": JobSettingsDto.from_dict(obj["migration"]) if obj.get("migration") is not None else None,
+ "notifications": JobSettingsDto.from_dict(obj["notifications"]) if obj.get("notifications") is not None else None,
+ "search": JobSettingsDto.from_dict(obj["search"]) if obj.get("search") is not None else None,
+ "sidecar": JobSettingsDto.from_dict(obj["sidecar"]) if obj.get("sidecar") is not None else None,
+ "smartSearch": JobSettingsDto.from_dict(obj["smartSearch"]) if obj.get("smartSearch") is not None else None,
+ "thumbnailGeneration": JobSettingsDto.from_dict(obj["thumbnailGeneration"]) if obj.get("thumbnailGeneration") is not None else None,
+ "videoConversion": JobSettingsDto.from_dict(obj["videoConversion"]) if obj.get("videoConversion") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_library_dto.py b/generated/immich/openapi_client/models/system_config_library_dto.py
new file mode 100644
index 0000000..c360f72
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_library_dto.py
@@ -0,0 +1,97 @@
+# 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.system_config_library_scan_dto import SystemConfigLibraryScanDto
+from generated.immich.openapi_client.models.system_config_library_watch_dto import SystemConfigLibraryWatchDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigLibraryDto(BaseModel):
+ """
+ SystemConfigLibraryDto
+ """ # noqa: E501
+ scan: SystemConfigLibraryScanDto
+ watch: SystemConfigLibraryWatchDto
+ __properties: ClassVar[List[str]] = ["scan", "watch"]
+
+ 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 SystemConfigLibraryDto 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 scan
+ if self.scan:
+ _dict['scan'] = self.scan.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of watch
+ if self.watch:
+ _dict['watch'] = self.watch.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigLibraryDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "scan": SystemConfigLibraryScanDto.from_dict(obj["scan"]) if obj.get("scan") is not None else None,
+ "watch": SystemConfigLibraryWatchDto.from_dict(obj["watch"]) if obj.get("watch") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_library_scan_dto.py b/generated/immich/openapi_client/models/system_config_library_scan_dto.py
new file mode 100644
index 0000000..6a48d59
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_library_scan_dto.py
@@ -0,0 +1,89 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigLibraryScanDto(BaseModel):
+ """
+ SystemConfigLibraryScanDto
+ """ # noqa: E501
+ cron_expression: StrictStr = Field(alias="cronExpression")
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["cronExpression", "enabled"]
+
+ 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 SystemConfigLibraryScanDto 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 SystemConfigLibraryScanDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "cronExpression": obj.get("cronExpression"),
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_library_watch_dto.py b/generated/immich/openapi_client/models/system_config_library_watch_dto.py
new file mode 100644
index 0000000..d0a59dd
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_library_watch_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigLibraryWatchDto(BaseModel):
+ """
+ SystemConfigLibraryWatchDto
+ """ # noqa: E501
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 SystemConfigLibraryWatchDto 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 SystemConfigLibraryWatchDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_logging_dto.py b/generated/immich/openapi_client/models/system_config_logging_dto.py
new file mode 100644
index 0000000..0ee89ad
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_logging_dto.py
@@ -0,0 +1,90 @@
+# 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
+from generated.immich.openapi_client.models.log_level import LogLevel
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigLoggingDto(BaseModel):
+ """
+ SystemConfigLoggingDto
+ """ # noqa: E501
+ enabled: StrictBool
+ level: LogLevel
+ __properties: ClassVar[List[str]] = ["enabled", "level"]
+
+ 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 SystemConfigLoggingDto 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 SystemConfigLoggingDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "level": obj.get("level")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_machine_learning_dto.py b/generated/immich/openapi_client/models/system_config_machine_learning_dto.py
new file mode 100644
index 0000000..10a9f62
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_machine_learning_dto.py
@@ -0,0 +1,110 @@
+# 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, Optional
+from typing_extensions import Annotated
+from generated.immich.openapi_client.models.clip_config import CLIPConfig
+from generated.immich.openapi_client.models.duplicate_detection_config import DuplicateDetectionConfig
+from generated.immich.openapi_client.models.facial_recognition_config import FacialRecognitionConfig
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigMachineLearningDto(BaseModel):
+ """
+ SystemConfigMachineLearningDto
+ """ # noqa: E501
+ clip: CLIPConfig
+ duplicate_detection: DuplicateDetectionConfig = Field(alias="duplicateDetection")
+ enabled: StrictBool
+ facial_recognition: FacialRecognitionConfig = Field(alias="facialRecognition")
+ url: Optional[StrictStr] = Field(default=None, description="This property was deprecated in v1.122.0")
+ urls: Annotated[List[StrictStr], Field(min_length=1)]
+ __properties: ClassVar[List[str]] = ["clip", "duplicateDetection", "enabled", "facialRecognition", "url", "urls"]
+
+ 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 SystemConfigMachineLearningDto 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 clip
+ if self.clip:
+ _dict['clip'] = self.clip.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 facial_recognition
+ if self.facial_recognition:
+ _dict['facialRecognition'] = self.facial_recognition.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigMachineLearningDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "clip": CLIPConfig.from_dict(obj["clip"]) if obj.get("clip") is not None else None,
+ "duplicateDetection": DuplicateDetectionConfig.from_dict(obj["duplicateDetection"]) if obj.get("duplicateDetection") is not None else None,
+ "enabled": obj.get("enabled"),
+ "facialRecognition": FacialRecognitionConfig.from_dict(obj["facialRecognition"]) if obj.get("facialRecognition") is not None else None,
+ "url": obj.get("url"),
+ "urls": obj.get("urls")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_map_dto.py b/generated/immich/openapi_client/models/system_config_map_dto.py
new file mode 100644
index 0000000..725ec90
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_map_dto.py
@@ -0,0 +1,91 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigMapDto(BaseModel):
+ """
+ SystemConfigMapDto
+ """ # noqa: E501
+ dark_style: StrictStr = Field(alias="darkStyle")
+ enabled: StrictBool
+ light_style: StrictStr = Field(alias="lightStyle")
+ __properties: ClassVar[List[str]] = ["darkStyle", "enabled", "lightStyle"]
+
+ 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 SystemConfigMapDto 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 SystemConfigMapDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "darkStyle": obj.get("darkStyle"),
+ "enabled": obj.get("enabled"),
+ "lightStyle": obj.get("lightStyle")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_metadata_dto.py b/generated/immich/openapi_client/models/system_config_metadata_dto.py
new file mode 100644
index 0000000..29a80be
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_metadata_dto.py
@@ -0,0 +1,91 @@
+# 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.system_config_faces_dto import SystemConfigFacesDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigMetadataDto(BaseModel):
+ """
+ SystemConfigMetadataDto
+ """ # noqa: E501
+ faces: SystemConfigFacesDto
+ __properties: ClassVar[List[str]] = ["faces"]
+
+ 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 SystemConfigMetadataDto 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 faces
+ if self.faces:
+ _dict['faces'] = self.faces.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigMetadataDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "faces": SystemConfigFacesDto.from_dict(obj["faces"]) if obj.get("faces") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_new_version_check_dto.py b/generated/immich/openapi_client/models/system_config_new_version_check_dto.py
new file mode 100644
index 0000000..01ef91f
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_new_version_check_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigNewVersionCheckDto(BaseModel):
+ """
+ SystemConfigNewVersionCheckDto
+ """ # noqa: E501
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 SystemConfigNewVersionCheckDto 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 SystemConfigNewVersionCheckDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_notifications_dto.py b/generated/immich/openapi_client/models/system_config_notifications_dto.py
new file mode 100644
index 0000000..7890e43
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_notifications_dto.py
@@ -0,0 +1,91 @@
+# 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.system_config_smtp_dto import SystemConfigSmtpDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigNotificationsDto(BaseModel):
+ """
+ SystemConfigNotificationsDto
+ """ # noqa: E501
+ smtp: SystemConfigSmtpDto
+ __properties: ClassVar[List[str]] = ["smtp"]
+
+ 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 SystemConfigNotificationsDto 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 smtp
+ if self.smtp:
+ _dict['smtp'] = self.smtp.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigNotificationsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "smtp": SystemConfigSmtpDto.from_dict(obj["smtp"]) if obj.get("smtp") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_o_auth_dto.py b/generated/immich/openapi_client/models/system_config_o_auth_dto.py
new file mode 100644
index 0000000..dc60bf8
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_o_auth_dto.py
@@ -0,0 +1,116 @@
+# 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, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigOAuthDto(BaseModel):
+ """
+ SystemConfigOAuthDto
+ """ # noqa: E501
+ auto_launch: StrictBool = Field(alias="autoLaunch")
+ auto_register: StrictBool = Field(alias="autoRegister")
+ button_text: StrictStr = Field(alias="buttonText")
+ client_id: StrictStr = Field(alias="clientId")
+ client_secret: StrictStr = Field(alias="clientSecret")
+ default_storage_quota: Union[Annotated[float, Field(strict=True, ge=0)], Annotated[int, Field(strict=True, ge=0)]] = Field(alias="defaultStorageQuota")
+ enabled: StrictBool
+ issuer_url: StrictStr = Field(alias="issuerUrl")
+ mobile_override_enabled: StrictBool = Field(alias="mobileOverrideEnabled")
+ mobile_redirect_uri: StrictStr = Field(alias="mobileRedirectUri")
+ profile_signing_algorithm: StrictStr = Field(alias="profileSigningAlgorithm")
+ scope: StrictStr
+ signing_algorithm: StrictStr = Field(alias="signingAlgorithm")
+ storage_label_claim: StrictStr = Field(alias="storageLabelClaim")
+ storage_quota_claim: StrictStr = Field(alias="storageQuotaClaim")
+ __properties: ClassVar[List[str]] = ["autoLaunch", "autoRegister", "buttonText", "clientId", "clientSecret", "defaultStorageQuota", "enabled", "issuerUrl", "mobileOverrideEnabled", "mobileRedirectUri", "profileSigningAlgorithm", "scope", "signingAlgorithm", "storageLabelClaim", "storageQuotaClaim"]
+
+ 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 SystemConfigOAuthDto 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 SystemConfigOAuthDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "autoLaunch": obj.get("autoLaunch"),
+ "autoRegister": obj.get("autoRegister"),
+ "buttonText": obj.get("buttonText"),
+ "clientId": obj.get("clientId"),
+ "clientSecret": obj.get("clientSecret"),
+ "defaultStorageQuota": obj.get("defaultStorageQuota"),
+ "enabled": obj.get("enabled"),
+ "issuerUrl": obj.get("issuerUrl"),
+ "mobileOverrideEnabled": obj.get("mobileOverrideEnabled"),
+ "mobileRedirectUri": obj.get("mobileRedirectUri"),
+ "profileSigningAlgorithm": obj.get("profileSigningAlgorithm"),
+ "scope": obj.get("scope"),
+ "signingAlgorithm": obj.get("signingAlgorithm"),
+ "storageLabelClaim": obj.get("storageLabelClaim"),
+ "storageQuotaClaim": obj.get("storageQuotaClaim")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_password_login_dto.py b/generated/immich/openapi_client/models/system_config_password_login_dto.py
new file mode 100644
index 0000000..f9d50da
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_password_login_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigPasswordLoginDto(BaseModel):
+ """
+ SystemConfigPasswordLoginDto
+ """ # noqa: E501
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 SystemConfigPasswordLoginDto 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 SystemConfigPasswordLoginDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_reverse_geocoding_dto.py b/generated/immich/openapi_client/models/system_config_reverse_geocoding_dto.py
new file mode 100644
index 0000000..43b9740
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_reverse_geocoding_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigReverseGeocodingDto(BaseModel):
+ """
+ SystemConfigReverseGeocodingDto
+ """ # noqa: E501
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["enabled"]
+
+ 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 SystemConfigReverseGeocodingDto 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 SystemConfigReverseGeocodingDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_server_dto.py b/generated/immich/openapi_client/models/system_config_server_dto.py
new file mode 100644
index 0000000..9c203f9
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_server_dto.py
@@ -0,0 +1,91 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigServerDto(BaseModel):
+ """
+ SystemConfigServerDto
+ """ # noqa: E501
+ external_domain: StrictStr = Field(alias="externalDomain")
+ login_page_message: StrictStr = Field(alias="loginPageMessage")
+ public_users: StrictBool = Field(alias="publicUsers")
+ __properties: ClassVar[List[str]] = ["externalDomain", "loginPageMessage", "publicUsers"]
+
+ 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 SystemConfigServerDto 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 SystemConfigServerDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "externalDomain": obj.get("externalDomain"),
+ "loginPageMessage": obj.get("loginPageMessage"),
+ "publicUsers": obj.get("publicUsers")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_smtp_dto.py b/generated/immich/openapi_client/models/system_config_smtp_dto.py
new file mode 100644
index 0000000..165ace6
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_smtp_dto.py
@@ -0,0 +1,97 @@
+# 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.system_config_smtp_transport_dto import SystemConfigSmtpTransportDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigSmtpDto(BaseModel):
+ """
+ SystemConfigSmtpDto
+ """ # noqa: E501
+ enabled: StrictBool
+ var_from: StrictStr = Field(alias="from")
+ reply_to: StrictStr = Field(alias="replyTo")
+ transport: SystemConfigSmtpTransportDto
+ __properties: ClassVar[List[str]] = ["enabled", "from", "replyTo", "transport"]
+
+ 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 SystemConfigSmtpDto 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 transport
+ if self.transport:
+ _dict['transport'] = self.transport.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigSmtpDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "from": obj.get("from"),
+ "replyTo": obj.get("replyTo"),
+ "transport": SystemConfigSmtpTransportDto.from_dict(obj["transport"]) if obj.get("transport") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_smtp_transport_dto.py b/generated/immich/openapi_client/models/system_config_smtp_transport_dto.py
new file mode 100644
index 0000000..4f3d819
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_smtp_transport_dto.py
@@ -0,0 +1,96 @@
+# 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, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigSmtpTransportDto(BaseModel):
+ """
+ SystemConfigSmtpTransportDto
+ """ # noqa: E501
+ host: StrictStr
+ ignore_cert: StrictBool = Field(alias="ignoreCert")
+ password: StrictStr
+ port: Union[Annotated[float, Field(le=65535, strict=True, ge=0)], Annotated[int, Field(le=65535, strict=True, ge=0)]]
+ username: StrictStr
+ __properties: ClassVar[List[str]] = ["host", "ignoreCert", "password", "port", "username"]
+
+ 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 SystemConfigSmtpTransportDto 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 SystemConfigSmtpTransportDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "host": obj.get("host"),
+ "ignoreCert": obj.get("ignoreCert"),
+ "password": obj.get("password"),
+ "port": obj.get("port"),
+ "username": obj.get("username")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_storage_template_dto.py b/generated/immich/openapi_client/models/system_config_storage_template_dto.py
new file mode 100644
index 0000000..44c39b0
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_storage_template_dto.py
@@ -0,0 +1,91 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigStorageTemplateDto(BaseModel):
+ """
+ SystemConfigStorageTemplateDto
+ """ # noqa: E501
+ enabled: StrictBool
+ hash_verification_enabled: StrictBool = Field(alias="hashVerificationEnabled")
+ template: StrictStr
+ __properties: ClassVar[List[str]] = ["enabled", "hashVerificationEnabled", "template"]
+
+ 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 SystemConfigStorageTemplateDto 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 SystemConfigStorageTemplateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "hashVerificationEnabled": obj.get("hashVerificationEnabled"),
+ "template": obj.get("template")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_template_emails_dto.py b/generated/immich/openapi_client/models/system_config_template_emails_dto.py
new file mode 100644
index 0000000..e57f58a
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_template_emails_dto.py
@@ -0,0 +1,91 @@
+# 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 SystemConfigTemplateEmailsDto(BaseModel):
+ """
+ SystemConfigTemplateEmailsDto
+ """ # noqa: E501
+ album_invite_template: StrictStr = Field(alias="albumInviteTemplate")
+ album_update_template: StrictStr = Field(alias="albumUpdateTemplate")
+ welcome_template: StrictStr = Field(alias="welcomeTemplate")
+ __properties: ClassVar[List[str]] = ["albumInviteTemplate", "albumUpdateTemplate", "welcomeTemplate"]
+
+ 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 SystemConfigTemplateEmailsDto 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 SystemConfigTemplateEmailsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumInviteTemplate": obj.get("albumInviteTemplate"),
+ "albumUpdateTemplate": obj.get("albumUpdateTemplate"),
+ "welcomeTemplate": obj.get("welcomeTemplate")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_template_storage_option_dto.py b/generated/immich/openapi_client/models/system_config_template_storage_option_dto.py
new file mode 100644
index 0000000..d66bbee
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_template_storage_option_dto.py
@@ -0,0 +1,101 @@
+# 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 SystemConfigTemplateStorageOptionDto(BaseModel):
+ """
+ SystemConfigTemplateStorageOptionDto
+ """ # noqa: E501
+ day_options: List[StrictStr] = Field(alias="dayOptions")
+ hour_options: List[StrictStr] = Field(alias="hourOptions")
+ minute_options: List[StrictStr] = Field(alias="minuteOptions")
+ month_options: List[StrictStr] = Field(alias="monthOptions")
+ preset_options: List[StrictStr] = Field(alias="presetOptions")
+ second_options: List[StrictStr] = Field(alias="secondOptions")
+ week_options: List[StrictStr] = Field(alias="weekOptions")
+ year_options: List[StrictStr] = Field(alias="yearOptions")
+ __properties: ClassVar[List[str]] = ["dayOptions", "hourOptions", "minuteOptions", "monthOptions", "presetOptions", "secondOptions", "weekOptions", "yearOptions"]
+
+ 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 SystemConfigTemplateStorageOptionDto 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 SystemConfigTemplateStorageOptionDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "dayOptions": obj.get("dayOptions"),
+ "hourOptions": obj.get("hourOptions"),
+ "minuteOptions": obj.get("minuteOptions"),
+ "monthOptions": obj.get("monthOptions"),
+ "presetOptions": obj.get("presetOptions"),
+ "secondOptions": obj.get("secondOptions"),
+ "weekOptions": obj.get("weekOptions"),
+ "yearOptions": obj.get("yearOptions")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_templates_dto.py b/generated/immich/openapi_client/models/system_config_templates_dto.py
new file mode 100644
index 0000000..30fc648
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_templates_dto.py
@@ -0,0 +1,91 @@
+# 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.system_config_template_emails_dto import SystemConfigTemplateEmailsDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigTemplatesDto(BaseModel):
+ """
+ SystemConfigTemplatesDto
+ """ # noqa: E501
+ email: SystemConfigTemplateEmailsDto
+ __properties: ClassVar[List[str]] = ["email"]
+
+ 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 SystemConfigTemplatesDto 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 email
+ if self.email:
+ _dict['email'] = self.email.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemConfigTemplatesDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "email": SystemConfigTemplateEmailsDto.from_dict(obj["email"]) if obj.get("email") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_theme_dto.py b/generated/immich/openapi_client/models/system_config_theme_dto.py
new file mode 100644
index 0000000..43789e9
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_theme_dto.py
@@ -0,0 +1,87 @@
+# 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 SystemConfigThemeDto(BaseModel):
+ """
+ SystemConfigThemeDto
+ """ # noqa: E501
+ custom_css: StrictStr = Field(alias="customCss")
+ __properties: ClassVar[List[str]] = ["customCss"]
+
+ 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 SystemConfigThemeDto 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 SystemConfigThemeDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "customCss": obj.get("customCss")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_trash_dto.py b/generated/immich/openapi_client/models/system_config_trash_dto.py
new file mode 100644
index 0000000..51dce3b
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_trash_dto.py
@@ -0,0 +1,90 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigTrashDto(BaseModel):
+ """
+ SystemConfigTrashDto
+ """ # noqa: E501
+ days: Annotated[int, Field(strict=True, ge=0)]
+ enabled: StrictBool
+ __properties: ClassVar[List[str]] = ["days", "enabled"]
+
+ 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 SystemConfigTrashDto 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 SystemConfigTrashDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "days": obj.get("days"),
+ "enabled": obj.get("enabled")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/system_config_user_dto.py b/generated/immich/openapi_client/models/system_config_user_dto.py
new file mode 100644
index 0000000..a2e504a
--- /dev/null
+++ b/generated/immich/openapi_client/models/system_config_user_dto.py
@@ -0,0 +1,88 @@
+# 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 typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemConfigUserDto(BaseModel):
+ """
+ SystemConfigUserDto
+ """ # noqa: E501
+ delete_delay: Annotated[int, Field(strict=True, ge=1)] = Field(alias="deleteDelay")
+ __properties: ClassVar[List[str]] = ["deleteDelay"]
+
+ 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 SystemConfigUserDto 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 SystemConfigUserDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "deleteDelay": obj.get("deleteDelay")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/tag_bulk_assets_dto.py b/generated/immich/openapi_client/models/tag_bulk_assets_dto.py
new file mode 100644
index 0000000..0bf0007
--- /dev/null
+++ b/generated/immich/openapi_client/models/tag_bulk_assets_dto.py
@@ -0,0 +1,89 @@
+# 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 TagBulkAssetsDto(BaseModel):
+ """
+ TagBulkAssetsDto
+ """ # noqa: E501
+ asset_ids: List[StrictStr] = Field(alias="assetIds")
+ tag_ids: List[StrictStr] = Field(alias="tagIds")
+ __properties: ClassVar[List[str]] = ["assetIds", "tagIds"]
+
+ 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 TagBulkAssetsDto 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 TagBulkAssetsDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "assetIds": obj.get("assetIds"),
+ "tagIds": obj.get("tagIds")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/tag_bulk_assets_response_dto.py b/generated/immich/openapi_client/models/tag_bulk_assets_response_dto.py
new file mode 100644
index 0000000..2e52e95
--- /dev/null
+++ b/generated/immich/openapi_client/models/tag_bulk_assets_response_dto.py
@@ -0,0 +1,87 @@
+# 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 TagBulkAssetsResponseDto(BaseModel):
+ """
+ TagBulkAssetsResponseDto
+ """ # noqa: E501
+ count: StrictInt
+ __properties: ClassVar[List[str]] = ["count"]
+
+ 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 TagBulkAssetsResponseDto 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 TagBulkAssetsResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "count": obj.get("count")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/tag_create_dto.py b/generated/immich/openapi_client/models/tag_create_dto.py
new file mode 100644
index 0000000..6e3cf1d
--- /dev/null
+++ b/generated/immich/openapi_client/models/tag_create_dto.py
@@ -0,0 +1,107 @@
+# 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, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TagCreateDto(BaseModel):
+ """
+ TagCreateDto
+ """ # noqa: E501
+ color: Optional[Annotated[str, Field(strict=True)]] = None
+ name: StrictStr
+ parent_id: Optional[StrictStr] = Field(default=None, alias="parentId")
+ __properties: ClassVar[List[str]] = ["color", "name", "parentId"]
+
+ @field_validator('color')
+ def color_validate_regular_expression(cls, value):
+ """Validates the regular expression"""
+ if value is None:
+ return value
+
+ if not re.match(r"^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$", value):
+ raise ValueError(r"must validate the regular expression /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{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 TagCreateDto 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,
+ )
+ # set to None if parent_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.parent_id is None and "parent_id" in self.model_fields_set:
+ _dict['parentId'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TagCreateDto 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"),
+ "name": obj.get("name"),
+ "parentId": obj.get("parentId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/tag_response_dto.py b/generated/immich/openapi_client/models/tag_response_dto.py
new file mode 100644
index 0000000..d23a4d3
--- /dev/null
+++ b/generated/immich/openapi_client/models/tag_response_dto.py
@@ -0,0 +1,100 @@
+# 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 import Optional, Set
+from typing_extensions import Self
+
+class TagResponseDto(BaseModel):
+ """
+ TagResponseDto
+ """ # noqa: E501
+ color: Optional[StrictStr] = None
+ created_at: datetime = Field(alias="createdAt")
+ id: StrictStr
+ name: StrictStr
+ parent_id: Optional[StrictStr] = Field(default=None, alias="parentId")
+ updated_at: datetime = Field(alias="updatedAt")
+ value: StrictStr
+ __properties: ClassVar[List[str]] = ["color", "createdAt", "id", "name", "parentId", "updatedAt", "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 TagResponseDto 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 TagResponseDto 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"),
+ "createdAt": obj.get("createdAt"),
+ "id": obj.get("id"),
+ "name": obj.get("name"),
+ "parentId": obj.get("parentId"),
+ "updatedAt": obj.get("updatedAt"),
+ "value": obj.get("value")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/tag_update_dto.py b/generated/immich/openapi_client/models/tag_update_dto.py
new file mode 100644
index 0000000..4b2fb0e
--- /dev/null
+++ b/generated/immich/openapi_client/models/tag_update_dto.py
@@ -0,0 +1,92 @@
+# 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TagUpdateDto(BaseModel):
+ """
+ TagUpdateDto
+ """ # noqa: E501
+ color: Optional[StrictStr] = None
+ __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 TagUpdateDto 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,
+ )
+ # set to None if color (nullable) is None
+ # and model_fields_set contains the field
+ if self.color is None and "color" in self.model_fields_set:
+ _dict['color'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of TagUpdateDto 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
+
+
diff --git a/generated/immich/openapi_client/models/tag_upsert_dto.py b/generated/immich/openapi_client/models/tag_upsert_dto.py
new file mode 100644
index 0000000..fda0396
--- /dev/null
+++ b/generated/immich/openapi_client/models/tag_upsert_dto.py
@@ -0,0 +1,87 @@
+# 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 TagUpsertDto(BaseModel):
+ """
+ TagUpsertDto
+ """ # noqa: E501
+ tags: List[StrictStr]
+ __properties: ClassVar[List[str]] = ["tags"]
+
+ 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 TagUpsertDto 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 TagUpsertDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "tags": obj.get("tags")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/tags_response.py b/generated/immich/openapi_client/models/tags_response.py
new file mode 100644
index 0000000..de9c47e
--- /dev/null
+++ b/generated/immich/openapi_client/models/tags_response.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TagsResponse(BaseModel):
+ """
+ TagsResponse
+ """ # noqa: E501
+ enabled: StrictBool
+ sidebar_web: StrictBool = Field(alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 TagsResponse 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 TagsResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled") if obj.get("enabled") is not None else True,
+ "sidebarWeb": obj.get("sidebarWeb") if obj.get("sidebarWeb") is not None else True
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/tags_update.py b/generated/immich/openapi_client/models/tags_update.py
new file mode 100644
index 0000000..4df6617
--- /dev/null
+++ b/generated/immich/openapi_client/models/tags_update.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TagsUpdate(BaseModel):
+ """
+ TagsUpdate
+ """ # noqa: E501
+ enabled: Optional[StrictBool] = None
+ sidebar_web: Optional[StrictBool] = Field(default=None, alias="sidebarWeb")
+ __properties: ClassVar[List[str]] = ["enabled", "sidebarWeb"]
+
+ 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 TagsUpdate 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 TagsUpdate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "enabled": obj.get("enabled"),
+ "sidebarWeb": obj.get("sidebarWeb")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/template_dto.py b/generated/immich/openapi_client/models/template_dto.py
new file mode 100644
index 0000000..42a12e5
--- /dev/null
+++ b/generated/immich/openapi_client/models/template_dto.py
@@ -0,0 +1,87 @@
+# 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 TemplateDto(BaseModel):
+ """
+ TemplateDto
+ """ # noqa: E501
+ template: StrictStr
+ __properties: ClassVar[List[str]] = ["template"]
+
+ 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 TemplateDto 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 TemplateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "template": obj.get("template")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/template_response_dto.py b/generated/immich/openapi_client/models/template_response_dto.py
new file mode 100644
index 0000000..35b2321
--- /dev/null
+++ b/generated/immich/openapi_client/models/template_response_dto.py
@@ -0,0 +1,89 @@
+# 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 TemplateResponseDto(BaseModel):
+ """
+ TemplateResponseDto
+ """ # noqa: E501
+ html: StrictStr
+ name: StrictStr
+ __properties: ClassVar[List[str]] = ["html", "name"]
+
+ 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 TemplateResponseDto 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 TemplateResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "html": obj.get("html"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/test_email_response_dto.py b/generated/immich/openapi_client/models/test_email_response_dto.py
new file mode 100644
index 0000000..6479372
--- /dev/null
+++ b/generated/immich/openapi_client/models/test_email_response_dto.py
@@ -0,0 +1,87 @@
+# 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 TestEmailResponseDto(BaseModel):
+ """
+ TestEmailResponseDto
+ """ # noqa: E501
+ message_id: StrictStr = Field(alias="messageId")
+ __properties: ClassVar[List[str]] = ["messageId"]
+
+ 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 TestEmailResponseDto 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 TestEmailResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "messageId": obj.get("messageId")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/time_bucket_response_dto.py b/generated/immich/openapi_client/models/time_bucket_response_dto.py
new file mode 100644
index 0000000..cd7bb4d
--- /dev/null
+++ b/generated/immich/openapi_client/models/time_bucket_response_dto.py
@@ -0,0 +1,89 @@
+# 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
+from typing import Optional, Set
+from typing_extensions import Self
+
+class TimeBucketResponseDto(BaseModel):
+ """
+ TimeBucketResponseDto
+ """ # noqa: E501
+ count: StrictInt
+ time_bucket: StrictStr = Field(alias="timeBucket")
+ __properties: ClassVar[List[str]] = ["count", "timeBucket"]
+
+ 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 TimeBucketResponseDto 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 TimeBucketResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "count": obj.get("count"),
+ "timeBucket": obj.get("timeBucket")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/time_bucket_size.py b/generated/immich/openapi_client/models/time_bucket_size.py
new file mode 100644
index 0000000..8a285d6
--- /dev/null
+++ b/generated/immich/openapi_client/models/time_bucket_size.py
@@ -0,0 +1,37 @@
+# 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 TimeBucketSize(str, Enum):
+ """
+ TimeBucketSize
+ """
+
+ """
+ allowed enum values
+ """
+ DAY = 'DAY'
+ MONTH = 'MONTH'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TimeBucketSize from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/tone_mapping.py b/generated/immich/openapi_client/models/tone_mapping.py
new file mode 100644
index 0000000..17f7245
--- /dev/null
+++ b/generated/immich/openapi_client/models/tone_mapping.py
@@ -0,0 +1,39 @@
+# 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 ToneMapping(str, Enum):
+ """
+ ToneMapping
+ """
+
+ """
+ allowed enum values
+ """
+ HABLE = 'hable'
+ MOBIUS = 'mobius'
+ REINHARD = 'reinhard'
+ DISABLED = 'disabled'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ToneMapping from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/transcode_hw_accel.py b/generated/immich/openapi_client/models/transcode_hw_accel.py
new file mode 100644
index 0000000..7408d7e
--- /dev/null
+++ b/generated/immich/openapi_client/models/transcode_hw_accel.py
@@ -0,0 +1,40 @@
+# 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 TranscodeHWAccel(str, Enum):
+ """
+ TranscodeHWAccel
+ """
+
+ """
+ allowed enum values
+ """
+ NVENC = 'nvenc'
+ QSV = 'qsv'
+ VAAPI = 'vaapi'
+ RKMPP = 'rkmpp'
+ DISABLED = 'disabled'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TranscodeHWAccel from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/transcode_policy.py b/generated/immich/openapi_client/models/transcode_policy.py
new file mode 100644
index 0000000..bda9fdc
--- /dev/null
+++ b/generated/immich/openapi_client/models/transcode_policy.py
@@ -0,0 +1,40 @@
+# 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 TranscodePolicy(str, Enum):
+ """
+ TranscodePolicy
+ """
+
+ """
+ allowed enum values
+ """
+ ALL = 'all'
+ OPTIMAL = 'optimal'
+ BITRATE = 'bitrate'
+ REQUIRED = 'required'
+ DISABLED = 'disabled'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of TranscodePolicy from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/trash_response_dto.py b/generated/immich/openapi_client/models/trash_response_dto.py
new file mode 100644
index 0000000..f1b6a2b
--- /dev/null
+++ b/generated/immich/openapi_client/models/trash_response_dto.py
@@ -0,0 +1,87 @@
+# 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 TrashResponseDto(BaseModel):
+ """
+ TrashResponseDto
+ """ # noqa: E501
+ count: StrictInt
+ __properties: ClassVar[List[str]] = ["count"]
+
+ 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 TrashResponseDto 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 TrashResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "count": obj.get("count")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/update_album_dto.py b/generated/immich/openapi_client/models/update_album_dto.py
new file mode 100644
index 0000000..3da5845
--- /dev/null
+++ b/generated/immich/openapi_client/models/update_album_dto.py
@@ -0,0 +1,96 @@
+# 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, Optional
+from generated.immich.openapi_client.models.asset_order import AssetOrder
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateAlbumDto(BaseModel):
+ """
+ UpdateAlbumDto
+ """ # noqa: E501
+ album_name: Optional[StrictStr] = Field(default=None, alias="albumName")
+ album_thumbnail_asset_id: Optional[StrictStr] = Field(default=None, alias="albumThumbnailAssetId")
+ description: Optional[StrictStr] = None
+ is_activity_enabled: Optional[StrictBool] = Field(default=None, alias="isActivityEnabled")
+ order: Optional[AssetOrder] = None
+ __properties: ClassVar[List[str]] = ["albumName", "albumThumbnailAssetId", "description", "isActivityEnabled", "order"]
+
+ 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 UpdateAlbumDto 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 UpdateAlbumDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "albumName": obj.get("albumName"),
+ "albumThumbnailAssetId": obj.get("albumThumbnailAssetId"),
+ "description": obj.get("description"),
+ "isActivityEnabled": obj.get("isActivityEnabled"),
+ "order": obj.get("order")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/update_album_user_dto.py b/generated/immich/openapi_client/models/update_album_user_dto.py
new file mode 100644
index 0000000..5f39832
--- /dev/null
+++ b/generated/immich/openapi_client/models/update_album_user_dto.py
@@ -0,0 +1,88 @@
+# 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.album_user_role import AlbumUserRole
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateAlbumUserDto(BaseModel):
+ """
+ UpdateAlbumUserDto
+ """ # noqa: E501
+ role: AlbumUserRole
+ __properties: ClassVar[List[str]] = ["role"]
+
+ 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 UpdateAlbumUserDto 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 UpdateAlbumUserDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "role": obj.get("role")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/update_asset_dto.py b/generated/immich/openapi_client/models/update_asset_dto.py
new file mode 100644
index 0000000..daf7880
--- /dev/null
+++ b/generated/immich/openapi_client/models/update_asset_dto.py
@@ -0,0 +1,107 @@
+# 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, 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 UpdateAssetDto(BaseModel):
+ """
+ UpdateAssetDto
+ """ # noqa: E501
+ date_time_original: Optional[StrictStr] = Field(default=None, alias="dateTimeOriginal")
+ description: Optional[StrictStr] = None
+ is_archived: Optional[StrictBool] = Field(default=None, alias="isArchived")
+ is_favorite: Optional[StrictBool] = Field(default=None, alias="isFavorite")
+ latitude: Optional[Union[StrictFloat, StrictInt]] = None
+ live_photo_video_id: Optional[StrictStr] = Field(default=None, alias="livePhotoVideoId")
+ 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", "description", "isArchived", "isFavorite", "latitude", "livePhotoVideoId", "longitude", "rating"]
+
+ 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 UpdateAssetDto 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,
+ )
+ # set to None if live_photo_video_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.live_photo_video_id is None and "live_photo_video_id" in self.model_fields_set:
+ _dict['livePhotoVideoId'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateAssetDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "dateTimeOriginal": obj.get("dateTimeOriginal"),
+ "description": obj.get("description"),
+ "isArchived": obj.get("isArchived"),
+ "isFavorite": obj.get("isFavorite"),
+ "latitude": obj.get("latitude"),
+ "livePhotoVideoId": obj.get("livePhotoVideoId"),
+ "longitude": obj.get("longitude"),
+ "rating": obj.get("rating")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/update_library_dto.py b/generated/immich/openapi_client/models/update_library_dto.py
new file mode 100644
index 0000000..a6c29b5
--- /dev/null
+++ b/generated/immich/openapi_client/models/update_library_dto.py
@@ -0,0 +1,92 @@
+# 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 typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateLibraryDto(BaseModel):
+ """
+ UpdateLibraryDto
+ """ # 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
+ __properties: ClassVar[List[str]] = ["exclusionPatterns", "importPaths", "name"]
+
+ 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 UpdateLibraryDto 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 UpdateLibraryDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "exclusionPatterns": obj.get("exclusionPatterns"),
+ "importPaths": obj.get("importPaths"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/update_partner_dto.py b/generated/immich/openapi_client/models/update_partner_dto.py
new file mode 100644
index 0000000..352b09a
--- /dev/null
+++ b/generated/immich/openapi_client/models/update_partner_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdatePartnerDto(BaseModel):
+ """
+ UpdatePartnerDto
+ """ # noqa: E501
+ in_timeline: StrictBool = Field(alias="inTimeline")
+ __properties: ClassVar[List[str]] = ["inTimeline"]
+
+ 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 UpdatePartnerDto 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 UpdatePartnerDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "inTimeline": obj.get("inTimeline")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/usage_by_user_dto.py b/generated/immich/openapi_client/models/usage_by_user_dto.py
new file mode 100644
index 0000000..e922ff7
--- /dev/null
+++ b/generated/immich/openapi_client/models/usage_by_user_dto.py
@@ -0,0 +1,106 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class UsageByUserDto(BaseModel):
+ """
+ UsageByUserDto
+ """ # noqa: E501
+ photos: StrictInt
+ quota_size_in_bytes: Optional[StrictInt] = Field(alias="quotaSizeInBytes")
+ usage: StrictInt
+ usage_photos: StrictInt = Field(alias="usagePhotos")
+ usage_videos: StrictInt = Field(alias="usageVideos")
+ user_id: StrictStr = Field(alias="userId")
+ user_name: StrictStr = Field(alias="userName")
+ videos: StrictInt
+ __properties: ClassVar[List[str]] = ["photos", "quotaSizeInBytes", "usage", "usagePhotos", "usageVideos", "userId", "userName", "videos"]
+
+ 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 UsageByUserDto 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,
+ )
+ # set to None if quota_size_in_bytes (nullable) is None
+ # and model_fields_set contains the field
+ if self.quota_size_in_bytes is None and "quota_size_in_bytes" in self.model_fields_set:
+ _dict['quotaSizeInBytes'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UsageByUserDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "photos": obj.get("photos"),
+ "quotaSizeInBytes": obj.get("quotaSizeInBytes"),
+ "usage": obj.get("usage"),
+ "usagePhotos": obj.get("usagePhotos"),
+ "usageVideos": obj.get("usageVideos"),
+ "userId": obj.get("userId"),
+ "userName": obj.get("userName"),
+ "videos": obj.get("videos")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_admin_create_dto.py b/generated/immich/openapi_client/models/user_admin_create_dto.py
new file mode 100644
index 0000000..2287474
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_admin_create_dto.py
@@ -0,0 +1,110 @@
+# 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, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UserAdminCreateDto(BaseModel):
+ """
+ UserAdminCreateDto
+ """ # noqa: E501
+ email: StrictStr
+ name: StrictStr
+ notify: Optional[StrictBool] = None
+ password: StrictStr
+ quota_size_in_bytes: Optional[Annotated[int, Field(strict=True, ge=0)]] = Field(default=None, alias="quotaSizeInBytes")
+ should_change_password: Optional[StrictBool] = Field(default=None, alias="shouldChangePassword")
+ storage_label: Optional[StrictStr] = Field(default=None, alias="storageLabel")
+ __properties: ClassVar[List[str]] = ["email", "name", "notify", "password", "quotaSizeInBytes", "shouldChangePassword", "storageLabel"]
+
+ 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 UserAdminCreateDto 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,
+ )
+ # set to None if quota_size_in_bytes (nullable) is None
+ # and model_fields_set contains the field
+ if self.quota_size_in_bytes is None and "quota_size_in_bytes" in self.model_fields_set:
+ _dict['quotaSizeInBytes'] = None
+
+ # set to None if storage_label (nullable) is None
+ # and model_fields_set contains the field
+ if self.storage_label is None and "storage_label" in self.model_fields_set:
+ _dict['storageLabel'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UserAdminCreateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "email": obj.get("email"),
+ "name": obj.get("name"),
+ "notify": obj.get("notify"),
+ "password": obj.get("password"),
+ "quotaSizeInBytes": obj.get("quotaSizeInBytes"),
+ "shouldChangePassword": obj.get("shouldChangePassword"),
+ "storageLabel": obj.get("storageLabel")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_admin_delete_dto.py b/generated/immich/openapi_client/models/user_admin_delete_dto.py
new file mode 100644
index 0000000..7770f45
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_admin_delete_dto.py
@@ -0,0 +1,87 @@
+# 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 typing import Optional, Set
+from typing_extensions import Self
+
+class UserAdminDeleteDto(BaseModel):
+ """
+ UserAdminDeleteDto
+ """ # noqa: E501
+ force: Optional[StrictBool] = None
+ __properties: ClassVar[List[str]] = ["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 UserAdminDeleteDto 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 UserAdminDeleteDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "force": obj.get("force")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_admin_response_dto.py b/generated/immich/openapi_client/models/user_admin_response_dto.py
new file mode 100644
index 0000000..5bd3d07
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_admin_response_dto.py
@@ -0,0 +1,151 @@
+# 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, StrictBool, StrictInt, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+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_status import UserStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UserAdminResponseDto(BaseModel):
+ """
+ UserAdminResponseDto
+ """ # noqa: E501
+ avatar_color: UserAvatarColor = Field(alias="avatarColor")
+ created_at: datetime = Field(alias="createdAt")
+ deleted_at: Optional[datetime] = Field(alias="deletedAt")
+ email: StrictStr
+ id: StrictStr
+ is_admin: StrictBool = Field(alias="isAdmin")
+ license: Optional[UserLicense]
+ name: StrictStr
+ oauth_id: StrictStr = Field(alias="oauthId")
+ profile_changed_at: datetime = Field(alias="profileChangedAt")
+ profile_image_path: StrictStr = Field(alias="profileImagePath")
+ quota_size_in_bytes: Optional[StrictInt] = Field(alias="quotaSizeInBytes")
+ quota_usage_in_bytes: Optional[StrictInt] = Field(alias="quotaUsageInBytes")
+ should_change_password: StrictBool = Field(alias="shouldChangePassword")
+ status: UserStatus
+ storage_label: Optional[StrictStr] = Field(alias="storageLabel")
+ updated_at: datetime = Field(alias="updatedAt")
+ __properties: ClassVar[List[str]] = ["avatarColor", "createdAt", "deletedAt", "email", "id", "isAdmin", "license", "name", "oauthId", "profileChangedAt", "profileImagePath", "quotaSizeInBytes", "quotaUsageInBytes", "shouldChangePassword", "status", "storageLabel", "updatedAt"]
+
+ 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 UserAdminResponseDto 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 license
+ if self.license:
+ _dict['license'] = self.license.to_dict()
+ # set to None if deleted_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.deleted_at is None and "deleted_at" in self.model_fields_set:
+ _dict['deletedAt'] = None
+
+ # set to None if license (nullable) is None
+ # and model_fields_set contains the field
+ if self.license is None and "license" in self.model_fields_set:
+ _dict['license'] = None
+
+ # set to None if quota_size_in_bytes (nullable) is None
+ # and model_fields_set contains the field
+ if self.quota_size_in_bytes is None and "quota_size_in_bytes" in self.model_fields_set:
+ _dict['quotaSizeInBytes'] = None
+
+ # set to None if quota_usage_in_bytes (nullable) is None
+ # and model_fields_set contains the field
+ if self.quota_usage_in_bytes is None and "quota_usage_in_bytes" in self.model_fields_set:
+ _dict['quotaUsageInBytes'] = None
+
+ # set to None if storage_label (nullable) is None
+ # and model_fields_set contains the field
+ if self.storage_label is None and "storage_label" in self.model_fields_set:
+ _dict['storageLabel'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UserAdminResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "avatarColor": obj.get("avatarColor"),
+ "createdAt": obj.get("createdAt"),
+ "deletedAt": obj.get("deletedAt"),
+ "email": obj.get("email"),
+ "id": obj.get("id"),
+ "isAdmin": obj.get("isAdmin"),
+ "license": UserLicense.from_dict(obj["license"]) if obj.get("license") is not None else None,
+ "name": obj.get("name"),
+ "oauthId": obj.get("oauthId"),
+ "profileChangedAt": obj.get("profileChangedAt"),
+ "profileImagePath": obj.get("profileImagePath"),
+ "quotaSizeInBytes": obj.get("quotaSizeInBytes"),
+ "quotaUsageInBytes": obj.get("quotaUsageInBytes"),
+ "shouldChangePassword": obj.get("shouldChangePassword"),
+ "status": obj.get("status"),
+ "storageLabel": obj.get("storageLabel"),
+ "updatedAt": obj.get("updatedAt")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_admin_update_dto.py b/generated/immich/openapi_client/models/user_admin_update_dto.py
new file mode 100644
index 0000000..cfe4b69
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_admin_update_dto.py
@@ -0,0 +1,108 @@
+# 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, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UserAdminUpdateDto(BaseModel):
+ """
+ UserAdminUpdateDto
+ """ # noqa: E501
+ email: Optional[StrictStr] = None
+ name: Optional[StrictStr] = None
+ password: Optional[StrictStr] = None
+ quota_size_in_bytes: Optional[Annotated[int, Field(strict=True, ge=0)]] = Field(default=None, alias="quotaSizeInBytes")
+ should_change_password: Optional[StrictBool] = Field(default=None, alias="shouldChangePassword")
+ storage_label: Optional[StrictStr] = Field(default=None, alias="storageLabel")
+ __properties: ClassVar[List[str]] = ["email", "name", "password", "quotaSizeInBytes", "shouldChangePassword", "storageLabel"]
+
+ 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 UserAdminUpdateDto 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,
+ )
+ # set to None if quota_size_in_bytes (nullable) is None
+ # and model_fields_set contains the field
+ if self.quota_size_in_bytes is None and "quota_size_in_bytes" in self.model_fields_set:
+ _dict['quotaSizeInBytes'] = None
+
+ # set to None if storage_label (nullable) is None
+ # and model_fields_set contains the field
+ if self.storage_label is None and "storage_label" in self.model_fields_set:
+ _dict['storageLabel'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UserAdminUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "email": obj.get("email"),
+ "name": obj.get("name"),
+ "password": obj.get("password"),
+ "quotaSizeInBytes": obj.get("quotaSizeInBytes"),
+ "shouldChangePassword": obj.get("shouldChangePassword"),
+ "storageLabel": obj.get("storageLabel")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_avatar_color.py b/generated/immich/openapi_client/models/user_avatar_color.py
new file mode 100644
index 0000000..cffce2c
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_avatar_color.py
@@ -0,0 +1,45 @@
+# 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 UserAvatarColor(str, Enum):
+ """
+ UserAvatarColor
+ """
+
+ """
+ allowed enum values
+ """
+ PRIMARY = 'primary'
+ PINK = 'pink'
+ RED = 'red'
+ YELLOW = 'yellow'
+ BLUE = 'blue'
+ GREEN = 'green'
+ PURPLE = 'purple'
+ ORANGE = 'orange'
+ GRAY = 'gray'
+ AMBER = 'amber'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of UserAvatarColor from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/user_license.py b/generated/immich/openapi_client/models/user_license.py
new file mode 100644
index 0000000..1a04565
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_license.py
@@ -0,0 +1,92 @@
+# 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 UserLicense(BaseModel):
+ """
+ UserLicense
+ """ # noqa: E501
+ activated_at: datetime = Field(alias="activatedAt")
+ activation_key: StrictStr = Field(alias="activationKey")
+ license_key: StrictStr = Field(alias="licenseKey")
+ __properties: ClassVar[List[str]] = ["activatedAt", "activationKey", "licenseKey"]
+
+ 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 UserLicense 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 UserLicense 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
+
+
diff --git a/generated/immich/openapi_client/models/user_preferences_response_dto.py b/generated/immich/openapi_client/models/user_preferences_response_dto.py
new file mode 100644
index 0000000..ee60a27
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_preferences_response_dto.py
@@ -0,0 +1,145 @@
+# 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.avatar_response import AvatarResponse
+from generated.immich.openapi_client.models.download_response import DownloadResponse
+from generated.immich.openapi_client.models.email_notifications_response import EmailNotificationsResponse
+from generated.immich.openapi_client.models.folders_response import FoldersResponse
+from generated.immich.openapi_client.models.memories_response import MemoriesResponse
+from generated.immich.openapi_client.models.people_response import PeopleResponse
+from generated.immich.openapi_client.models.purchase_response import PurchaseResponse
+from generated.immich.openapi_client.models.ratings_response import RatingsResponse
+from generated.immich.openapi_client.models.shared_links_response import SharedLinksResponse
+from generated.immich.openapi_client.models.tags_response import TagsResponse
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UserPreferencesResponseDto(BaseModel):
+ """
+ UserPreferencesResponseDto
+ """ # noqa: E501
+ avatar: AvatarResponse
+ download: DownloadResponse
+ email_notifications: EmailNotificationsResponse = Field(alias="emailNotifications")
+ folders: FoldersResponse
+ memories: MemoriesResponse
+ people: PeopleResponse
+ purchase: PurchaseResponse
+ ratings: RatingsResponse
+ shared_links: SharedLinksResponse = Field(alias="sharedLinks")
+ tags: TagsResponse
+ __properties: ClassVar[List[str]] = ["avatar", "download", "emailNotifications", "folders", "memories", "people", "purchase", "ratings", "sharedLinks", "tags"]
+
+ 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 UserPreferencesResponseDto 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 avatar
+ if self.avatar:
+ _dict['avatar'] = self.avatar.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of download
+ if self.download:
+ _dict['download'] = self.download.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of email_notifications
+ if self.email_notifications:
+ _dict['emailNotifications'] = self.email_notifications.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of folders
+ if self.folders:
+ _dict['folders'] = self.folders.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of memories
+ if self.memories:
+ _dict['memories'] = self.memories.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of people
+ if self.people:
+ _dict['people'] = self.people.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of purchase
+ if self.purchase:
+ _dict['purchase'] = self.purchase.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of ratings
+ if self.ratings:
+ _dict['ratings'] = self.ratings.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of shared_links
+ if self.shared_links:
+ _dict['sharedLinks'] = self.shared_links.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of tags
+ if self.tags:
+ _dict['tags'] = self.tags.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UserPreferencesResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "avatar": AvatarResponse.from_dict(obj["avatar"]) if obj.get("avatar") is not None else None,
+ "download": DownloadResponse.from_dict(obj["download"]) if obj.get("download") is not None else None,
+ "emailNotifications": EmailNotificationsResponse.from_dict(obj["emailNotifications"]) if obj.get("emailNotifications") is not None else None,
+ "folders": FoldersResponse.from_dict(obj["folders"]) if obj.get("folders") is not None else None,
+ "memories": MemoriesResponse.from_dict(obj["memories"]) if obj.get("memories") is not None else None,
+ "people": PeopleResponse.from_dict(obj["people"]) if obj.get("people") is not None else None,
+ "purchase": PurchaseResponse.from_dict(obj["purchase"]) if obj.get("purchase") is not None else None,
+ "ratings": RatingsResponse.from_dict(obj["ratings"]) if obj.get("ratings") is not None else None,
+ "sharedLinks": SharedLinksResponse.from_dict(obj["sharedLinks"]) if obj.get("sharedLinks") is not None else None,
+ "tags": TagsResponse.from_dict(obj["tags"]) if obj.get("tags") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_preferences_update_dto.py b/generated/immich/openapi_client/models/user_preferences_update_dto.py
new file mode 100644
index 0000000..4be5590
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_preferences_update_dto.py
@@ -0,0 +1,145 @@
+# 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, Optional
+from generated.immich.openapi_client.models.avatar_update import AvatarUpdate
+from generated.immich.openapi_client.models.download_update import DownloadUpdate
+from generated.immich.openapi_client.models.email_notifications_update import EmailNotificationsUpdate
+from generated.immich.openapi_client.models.folders_update import FoldersUpdate
+from generated.immich.openapi_client.models.memories_update import MemoriesUpdate
+from generated.immich.openapi_client.models.people_update import PeopleUpdate
+from generated.immich.openapi_client.models.purchase_update import PurchaseUpdate
+from generated.immich.openapi_client.models.ratings_update import RatingsUpdate
+from generated.immich.openapi_client.models.shared_links_update import SharedLinksUpdate
+from generated.immich.openapi_client.models.tags_update import TagsUpdate
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UserPreferencesUpdateDto(BaseModel):
+ """
+ UserPreferencesUpdateDto
+ """ # noqa: E501
+ avatar: Optional[AvatarUpdate] = None
+ download: Optional[DownloadUpdate] = None
+ email_notifications: Optional[EmailNotificationsUpdate] = Field(default=None, alias="emailNotifications")
+ folders: Optional[FoldersUpdate] = None
+ memories: Optional[MemoriesUpdate] = None
+ people: Optional[PeopleUpdate] = None
+ purchase: Optional[PurchaseUpdate] = None
+ ratings: Optional[RatingsUpdate] = None
+ shared_links: Optional[SharedLinksUpdate] = Field(default=None, alias="sharedLinks")
+ tags: Optional[TagsUpdate] = None
+ __properties: ClassVar[List[str]] = ["avatar", "download", "emailNotifications", "folders", "memories", "people", "purchase", "ratings", "sharedLinks", "tags"]
+
+ 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 UserPreferencesUpdateDto 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 avatar
+ if self.avatar:
+ _dict['avatar'] = self.avatar.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of download
+ if self.download:
+ _dict['download'] = self.download.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of email_notifications
+ if self.email_notifications:
+ _dict['emailNotifications'] = self.email_notifications.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of folders
+ if self.folders:
+ _dict['folders'] = self.folders.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of memories
+ if self.memories:
+ _dict['memories'] = self.memories.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of people
+ if self.people:
+ _dict['people'] = self.people.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of purchase
+ if self.purchase:
+ _dict['purchase'] = self.purchase.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of ratings
+ if self.ratings:
+ _dict['ratings'] = self.ratings.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of shared_links
+ if self.shared_links:
+ _dict['sharedLinks'] = self.shared_links.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of tags
+ if self.tags:
+ _dict['tags'] = self.tags.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UserPreferencesUpdateDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "avatar": AvatarUpdate.from_dict(obj["avatar"]) if obj.get("avatar") is not None else None,
+ "download": DownloadUpdate.from_dict(obj["download"]) if obj.get("download") is not None else None,
+ "emailNotifications": EmailNotificationsUpdate.from_dict(obj["emailNotifications"]) if obj.get("emailNotifications") is not None else None,
+ "folders": FoldersUpdate.from_dict(obj["folders"]) if obj.get("folders") is not None else None,
+ "memories": MemoriesUpdate.from_dict(obj["memories"]) if obj.get("memories") is not None else None,
+ "people": PeopleUpdate.from_dict(obj["people"]) if obj.get("people") is not None else None,
+ "purchase": PurchaseUpdate.from_dict(obj["purchase"]) if obj.get("purchase") is not None else None,
+ "ratings": RatingsUpdate.from_dict(obj["ratings"]) if obj.get("ratings") is not None else None,
+ "sharedLinks": SharedLinksUpdate.from_dict(obj["sharedLinks"]) if obj.get("sharedLinks") is not None else None,
+ "tags": TagsUpdate.from_dict(obj["tags"]) if obj.get("tags") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_response_dto.py b/generated/immich/openapi_client/models/user_response_dto.py
new file mode 100644
index 0000000..06b852c
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_response_dto.py
@@ -0,0 +1,99 @@
+# 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 generated.immich.openapi_client.models.user_avatar_color import UserAvatarColor
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UserResponseDto(BaseModel):
+ """
+ UserResponseDto
+ """ # noqa: E501
+ avatar_color: UserAvatarColor = Field(alias="avatarColor")
+ email: StrictStr
+ id: StrictStr
+ name: StrictStr
+ profile_changed_at: datetime = Field(alias="profileChangedAt")
+ profile_image_path: StrictStr = Field(alias="profileImagePath")
+ __properties: ClassVar[List[str]] = ["avatarColor", "email", "id", "name", "profileChangedAt", "profileImagePath"]
+
+ 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 UserResponseDto 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 UserResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "avatarColor": obj.get("avatarColor"),
+ "email": obj.get("email"),
+ "id": obj.get("id"),
+ "name": obj.get("name"),
+ "profileChangedAt": obj.get("profileChangedAt"),
+ "profileImagePath": obj.get("profileImagePath")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/user_status.py b/generated/immich/openapi_client/models/user_status.py
new file mode 100644
index 0000000..629bf83
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_status.py
@@ -0,0 +1,38 @@
+# 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 UserStatus(str, Enum):
+ """
+ UserStatus
+ """
+
+ """
+ allowed enum values
+ """
+ ACTIVE = 'active'
+ REMOVING = 'removing'
+ DELETED = 'deleted'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of UserStatus from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/user_update_me_dto.py b/generated/immich/openapi_client/models/user_update_me_dto.py
new file mode 100644
index 0000000..2e086c5
--- /dev/null
+++ b/generated/immich/openapi_client/models/user_update_me_dto.py
@@ -0,0 +1,91 @@
+# 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UserUpdateMeDto(BaseModel):
+ """
+ UserUpdateMeDto
+ """ # noqa: E501
+ email: Optional[StrictStr] = None
+ name: Optional[StrictStr] = None
+ password: Optional[StrictStr] = None
+ __properties: ClassVar[List[str]] = ["email", "name", "password"]
+
+ 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 UserUpdateMeDto 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 UserUpdateMeDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "email": obj.get("email"),
+ "name": obj.get("name"),
+ "password": obj.get("password")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/validate_access_token_response_dto.py b/generated/immich/openapi_client/models/validate_access_token_response_dto.py
new file mode 100644
index 0000000..988ad88
--- /dev/null
+++ b/generated/immich/openapi_client/models/validate_access_token_response_dto.py
@@ -0,0 +1,87 @@
+# 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
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ValidateAccessTokenResponseDto(BaseModel):
+ """
+ ValidateAccessTokenResponseDto
+ """ # noqa: E501
+ auth_status: StrictBool = Field(alias="authStatus")
+ __properties: ClassVar[List[str]] = ["authStatus"]
+
+ 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 ValidateAccessTokenResponseDto 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 ValidateAccessTokenResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "authStatus": obj.get("authStatus")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/validate_library_dto.py b/generated/immich/openapi_client/models/validate_library_dto.py
new file mode 100644
index 0000000..8f29d8d
--- /dev/null
+++ b/generated/immich/openapi_client/models/validate_library_dto.py
@@ -0,0 +1,90 @@
+# 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 typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ValidateLibraryDto(BaseModel):
+ """
+ ValidateLibraryDto
+ """ # 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")
+ __properties: ClassVar[List[str]] = ["exclusionPatterns", "importPaths"]
+
+ 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 ValidateLibraryDto 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 ValidateLibraryDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "exclusionPatterns": obj.get("exclusionPatterns"),
+ "importPaths": obj.get("importPaths")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/validate_library_import_path_response_dto.py b/generated/immich/openapi_client/models/validate_library_import_path_response_dto.py
new file mode 100644
index 0000000..fe3f7ae
--- /dev/null
+++ b/generated/immich/openapi_client/models/validate_library_import_path_response_dto.py
@@ -0,0 +1,91 @@
+# 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ValidateLibraryImportPathResponseDto(BaseModel):
+ """
+ ValidateLibraryImportPathResponseDto
+ """ # noqa: E501
+ import_path: StrictStr = Field(alias="importPath")
+ is_valid: StrictBool = Field(alias="isValid")
+ message: Optional[StrictStr] = None
+ __properties: ClassVar[List[str]] = ["importPath", "isValid", "message"]
+
+ 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 ValidateLibraryImportPathResponseDto 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 ValidateLibraryImportPathResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "importPath": obj.get("importPath"),
+ "isValid": obj.get("isValid") if obj.get("isValid") is not None else False,
+ "message": obj.get("message")
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/validate_library_response_dto.py b/generated/immich/openapi_client/models/validate_library_response_dto.py
new file mode 100644
index 0000000..af29785
--- /dev/null
+++ b/generated/immich/openapi_client/models/validate_library_response_dto.py
@@ -0,0 +1,95 @@
+# 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, Optional
+from generated.immich.openapi_client.models.validate_library_import_path_response_dto import ValidateLibraryImportPathResponseDto
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ValidateLibraryResponseDto(BaseModel):
+ """
+ ValidateLibraryResponseDto
+ """ # noqa: E501
+ import_paths: Optional[List[ValidateLibraryImportPathResponseDto]] = Field(default=None, alias="importPaths")
+ __properties: ClassVar[List[str]] = ["importPaths"]
+
+ 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 ValidateLibraryResponseDto 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 import_paths (list)
+ _items = []
+ if self.import_paths:
+ for _item_import_paths in self.import_paths:
+ if _item_import_paths:
+ _items.append(_item_import_paths.to_dict())
+ _dict['importPaths'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ValidateLibraryResponseDto from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "importPaths": [ValidateLibraryImportPathResponseDto.from_dict(_item) for _item in obj["importPaths"]] if obj.get("importPaths") is not None else None
+ })
+ return _obj
+
+
diff --git a/generated/immich/openapi_client/models/video_codec.py b/generated/immich/openapi_client/models/video_codec.py
new file mode 100644
index 0000000..ffde409
--- /dev/null
+++ b/generated/immich/openapi_client/models/video_codec.py
@@ -0,0 +1,39 @@
+# 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 VideoCodec(str, Enum):
+ """
+ VideoCodec
+ """
+
+ """
+ allowed enum values
+ """
+ H264 = 'h264'
+ HEVC = 'hevc'
+ VP9 = 'vp9'
+ AV1 = 'av1'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of VideoCodec from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/models/video_container.py b/generated/immich/openapi_client/models/video_container.py
new file mode 100644
index 0000000..5fd5616
--- /dev/null
+++ b/generated/immich/openapi_client/models/video_container.py
@@ -0,0 +1,39 @@
+# 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 VideoContainer(str, Enum):
+ """
+ VideoContainer
+ """
+
+ """
+ allowed enum values
+ """
+ MOV = 'mov'
+ MP4 = 'mp4'
+ OGG = 'ogg'
+ WEBM = 'webm'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of VideoContainer from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/generated/immich/openapi_client/rest.py b/generated/immich/openapi_client/rest.py
new file mode 100644
index 0000000..6ca1715
--- /dev/null
+++ b/generated/immich/openapi_client/rest.py
@@ -0,0 +1,258 @@
+# 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
+
+
+import io
+import json
+import re
+import ssl
+
+import urllib3
+
+from generated.immich.openapi_client.exceptions import ApiException, ApiValueError
+
+SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
+RESTResponseType = urllib3.HTTPResponse
+
+
+def is_socks_proxy_url(url):
+ if url is None:
+ return False
+ split_section = url.split("://")
+ if len(split_section) < 2:
+ return False
+ else:
+ return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES
+
+
+class RESTResponse(io.IOBase):
+
+ def __init__(self, resp) -> None:
+ self.response = resp
+ self.status = resp.status
+ self.reason = resp.reason
+ self.data = None
+
+ def read(self):
+ if self.data is None:
+ self.data = self.response.data
+ return self.data
+
+ def getheaders(self):
+ """Returns a dictionary of the response headers."""
+ return self.response.headers
+
+ def getheader(self, name, default=None):
+ """Returns a given response header."""
+ return self.response.headers.get(name, default)
+
+
+class RESTClientObject:
+
+ def __init__(self, configuration) -> None:
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
+
+ # cert_reqs
+ if configuration.verify_ssl:
+ cert_reqs = ssl.CERT_REQUIRED
+ else:
+ cert_reqs = ssl.CERT_NONE
+
+ pool_args = {
+ "cert_reqs": cert_reqs,
+ "ca_certs": configuration.ssl_ca_cert,
+ "cert_file": configuration.cert_file,
+ "key_file": configuration.key_file,
+ "ca_cert_data": configuration.ca_cert_data,
+ }
+ if configuration.assert_hostname is not None:
+ pool_args['assert_hostname'] = (
+ configuration.assert_hostname
+ )
+
+ if configuration.retries is not None:
+ pool_args['retries'] = configuration.retries
+
+ if configuration.tls_server_name:
+ pool_args['server_hostname'] = configuration.tls_server_name
+
+
+ if configuration.socket_options is not None:
+ pool_args['socket_options'] = configuration.socket_options
+
+ if configuration.connection_pool_maxsize is not None:
+ pool_args['maxsize'] = configuration.connection_pool_maxsize
+
+ # https pool manager
+ self.pool_manager: urllib3.PoolManager
+
+ if configuration.proxy:
+ if is_socks_proxy_url(configuration.proxy):
+ from urllib3.contrib.socks import SOCKSProxyManager
+ pool_args["proxy_url"] = configuration.proxy
+ pool_args["headers"] = configuration.proxy_headers
+ self.pool_manager = SOCKSProxyManager(**pool_args)
+ else:
+ pool_args["proxy_url"] = configuration.proxy
+ pool_args["proxy_headers"] = configuration.proxy_headers
+ self.pool_manager = urllib3.ProxyManager(**pool_args)
+ else:
+ self.pool_manager = urllib3.PoolManager(**pool_args)
+
+ def request(
+ self,
+ method,
+ url,
+ headers=None,
+ body=None,
+ post_params=None,
+ _request_timeout=None
+ ):
+ """Perform requests.
+
+ :param method: http request method
+ :param url: http request url
+ :param headers: http request headers
+ :param body: request json body, for `application/json`
+ :param post_params: request post parameters,
+ `application/x-www-form-urlencoded`
+ and `multipart/form-data`
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ """
+ method = method.upper()
+ assert method in [
+ 'GET',
+ 'HEAD',
+ 'DELETE',
+ 'POST',
+ 'PUT',
+ 'PATCH',
+ 'OPTIONS'
+ ]
+
+ if post_params and body:
+ raise ApiValueError(
+ "body parameter cannot be used with post_params parameter."
+ )
+
+ post_params = post_params or {}
+ headers = headers or {}
+
+ timeout = None
+ if _request_timeout:
+ if isinstance(_request_timeout, (int, float)):
+ timeout = urllib3.Timeout(total=_request_timeout)
+ elif (
+ isinstance(_request_timeout, tuple)
+ and len(_request_timeout) == 2
+ ):
+ timeout = urllib3.Timeout(
+ connect=_request_timeout[0],
+ read=_request_timeout[1]
+ )
+
+ try:
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
+
+ # no content type provided or payload is json
+ content_type = headers.get('Content-Type')
+ if (
+ not content_type
+ or re.search('json', content_type, re.IGNORECASE)
+ ):
+ request_body = None
+ if body is not None:
+ request_body = json.dumps(body)
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=request_body,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif content_type == 'application/x-www-form-urlencoded':
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields=post_params,
+ encode_multipart=False,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif content_type == 'multipart/form-data':
+ # must del headers['Content-Type'], or the correct
+ # Content-Type which generated by urllib3 will be
+ # overwritten.
+ del headers['Content-Type']
+ # Ensures that dict objects are serialized
+ post_params = [(a, json.dumps(b)) if isinstance(b, dict) else (a,b) for a, b in post_params]
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields=post_params,
+ encode_multipart=True,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ # Pass a `string` parameter directly in the body to support
+ # other content types than JSON when `body` argument is
+ # provided in serialized form.
+ elif isinstance(body, str) or isinstance(body, bytes):
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=body,
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ elif headers['Content-Type'].startswith('text/') and isinstance(body, bool):
+ request_body = "true" if body else "false"
+ r = self.pool_manager.request(
+ method,
+ url,
+ body=request_body,
+ preload_content=False,
+ timeout=timeout,
+ headers=headers)
+ else:
+ # Cannot generate the request from given parameters
+ msg = """Cannot prepare a request message for provided
+ arguments. Please check that your arguments match
+ declared content type."""
+ raise ApiException(status=0, reason=msg)
+ # For `GET`, `HEAD`
+ else:
+ r = self.pool_manager.request(
+ method,
+ url,
+ fields={},
+ timeout=timeout,
+ headers=headers,
+ preload_content=False
+ )
+ except urllib3.exceptions.SSLError as e:
+ msg = "\n".join([type(e).__name__, str(e)])
+ raise ApiException(status=0, reason=msg)
+
+ return RESTResponse(r)
diff --git a/generated/immich/openapi_client/test/__init__.py b/generated/immich/openapi_client/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/generated/immich/openapi_client/test/test_activities_api.py b/generated/immich/openapi_client/test/test_activities_api.py
new file mode 100644
index 0000000..dbc554e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_activities_api.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.activities_api import ActivitiesApi
+
+
+class TestActivitiesApi(unittest.TestCase):
+ """ActivitiesApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = ActivitiesApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_activity(self) -> None:
+ """Test case for create_activity
+
+ """
+ pass
+
+ def test_delete_activity(self) -> None:
+ """Test case for delete_activity
+
+ """
+ pass
+
+ def test_get_activities(self) -> None:
+ """Test case for get_activities
+
+ """
+ pass
+
+ def test_get_activity_statistics(self) -> None:
+ """Test case for get_activity_statistics
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_activity_create_dto.py b/generated/immich/openapi_client/test/test_activity_create_dto.py
new file mode 100644
index 0000000..79d5529
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_activity_create_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.activity_create_dto import ActivityCreateDto
+
+class TestActivityCreateDto(unittest.TestCase):
+ """ActivityCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ActivityCreateDto:
+ """Test ActivityCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ActivityCreateDto`
+ """
+ model = ActivityCreateDto()
+ if include_optional:
+ return ActivityCreateDto(
+ album_id = '',
+ asset_id = '',
+ comment = '',
+ type = 'comment'
+ )
+ else:
+ return ActivityCreateDto(
+ album_id = '',
+ type = 'comment',
+ )
+ """
+
+ def testActivityCreateDto(self):
+ """Test ActivityCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_activity_response_dto.py b/generated/immich/openapi_client/test/test_activity_response_dto.py
new file mode 100644
index 0000000..4656c40
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_activity_response_dto.py
@@ -0,0 +1,73 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.activity_response_dto import ActivityResponseDto
+
+class TestActivityResponseDto(unittest.TestCase):
+ """ActivityResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ActivityResponseDto:
+ """Test ActivityResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ActivityResponseDto`
+ """
+ model = ActivityResponseDto()
+ if include_optional:
+ return ActivityResponseDto(
+ asset_id = '',
+ comment = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ type = 'comment',
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', )
+ )
+ else:
+ return ActivityResponseDto(
+ asset_id = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ type = 'comment',
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ )
+ """
+
+ def testActivityResponseDto(self):
+ """Test ActivityResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_activity_statistics_response_dto.py b/generated/immich/openapi_client/test/test_activity_statistics_response_dto.py
new file mode 100644
index 0000000..8c97859
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_activity_statistics_response_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.activity_statistics_response_dto import ActivityStatisticsResponseDto
+
+class TestActivityStatisticsResponseDto(unittest.TestCase):
+ """ActivityStatisticsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ActivityStatisticsResponseDto:
+ """Test ActivityStatisticsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ActivityStatisticsResponseDto`
+ """
+ model = ActivityStatisticsResponseDto()
+ if include_optional:
+ return ActivityStatisticsResponseDto(
+ comments = 56
+ )
+ else:
+ return ActivityStatisticsResponseDto(
+ comments = 56,
+ )
+ """
+
+ def testActivityStatisticsResponseDto(self):
+ """Test ActivityStatisticsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_add_users_dto.py b/generated/immich/openapi_client/test/test_add_users_dto.py
new file mode 100644
index 0000000..b2899c6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_add_users_dto.py
@@ -0,0 +1,60 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.add_users_dto import AddUsersDto
+
+class TestAddUsersDto(unittest.TestCase):
+ """AddUsersDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AddUsersDto:
+ """Test AddUsersDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AddUsersDto`
+ """
+ model = AddUsersDto()
+ if include_optional:
+ return AddUsersDto(
+ album_users = [
+ generated.immich.openapi_client.models.album_user_add_dto.AlbumUserAddDto(
+ role = null,
+ user_id = '', )
+ ]
+ )
+ else:
+ return AddUsersDto(
+ album_users = [
+ generated.immich.openapi_client.models.album_user_add_dto.AlbumUserAddDto(
+ role = null,
+ user_id = '', )
+ ],
+ )
+ """
+
+ def testAddUsersDto(self):
+ """Test AddUsersDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_admin_onboarding_update_dto.py b/generated/immich/openapi_client/test/test_admin_onboarding_update_dto.py
new file mode 100644
index 0000000..e7f79b0
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_admin_onboarding_update_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.admin_onboarding_update_dto import AdminOnboardingUpdateDto
+
+class TestAdminOnboardingUpdateDto(unittest.TestCase):
+ """AdminOnboardingUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AdminOnboardingUpdateDto:
+ """Test AdminOnboardingUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AdminOnboardingUpdateDto`
+ """
+ model = AdminOnboardingUpdateDto()
+ if include_optional:
+ return AdminOnboardingUpdateDto(
+ is_onboarded = True
+ )
+ else:
+ return AdminOnboardingUpdateDto(
+ is_onboarded = True,
+ )
+ """
+
+ def testAdminOnboardingUpdateDto(self):
+ """Test AdminOnboardingUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_album_response_dto.py b/generated/immich/openapi_client/test/test_album_response_dto.py
new file mode 100644
index 0000000..153110d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_album_response_dto.py
@@ -0,0 +1,314 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.album_response_dto import AlbumResponseDto
+
+class TestAlbumResponseDto(unittest.TestCase):
+ """AlbumResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AlbumResponseDto:
+ """Test AlbumResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AlbumResponseDto`
+ """
+ model = AlbumResponseDto()
+ if include_optional:
+ return AlbumResponseDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_response_dto.AlbumUserResponseDto(
+ role = null,
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ), )
+ ],
+ asset_count = 56,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_shared_link = True,
+ id = '',
+ is_activity_enabled = True,
+ last_modified_asset_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ order = 'asc',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ shared = True,
+ start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return AlbumResponseDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_response_dto.AlbumUserResponseDto(
+ role = null,
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ), )
+ ],
+ asset_count = 56,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ has_shared_link = True,
+ id = '',
+ is_activity_enabled = True,
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ shared = True,
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ )
+ """
+
+ def testAlbumResponseDto(self):
+ """Test AlbumResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_album_statistics_response_dto.py b/generated/immich/openapi_client/test/test_album_statistics_response_dto.py
new file mode 100644
index 0000000..d85ac25
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_album_statistics_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.album_statistics_response_dto import AlbumStatisticsResponseDto
+
+class TestAlbumStatisticsResponseDto(unittest.TestCase):
+ """AlbumStatisticsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AlbumStatisticsResponseDto:
+ """Test AlbumStatisticsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AlbumStatisticsResponseDto`
+ """
+ model = AlbumStatisticsResponseDto()
+ if include_optional:
+ return AlbumStatisticsResponseDto(
+ not_shared = 56,
+ owned = 56,
+ shared = 56
+ )
+ else:
+ return AlbumStatisticsResponseDto(
+ not_shared = 56,
+ owned = 56,
+ shared = 56,
+ )
+ """
+
+ def testAlbumStatisticsResponseDto(self):
+ """Test AlbumStatisticsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_album_user_add_dto.py b/generated/immich/openapi_client/test/test_album_user_add_dto.py
new file mode 100644
index 0000000..50c8d40
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_album_user_add_dto.py
@@ -0,0 +1,53 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.album_user_add_dto import AlbumUserAddDto
+
+class TestAlbumUserAddDto(unittest.TestCase):
+ """AlbumUserAddDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AlbumUserAddDto:
+ """Test AlbumUserAddDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AlbumUserAddDto`
+ """
+ model = AlbumUserAddDto()
+ if include_optional:
+ return AlbumUserAddDto(
+ role = 'editor',
+ user_id = ''
+ )
+ else:
+ return AlbumUserAddDto(
+ user_id = '',
+ )
+ """
+
+ def testAlbumUserAddDto(self):
+ """Test AlbumUserAddDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_album_user_create_dto.py b/generated/immich/openapi_client/test/test_album_user_create_dto.py
new file mode 100644
index 0000000..0677b1d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_album_user_create_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.album_user_create_dto import AlbumUserCreateDto
+
+class TestAlbumUserCreateDto(unittest.TestCase):
+ """AlbumUserCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AlbumUserCreateDto:
+ """Test AlbumUserCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AlbumUserCreateDto`
+ """
+ model = AlbumUserCreateDto()
+ if include_optional:
+ return AlbumUserCreateDto(
+ role = 'editor',
+ user_id = ''
+ )
+ else:
+ return AlbumUserCreateDto(
+ role = 'editor',
+ user_id = '',
+ )
+ """
+
+ def testAlbumUserCreateDto(self):
+ """Test AlbumUserCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_album_user_response_dto.py b/generated/immich/openapi_client/test/test_album_user_response_dto.py
new file mode 100644
index 0000000..c471887
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_album_user_response_dto.py
@@ -0,0 +1,66 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.album_user_response_dto import AlbumUserResponseDto
+
+class TestAlbumUserResponseDto(unittest.TestCase):
+ """AlbumUserResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AlbumUserResponseDto:
+ """Test AlbumUserResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AlbumUserResponseDto`
+ """
+ model = AlbumUserResponseDto()
+ if include_optional:
+ return AlbumUserResponseDto(
+ role = 'editor',
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', )
+ )
+ else:
+ return AlbumUserResponseDto(
+ role = 'editor',
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ )
+ """
+
+ def testAlbumUserResponseDto(self):
+ """Test AlbumUserResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_album_user_role.py b/generated/immich/openapi_client/test/test_album_user_role.py
new file mode 100644
index 0000000..3e92fba
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_album_user_role.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.album_user_role import AlbumUserRole
+
+class TestAlbumUserRole(unittest.TestCase):
+ """AlbumUserRole unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAlbumUserRole(self):
+ """Test AlbumUserRole"""
+ # inst = AlbumUserRole()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_albums_api.py b/generated/immich/openapi_client/test/test_albums_api.py
new file mode 100644
index 0000000..0456bdc
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_albums_api.py
@@ -0,0 +1,97 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.albums_api import AlbumsApi
+
+
+class TestAlbumsApi(unittest.TestCase):
+ """AlbumsApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = AlbumsApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_add_assets_to_album(self) -> None:
+ """Test case for add_assets_to_album
+
+ """
+ pass
+
+ def test_add_users_to_album(self) -> None:
+ """Test case for add_users_to_album
+
+ """
+ pass
+
+ def test_create_album(self) -> None:
+ """Test case for create_album
+
+ """
+ pass
+
+ def test_delete_album(self) -> None:
+ """Test case for delete_album
+
+ """
+ pass
+
+ def test_get_album_info(self) -> None:
+ """Test case for get_album_info
+
+ """
+ pass
+
+ def test_get_album_statistics(self) -> None:
+ """Test case for get_album_statistics
+
+ """
+ pass
+
+ def test_get_all_albums(self) -> None:
+ """Test case for get_all_albums
+
+ """
+ pass
+
+ def test_remove_asset_from_album(self) -> None:
+ """Test case for remove_asset_from_album
+
+ """
+ pass
+
+ def test_remove_user_from_album(self) -> None:
+ """Test case for remove_user_from_album
+
+ """
+ pass
+
+ def test_update_album_info(self) -> None:
+ """Test case for update_album_info
+
+ """
+ pass
+
+ def test_update_album_user(self) -> None:
+ """Test case for update_album_user
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_all_job_status_response_dto.py b/generated/immich/openapi_client/test/test_all_job_status_response_dto.py
new file mode 100644
index 0000000..f760907
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_all_job_status_response_dto.py
@@ -0,0 +1,380 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.all_job_status_response_dto import AllJobStatusResponseDto
+
+class TestAllJobStatusResponseDto(unittest.TestCase):
+ """AllJobStatusResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AllJobStatusResponseDto:
+ """Test AllJobStatusResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AllJobStatusResponseDto`
+ """
+ model = AllJobStatusResponseDto()
+ if include_optional:
+ return AllJobStatusResponseDto(
+ background_task = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ backup_database = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ duplicate_detection = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ face_detection = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ facial_recognition = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ library = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ metadata_extraction = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ migration = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ notifications = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ search = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ sidecar = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ smart_search = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ storage_template_migration = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ thumbnail_generation = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ video_conversion = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), )
+ )
+ else:
+ return AllJobStatusResponseDto(
+ background_task = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ backup_database = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ duplicate_detection = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ face_detection = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ facial_recognition = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ library = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ metadata_extraction = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ migration = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ notifications = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ search = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ sidecar = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ smart_search = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ storage_template_migration = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ thumbnail_generation = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ video_conversion = generated.immich.openapi_client.models.job_status_dto.JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ), ),
+ )
+ """
+
+ def testAllJobStatusResponseDto(self):
+ """Test AllJobStatusResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_api_key_create_dto.py b/generated/immich/openapi_client/test/test_api_key_create_dto.py
new file mode 100644
index 0000000..751ffa6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_api_key_create_dto.py
@@ -0,0 +1,57 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.api_key_create_dto import APIKeyCreateDto
+
+class TestAPIKeyCreateDto(unittest.TestCase):
+ """APIKeyCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> APIKeyCreateDto:
+ """Test APIKeyCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `APIKeyCreateDto`
+ """
+ model = APIKeyCreateDto()
+ if include_optional:
+ return APIKeyCreateDto(
+ name = '',
+ permissions = [
+ 'all'
+ ]
+ )
+ else:
+ return APIKeyCreateDto(
+ permissions = [
+ 'all'
+ ],
+ )
+ """
+
+ def testAPIKeyCreateDto(self):
+ """Test APIKeyCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_api_key_create_response_dto.py b/generated/immich/openapi_client/test/test_api_key_create_response_dto.py
new file mode 100644
index 0000000..280967c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_api_key_create_response_dto.py
@@ -0,0 +1,68 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.api_key_create_response_dto import APIKeyCreateResponseDto
+
+class TestAPIKeyCreateResponseDto(unittest.TestCase):
+ """APIKeyCreateResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> APIKeyCreateResponseDto:
+ """Test APIKeyCreateResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `APIKeyCreateResponseDto`
+ """
+ model = APIKeyCreateResponseDto()
+ if include_optional:
+ return APIKeyCreateResponseDto(
+ api_key = generated.immich.openapi_client.models.api_key_response_dto.APIKeyResponseDto(
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ permissions = [
+ 'all'
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ secret = ''
+ )
+ else:
+ return APIKeyCreateResponseDto(
+ api_key = generated.immich.openapi_client.models.api_key_response_dto.APIKeyResponseDto(
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ permissions = [
+ 'all'
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ secret = '',
+ )
+ """
+
+ def testAPIKeyCreateResponseDto(self):
+ """Test APIKeyCreateResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_api_key_response_dto.py b/generated/immich/openapi_client/test/test_api_key_response_dto.py
new file mode 100644
index 0000000..56d5e7e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_api_key_response_dto.py
@@ -0,0 +1,64 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.api_key_response_dto import APIKeyResponseDto
+
+class TestAPIKeyResponseDto(unittest.TestCase):
+ """APIKeyResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> APIKeyResponseDto:
+ """Test APIKeyResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `APIKeyResponseDto`
+ """
+ model = APIKeyResponseDto()
+ if include_optional:
+ return APIKeyResponseDto(
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ permissions = [
+ 'all'
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return APIKeyResponseDto(
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ permissions = [
+ 'all'
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ )
+ """
+
+ def testAPIKeyResponseDto(self):
+ """Test APIKeyResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_api_key_update_dto.py b/generated/immich/openapi_client/test/test_api_key_update_dto.py
new file mode 100644
index 0000000..445a45c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_api_key_update_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.api_key_update_dto import APIKeyUpdateDto
+
+class TestAPIKeyUpdateDto(unittest.TestCase):
+ """APIKeyUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> APIKeyUpdateDto:
+ """Test APIKeyUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `APIKeyUpdateDto`
+ """
+ model = APIKeyUpdateDto()
+ if include_optional:
+ return APIKeyUpdateDto(
+ name = ''
+ )
+ else:
+ return APIKeyUpdateDto(
+ name = '',
+ )
+ """
+
+ def testAPIKeyUpdateDto(self):
+ """Test APIKeyUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_api_keys_api.py b/generated/immich/openapi_client/test/test_api_keys_api.py
new file mode 100644
index 0000000..cde33f7
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_api_keys_api.py
@@ -0,0 +1,61 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.api_keys_api import APIKeysApi
+
+
+class TestAPIKeysApi(unittest.TestCase):
+ """APIKeysApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = APIKeysApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_api_key(self) -> None:
+ """Test case for create_api_key
+
+ """
+ pass
+
+ def test_delete_api_key(self) -> None:
+ """Test case for delete_api_key
+
+ """
+ pass
+
+ def test_get_api_key(self) -> None:
+ """Test case for get_api_key
+
+ """
+ pass
+
+ def test_get_api_keys(self) -> None:
+ """Test case for get_api_keys
+
+ """
+ pass
+
+ def test_update_api_key(self) -> None:
+ """Test case for update_api_key
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_bulk_delete_dto.py b/generated/immich/openapi_client/test/test_asset_bulk_delete_dto.py
new file mode 100644
index 0000000..3cbb66b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_bulk_delete_dto.py
@@ -0,0 +1,57 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_bulk_delete_dto import AssetBulkDeleteDto
+
+class TestAssetBulkDeleteDto(unittest.TestCase):
+ """AssetBulkDeleteDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetBulkDeleteDto:
+ """Test AssetBulkDeleteDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetBulkDeleteDto`
+ """
+ model = AssetBulkDeleteDto()
+ if include_optional:
+ return AssetBulkDeleteDto(
+ force = True,
+ ids = [
+ ''
+ ]
+ )
+ else:
+ return AssetBulkDeleteDto(
+ ids = [
+ ''
+ ],
+ )
+ """
+
+ def testAssetBulkDeleteDto(self):
+ """Test AssetBulkDeleteDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_bulk_update_dto.py b/generated/immich/openapi_client/test/test_asset_bulk_update_dto.py
new file mode 100644
index 0000000..920fc43
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_bulk_update_dto.py
@@ -0,0 +1,63 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_bulk_update_dto import AssetBulkUpdateDto
+
+class TestAssetBulkUpdateDto(unittest.TestCase):
+ """AssetBulkUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetBulkUpdateDto:
+ """Test AssetBulkUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetBulkUpdateDto`
+ """
+ model = AssetBulkUpdateDto()
+ if include_optional:
+ return AssetBulkUpdateDto(
+ date_time_original = '',
+ duplicate_id = '',
+ ids = [
+ ''
+ ],
+ is_archived = True,
+ is_favorite = True,
+ latitude = 1.337,
+ longitude = 1.337,
+ rating = -1
+ )
+ else:
+ return AssetBulkUpdateDto(
+ ids = [
+ ''
+ ],
+ )
+ """
+
+ def testAssetBulkUpdateDto(self):
+ """Test AssetBulkUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_bulk_upload_check_dto.py b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_dto.py
new file mode 100644
index 0000000..21ca715
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_dto.py
@@ -0,0 +1,60 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_bulk_upload_check_dto import AssetBulkUploadCheckDto
+
+class TestAssetBulkUploadCheckDto(unittest.TestCase):
+ """AssetBulkUploadCheckDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetBulkUploadCheckDto:
+ """Test AssetBulkUploadCheckDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetBulkUploadCheckDto`
+ """
+ model = AssetBulkUploadCheckDto()
+ if include_optional:
+ return AssetBulkUploadCheckDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_bulk_upload_check_item.AssetBulkUploadCheckItem(
+ checksum = '',
+ id = '', )
+ ]
+ )
+ else:
+ return AssetBulkUploadCheckDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_bulk_upload_check_item.AssetBulkUploadCheckItem(
+ checksum = '',
+ id = '', )
+ ],
+ )
+ """
+
+ def testAssetBulkUploadCheckDto(self):
+ """Test AssetBulkUploadCheckDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_bulk_upload_check_item.py b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_item.py
new file mode 100644
index 0000000..9df57e4
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_item.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_bulk_upload_check_item import AssetBulkUploadCheckItem
+
+class TestAssetBulkUploadCheckItem(unittest.TestCase):
+ """AssetBulkUploadCheckItem unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetBulkUploadCheckItem:
+ """Test AssetBulkUploadCheckItem
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetBulkUploadCheckItem`
+ """
+ model = AssetBulkUploadCheckItem()
+ if include_optional:
+ return AssetBulkUploadCheckItem(
+ checksum = '',
+ id = ''
+ )
+ else:
+ return AssetBulkUploadCheckItem(
+ checksum = '',
+ id = '',
+ )
+ """
+
+ def testAssetBulkUploadCheckItem(self):
+ """Test AssetBulkUploadCheckItem"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_bulk_upload_check_response_dto.py b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_response_dto.py
new file mode 100644
index 0000000..6db8974
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_response_dto.py
@@ -0,0 +1,66 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_bulk_upload_check_response_dto import AssetBulkUploadCheckResponseDto
+
+class TestAssetBulkUploadCheckResponseDto(unittest.TestCase):
+ """AssetBulkUploadCheckResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetBulkUploadCheckResponseDto:
+ """Test AssetBulkUploadCheckResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetBulkUploadCheckResponseDto`
+ """
+ model = AssetBulkUploadCheckResponseDto()
+ if include_optional:
+ return AssetBulkUploadCheckResponseDto(
+ results = [
+ generated.immich.openapi_client.models.asset_bulk_upload_check_result.AssetBulkUploadCheckResult(
+ action = 'accept',
+ asset_id = '',
+ id = '',
+ is_trashed = True,
+ reason = 'duplicate', )
+ ]
+ )
+ else:
+ return AssetBulkUploadCheckResponseDto(
+ results = [
+ generated.immich.openapi_client.models.asset_bulk_upload_check_result.AssetBulkUploadCheckResult(
+ action = 'accept',
+ asset_id = '',
+ id = '',
+ is_trashed = True,
+ reason = 'duplicate', )
+ ],
+ )
+ """
+
+ def testAssetBulkUploadCheckResponseDto(self):
+ """Test AssetBulkUploadCheckResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_bulk_upload_check_result.py b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_result.py
new file mode 100644
index 0000000..cfa866d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_bulk_upload_check_result.py
@@ -0,0 +1,57 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_bulk_upload_check_result import AssetBulkUploadCheckResult
+
+class TestAssetBulkUploadCheckResult(unittest.TestCase):
+ """AssetBulkUploadCheckResult unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetBulkUploadCheckResult:
+ """Test AssetBulkUploadCheckResult
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetBulkUploadCheckResult`
+ """
+ model = AssetBulkUploadCheckResult()
+ if include_optional:
+ return AssetBulkUploadCheckResult(
+ action = 'accept',
+ asset_id = '',
+ id = '',
+ is_trashed = True,
+ reason = 'duplicate'
+ )
+ else:
+ return AssetBulkUploadCheckResult(
+ action = 'accept',
+ id = '',
+ )
+ """
+
+ def testAssetBulkUploadCheckResult(self):
+ """Test AssetBulkUploadCheckResult"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_delta_sync_dto.py b/generated/immich/openapi_client/test/test_asset_delta_sync_dto.py
new file mode 100644
index 0000000..8d9bdb5
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_delta_sync_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_delta_sync_dto import AssetDeltaSyncDto
+
+class TestAssetDeltaSyncDto(unittest.TestCase):
+ """AssetDeltaSyncDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetDeltaSyncDto:
+ """Test AssetDeltaSyncDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetDeltaSyncDto`
+ """
+ model = AssetDeltaSyncDto()
+ if include_optional:
+ return AssetDeltaSyncDto(
+ updated_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ user_ids = [
+ ''
+ ]
+ )
+ else:
+ return AssetDeltaSyncDto(
+ updated_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ user_ids = [
+ ''
+ ],
+ )
+ """
+
+ def testAssetDeltaSyncDto(self):
+ """Test AssetDeltaSyncDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_delta_sync_response_dto.py b/generated/immich/openapi_client/test/test_asset_delta_sync_response_dto.py
new file mode 100644
index 0000000..337d6ce
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_delta_sync_response_dto.py
@@ -0,0 +1,260 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_delta_sync_response_dto import AssetDeltaSyncResponseDto
+
+class TestAssetDeltaSyncResponseDto(unittest.TestCase):
+ """AssetDeltaSyncResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetDeltaSyncResponseDto:
+ """Test AssetDeltaSyncResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetDeltaSyncResponseDto`
+ """
+ model = AssetDeltaSyncResponseDto()
+ if include_optional:
+ return AssetDeltaSyncResponseDto(
+ deleted = [
+ ''
+ ],
+ needs_full_sync = True,
+ upserted = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ]
+ )
+ else:
+ return AssetDeltaSyncResponseDto(
+ deleted = [
+ ''
+ ],
+ needs_full_sync = True,
+ upserted = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ )
+ """
+
+ def testAssetDeltaSyncResponseDto(self):
+ """Test AssetDeltaSyncResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_face_create_dto.py b/generated/immich/openapi_client/test/test_asset_face_create_dto.py
new file mode 100644
index 0000000..486f006
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_face_create_dto.py
@@ -0,0 +1,66 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_face_create_dto import AssetFaceCreateDto
+
+class TestAssetFaceCreateDto(unittest.TestCase):
+ """AssetFaceCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetFaceCreateDto:
+ """Test AssetFaceCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetFaceCreateDto`
+ """
+ model = AssetFaceCreateDto()
+ if include_optional:
+ return AssetFaceCreateDto(
+ asset_id = '',
+ height = 56,
+ image_height = 56,
+ image_width = 56,
+ person_id = '',
+ width = 56,
+ x = 56,
+ y = 56
+ )
+ else:
+ return AssetFaceCreateDto(
+ asset_id = '',
+ height = 56,
+ image_height = 56,
+ image_width = 56,
+ person_id = '',
+ width = 56,
+ x = 56,
+ y = 56,
+ )
+ """
+
+ def testAssetFaceCreateDto(self):
+ """Test AssetFaceCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_face_delete_dto.py b/generated/immich/openapi_client/test/test_asset_face_delete_dto.py
new file mode 100644
index 0000000..d342bb6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_face_delete_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_face_delete_dto import AssetFaceDeleteDto
+
+class TestAssetFaceDeleteDto(unittest.TestCase):
+ """AssetFaceDeleteDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetFaceDeleteDto:
+ """Test AssetFaceDeleteDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetFaceDeleteDto`
+ """
+ model = AssetFaceDeleteDto()
+ if include_optional:
+ return AssetFaceDeleteDto(
+ force = True
+ )
+ else:
+ return AssetFaceDeleteDto(
+ force = True,
+ )
+ """
+
+ def testAssetFaceDeleteDto(self):
+ """Test AssetFaceDeleteDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_face_response_dto.py b/generated/immich/openapi_client/test/test_asset_face_response_dto.py
new file mode 100644
index 0000000..6ec7da9
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_face_response_dto.py
@@ -0,0 +1,83 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_face_response_dto import AssetFaceResponseDto
+
+class TestAssetFaceResponseDto(unittest.TestCase):
+ """AssetFaceResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetFaceResponseDto:
+ """Test AssetFaceResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetFaceResponseDto`
+ """
+ model = AssetFaceResponseDto()
+ if include_optional:
+ return AssetFaceResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ person = generated.immich.openapi_client.models.person_response_dto.PersonResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ source_type = 'machine-learning'
+ )
+ else:
+ return AssetFaceResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ person = generated.immich.openapi_client.models.person_response_dto.PersonResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ )
+ """
+
+ def testAssetFaceResponseDto(self):
+ """Test AssetFaceResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_face_update_dto.py b/generated/immich/openapi_client/test/test_asset_face_update_dto.py
new file mode 100644
index 0000000..e962f94
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_face_update_dto.py
@@ -0,0 +1,60 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_face_update_dto import AssetFaceUpdateDto
+
+class TestAssetFaceUpdateDto(unittest.TestCase):
+ """AssetFaceUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetFaceUpdateDto:
+ """Test AssetFaceUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetFaceUpdateDto`
+ """
+ model = AssetFaceUpdateDto()
+ if include_optional:
+ return AssetFaceUpdateDto(
+ data = [
+ generated.immich.openapi_client.models.asset_face_update_item.AssetFaceUpdateItem(
+ asset_id = '',
+ person_id = '', )
+ ]
+ )
+ else:
+ return AssetFaceUpdateDto(
+ data = [
+ generated.immich.openapi_client.models.asset_face_update_item.AssetFaceUpdateItem(
+ asset_id = '',
+ person_id = '', )
+ ],
+ )
+ """
+
+ def testAssetFaceUpdateDto(self):
+ """Test AssetFaceUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_face_update_item.py b/generated/immich/openapi_client/test/test_asset_face_update_item.py
new file mode 100644
index 0000000..9dfbdb0
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_face_update_item.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_face_update_item import AssetFaceUpdateItem
+
+class TestAssetFaceUpdateItem(unittest.TestCase):
+ """AssetFaceUpdateItem unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetFaceUpdateItem:
+ """Test AssetFaceUpdateItem
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetFaceUpdateItem`
+ """
+ model = AssetFaceUpdateItem()
+ if include_optional:
+ return AssetFaceUpdateItem(
+ asset_id = '',
+ person_id = ''
+ )
+ else:
+ return AssetFaceUpdateItem(
+ asset_id = '',
+ person_id = '',
+ )
+ """
+
+ def testAssetFaceUpdateItem(self):
+ """Test AssetFaceUpdateItem"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_face_without_person_response_dto.py b/generated/immich/openapi_client/test/test_asset_face_without_person_response_dto.py
new file mode 100644
index 0000000..dee742f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_face_without_person_response_dto.py
@@ -0,0 +1,65 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_face_without_person_response_dto import AssetFaceWithoutPersonResponseDto
+
+class TestAssetFaceWithoutPersonResponseDto(unittest.TestCase):
+ """AssetFaceWithoutPersonResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetFaceWithoutPersonResponseDto:
+ """Test AssetFaceWithoutPersonResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetFaceWithoutPersonResponseDto`
+ """
+ model = AssetFaceWithoutPersonResponseDto()
+ if include_optional:
+ return AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = 'machine-learning'
+ )
+ else:
+ return AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ )
+ """
+
+ def testAssetFaceWithoutPersonResponseDto(self):
+ """Test AssetFaceWithoutPersonResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_full_sync_dto.py b/generated/immich/openapi_client/test/test_asset_full_sync_dto.py
new file mode 100644
index 0000000..082ec13
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_full_sync_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_full_sync_dto import AssetFullSyncDto
+
+class TestAssetFullSyncDto(unittest.TestCase):
+ """AssetFullSyncDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetFullSyncDto:
+ """Test AssetFullSyncDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetFullSyncDto`
+ """
+ model = AssetFullSyncDto()
+ if include_optional:
+ return AssetFullSyncDto(
+ last_id = '',
+ limit = 1,
+ updated_until = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ user_id = ''
+ )
+ else:
+ return AssetFullSyncDto(
+ limit = 1,
+ updated_until = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ )
+ """
+
+ def testAssetFullSyncDto(self):
+ """Test AssetFullSyncDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_ids_dto.py b/generated/immich/openapi_client/test/test_asset_ids_dto.py
new file mode 100644
index 0000000..a2023fd
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_ids_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_ids_dto import AssetIdsDto
+
+class TestAssetIdsDto(unittest.TestCase):
+ """AssetIdsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetIdsDto:
+ """Test AssetIdsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetIdsDto`
+ """
+ model = AssetIdsDto()
+ if include_optional:
+ return AssetIdsDto(
+ asset_ids = [
+ ''
+ ]
+ )
+ else:
+ return AssetIdsDto(
+ asset_ids = [
+ ''
+ ],
+ )
+ """
+
+ def testAssetIdsDto(self):
+ """Test AssetIdsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_ids_response_dto.py b/generated/immich/openapi_client/test/test_asset_ids_response_dto.py
new file mode 100644
index 0000000..6efe416
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_ids_response_dto.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_ids_response_dto import AssetIdsResponseDto
+
+class TestAssetIdsResponseDto(unittest.TestCase):
+ """AssetIdsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetIdsResponseDto:
+ """Test AssetIdsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetIdsResponseDto`
+ """
+ model = AssetIdsResponseDto()
+ if include_optional:
+ return AssetIdsResponseDto(
+ asset_id = '',
+ error = 'duplicate',
+ success = True
+ )
+ else:
+ return AssetIdsResponseDto(
+ asset_id = '',
+ success = True,
+ )
+ """
+
+ def testAssetIdsResponseDto(self):
+ """Test AssetIdsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_job_name.py b/generated/immich/openapi_client/test/test_asset_job_name.py
new file mode 100644
index 0000000..b717a11
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_job_name.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_job_name import AssetJobName
+
+class TestAssetJobName(unittest.TestCase):
+ """AssetJobName unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAssetJobName(self):
+ """Test AssetJobName"""
+ # inst = AssetJobName()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_jobs_dto.py b/generated/immich/openapi_client/test/test_asset_jobs_dto.py
new file mode 100644
index 0000000..e4e316b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_jobs_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_jobs_dto import AssetJobsDto
+
+class TestAssetJobsDto(unittest.TestCase):
+ """AssetJobsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetJobsDto:
+ """Test AssetJobsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetJobsDto`
+ """
+ model = AssetJobsDto()
+ if include_optional:
+ return AssetJobsDto(
+ asset_ids = [
+ ''
+ ],
+ name = 'refresh-faces'
+ )
+ else:
+ return AssetJobsDto(
+ asset_ids = [
+ ''
+ ],
+ name = 'refresh-faces',
+ )
+ """
+
+ def testAssetJobsDto(self):
+ """Test AssetJobsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_media_response_dto.py b/generated/immich/openapi_client/test/test_asset_media_response_dto.py
new file mode 100644
index 0000000..a4eec91
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_media_response_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_media_response_dto import AssetMediaResponseDto
+
+class TestAssetMediaResponseDto(unittest.TestCase):
+ """AssetMediaResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetMediaResponseDto:
+ """Test AssetMediaResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetMediaResponseDto`
+ """
+ model = AssetMediaResponseDto()
+ if include_optional:
+ return AssetMediaResponseDto(
+ id = '',
+ status = 'created'
+ )
+ else:
+ return AssetMediaResponseDto(
+ id = '',
+ status = 'created',
+ )
+ """
+
+ def testAssetMediaResponseDto(self):
+ """Test AssetMediaResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_media_size.py b/generated/immich/openapi_client/test/test_asset_media_size.py
new file mode 100644
index 0000000..39123b9
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_media_size.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_media_size import AssetMediaSize
+
+class TestAssetMediaSize(unittest.TestCase):
+ """AssetMediaSize unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAssetMediaSize(self):
+ """Test AssetMediaSize"""
+ # inst = AssetMediaSize()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_media_status.py b/generated/immich/openapi_client/test/test_asset_media_status.py
new file mode 100644
index 0000000..d91be09
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_media_status.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_media_status import AssetMediaStatus
+
+class TestAssetMediaStatus(unittest.TestCase):
+ """AssetMediaStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAssetMediaStatus(self):
+ """Test AssetMediaStatus"""
+ # inst = AssetMediaStatus()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_order.py b/generated/immich/openapi_client/test/test_asset_order.py
new file mode 100644
index 0000000..08367e4
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_order.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_order import AssetOrder
+
+class TestAssetOrder(unittest.TestCase):
+ """AssetOrder unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAssetOrder(self):
+ """Test AssetOrder"""
+ # inst = AssetOrder()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_response_dto.py b/generated/immich/openapi_client/test/test_asset_response_dto.py
new file mode 100644
index 0000000..e3b5314
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_response_dto.py
@@ -0,0 +1,170 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_response_dto import AssetResponseDto
+
+class TestAssetResponseDto(unittest.TestCase):
+ """AssetResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetResponseDto:
+ """Test AssetResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetResponseDto`
+ """
+ model = AssetResponseDto()
+ if include_optional:
+ return AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = generated.immich.openapi_client.models.asset_stack_response_dto.AssetStackResponseDto(
+ asset_count = 56,
+ id = '',
+ primary_asset_id = '', ),
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = 'IMAGE',
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duration = '',
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_path = '',
+ owner_id = '',
+ thumbhash = '',
+ type = 'IMAGE',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ )
+ """
+
+ def testAssetResponseDto(self):
+ """Test AssetResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_stack_response_dto.py b/generated/immich/openapi_client/test/test_asset_stack_response_dto.py
new file mode 100644
index 0000000..97c9a17
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_stack_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_stack_response_dto import AssetStackResponseDto
+
+class TestAssetStackResponseDto(unittest.TestCase):
+ """AssetStackResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetStackResponseDto:
+ """Test AssetStackResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetStackResponseDto`
+ """
+ model = AssetStackResponseDto()
+ if include_optional:
+ return AssetStackResponseDto(
+ asset_count = 56,
+ id = '',
+ primary_asset_id = ''
+ )
+ else:
+ return AssetStackResponseDto(
+ asset_count = 56,
+ id = '',
+ primary_asset_id = '',
+ )
+ """
+
+ def testAssetStackResponseDto(self):
+ """Test AssetStackResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_stats_response_dto.py b/generated/immich/openapi_client/test/test_asset_stats_response_dto.py
new file mode 100644
index 0000000..3d0fe2c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_stats_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_stats_response_dto import AssetStatsResponseDto
+
+class TestAssetStatsResponseDto(unittest.TestCase):
+ """AssetStatsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AssetStatsResponseDto:
+ """Test AssetStatsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AssetStatsResponseDto`
+ """
+ model = AssetStatsResponseDto()
+ if include_optional:
+ return AssetStatsResponseDto(
+ images = 56,
+ total = 56,
+ videos = 56
+ )
+ else:
+ return AssetStatsResponseDto(
+ images = 56,
+ total = 56,
+ videos = 56,
+ )
+ """
+
+ def testAssetStatsResponseDto(self):
+ """Test AssetStatsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_asset_type_enum.py b/generated/immich/openapi_client/test/test_asset_type_enum.py
new file mode 100644
index 0000000..1318a91
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_asset_type_enum.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.asset_type_enum import AssetTypeEnum
+
+class TestAssetTypeEnum(unittest.TestCase):
+ """AssetTypeEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAssetTypeEnum(self):
+ """Test AssetTypeEnum"""
+ # inst = AssetTypeEnum()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_assets_api.py b/generated/immich/openapi_client/test/test_assets_api.py
new file mode 100644
index 0000000..e161278
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_assets_api.py
@@ -0,0 +1,131 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.assets_api import AssetsApi
+
+
+class TestAssetsApi(unittest.TestCase):
+ """AssetsApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = AssetsApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_check_bulk_upload(self) -> None:
+ """Test case for check_bulk_upload
+
+ checkBulkUpload
+ """
+ pass
+
+ def test_check_existing_assets(self) -> None:
+ """Test case for check_existing_assets
+
+ checkExistingAssets
+ """
+ pass
+
+ def test_delete_assets(self) -> None:
+ """Test case for delete_assets
+
+ """
+ pass
+
+ def test_download_asset(self) -> None:
+ """Test case for download_asset
+
+ """
+ pass
+
+ def test_get_all_user_assets_by_device_id(self) -> None:
+ """Test case for get_all_user_assets_by_device_id
+
+ getAllUserAssetsByDeviceId
+ """
+ pass
+
+ def test_get_asset_info(self) -> None:
+ """Test case for get_asset_info
+
+ """
+ pass
+
+ def test_get_asset_statistics(self) -> None:
+ """Test case for get_asset_statistics
+
+ """
+ pass
+
+ def test_get_memory_lane(self) -> None:
+ """Test case for get_memory_lane
+
+ """
+ pass
+
+ def test_get_random(self) -> None:
+ """Test case for get_random
+
+ """
+ pass
+
+ def test_play_asset_video(self) -> None:
+ """Test case for play_asset_video
+
+ """
+ pass
+
+ def test_replace_asset(self) -> None:
+ """Test case for replace_asset
+
+ replaceAsset
+ """
+ pass
+
+ def test_run_asset_jobs(self) -> None:
+ """Test case for run_asset_jobs
+
+ """
+ pass
+
+ def test_update_asset(self) -> None:
+ """Test case for update_asset
+
+ """
+ pass
+
+ def test_update_assets(self) -> None:
+ """Test case for update_assets
+
+ """
+ pass
+
+ def test_upload_asset(self) -> None:
+ """Test case for upload_asset
+
+ """
+ pass
+
+ def test_view_asset(self) -> None:
+ """Test case for view_asset
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_audio_codec.py b/generated/immich/openapi_client/test/test_audio_codec.py
new file mode 100644
index 0000000..d935ca6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_audio_codec.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.audio_codec import AudioCodec
+
+class TestAudioCodec(unittest.TestCase):
+ """AudioCodec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testAudioCodec(self):
+ """Test AudioCodec"""
+ # inst = AudioCodec()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_authentication_api.py b/generated/immich/openapi_client/test/test_authentication_api.py
new file mode 100644
index 0000000..ccd3b24
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_authentication_api.py
@@ -0,0 +1,61 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.authentication_api import AuthenticationApi
+
+
+class TestAuthenticationApi(unittest.TestCase):
+ """AuthenticationApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = AuthenticationApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_change_password(self) -> None:
+ """Test case for change_password
+
+ """
+ pass
+
+ def test_login(self) -> None:
+ """Test case for login
+
+ """
+ pass
+
+ def test_logout(self) -> None:
+ """Test case for logout
+
+ """
+ pass
+
+ def test_sign_up_admin(self) -> None:
+ """Test case for sign_up_admin
+
+ """
+ pass
+
+ def test_validate_access_token(self) -> None:
+ """Test case for validate_access_token
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_avatar_response.py b/generated/immich/openapi_client/test/test_avatar_response.py
new file mode 100644
index 0000000..3c63cf5
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_avatar_response.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.avatar_response import AvatarResponse
+
+class TestAvatarResponse(unittest.TestCase):
+ """AvatarResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AvatarResponse:
+ """Test AvatarResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AvatarResponse`
+ """
+ model = AvatarResponse()
+ if include_optional:
+ return AvatarResponse(
+ color = 'primary'
+ )
+ else:
+ return AvatarResponse(
+ color = 'primary',
+ )
+ """
+
+ def testAvatarResponse(self):
+ """Test AvatarResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_avatar_update.py b/generated/immich/openapi_client/test/test_avatar_update.py
new file mode 100644
index 0000000..5f80f52
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_avatar_update.py
@@ -0,0 +1,51 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.avatar_update import AvatarUpdate
+
+class TestAvatarUpdate(unittest.TestCase):
+ """AvatarUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> AvatarUpdate:
+ """Test AvatarUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `AvatarUpdate`
+ """
+ model = AvatarUpdate()
+ if include_optional:
+ return AvatarUpdate(
+ color = 'primary'
+ )
+ else:
+ return AvatarUpdate(
+ )
+ """
+
+ def testAvatarUpdate(self):
+ """Test AvatarUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_bulk_id_response_dto.py b/generated/immich/openapi_client/test/test_bulk_id_response_dto.py
new file mode 100644
index 0000000..6755d6a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_bulk_id_response_dto.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.bulk_id_response_dto import BulkIdResponseDto
+
+class TestBulkIdResponseDto(unittest.TestCase):
+ """BulkIdResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> BulkIdResponseDto:
+ """Test BulkIdResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `BulkIdResponseDto`
+ """
+ model = BulkIdResponseDto()
+ if include_optional:
+ return BulkIdResponseDto(
+ error = 'duplicate',
+ id = '',
+ success = True
+ )
+ else:
+ return BulkIdResponseDto(
+ id = '',
+ success = True,
+ )
+ """
+
+ def testBulkIdResponseDto(self):
+ """Test BulkIdResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_bulk_ids_dto.py b/generated/immich/openapi_client/test/test_bulk_ids_dto.py
new file mode 100644
index 0000000..84c3e6a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_bulk_ids_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.bulk_ids_dto import BulkIdsDto
+
+class TestBulkIdsDto(unittest.TestCase):
+ """BulkIdsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> BulkIdsDto:
+ """Test BulkIdsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `BulkIdsDto`
+ """
+ model = BulkIdsDto()
+ if include_optional:
+ return BulkIdsDto(
+ ids = [
+ ''
+ ]
+ )
+ else:
+ return BulkIdsDto(
+ ids = [
+ ''
+ ],
+ )
+ """
+
+ def testBulkIdsDto(self):
+ """Test BulkIdsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_change_password_dto.py b/generated/immich/openapi_client/test/test_change_password_dto.py
new file mode 100644
index 0000000..a6e795d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_change_password_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.change_password_dto import ChangePasswordDto
+
+class TestChangePasswordDto(unittest.TestCase):
+ """ChangePasswordDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ChangePasswordDto:
+ """Test ChangePasswordDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ChangePasswordDto`
+ """
+ model = ChangePasswordDto()
+ if include_optional:
+ return ChangePasswordDto(
+ new_password = 'password',
+ password = 'password'
+ )
+ else:
+ return ChangePasswordDto(
+ new_password = 'password',
+ password = 'password',
+ )
+ """
+
+ def testChangePasswordDto(self):
+ """Test ChangePasswordDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_check_existing_assets_dto.py b/generated/immich/openapi_client/test/test_check_existing_assets_dto.py
new file mode 100644
index 0000000..73089cc
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_check_existing_assets_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.check_existing_assets_dto import CheckExistingAssetsDto
+
+class TestCheckExistingAssetsDto(unittest.TestCase):
+ """CheckExistingAssetsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CheckExistingAssetsDto:
+ """Test CheckExistingAssetsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CheckExistingAssetsDto`
+ """
+ model = CheckExistingAssetsDto()
+ if include_optional:
+ return CheckExistingAssetsDto(
+ device_asset_ids = [
+ ''
+ ],
+ device_id = ''
+ )
+ else:
+ return CheckExistingAssetsDto(
+ device_asset_ids = [
+ ''
+ ],
+ device_id = '',
+ )
+ """
+
+ def testCheckExistingAssetsDto(self):
+ """Test CheckExistingAssetsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_check_existing_assets_response_dto.py b/generated/immich/openapi_client/test/test_check_existing_assets_response_dto.py
new file mode 100644
index 0000000..560e457
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_check_existing_assets_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.check_existing_assets_response_dto import CheckExistingAssetsResponseDto
+
+class TestCheckExistingAssetsResponseDto(unittest.TestCase):
+ """CheckExistingAssetsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CheckExistingAssetsResponseDto:
+ """Test CheckExistingAssetsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CheckExistingAssetsResponseDto`
+ """
+ model = CheckExistingAssetsResponseDto()
+ if include_optional:
+ return CheckExistingAssetsResponseDto(
+ existing_ids = [
+ ''
+ ]
+ )
+ else:
+ return CheckExistingAssetsResponseDto(
+ existing_ids = [
+ ''
+ ],
+ )
+ """
+
+ def testCheckExistingAssetsResponseDto(self):
+ """Test CheckExistingAssetsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_clip_config.py b/generated/immich/openapi_client/test/test_clip_config.py
new file mode 100644
index 0000000..1f1946d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_clip_config.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.clip_config import CLIPConfig
+
+class TestCLIPConfig(unittest.TestCase):
+ """CLIPConfig unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CLIPConfig:
+ """Test CLIPConfig
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CLIPConfig`
+ """
+ model = CLIPConfig()
+ if include_optional:
+ return CLIPConfig(
+ enabled = True,
+ model_name = ''
+ )
+ else:
+ return CLIPConfig(
+ enabled = True,
+ model_name = '',
+ )
+ """
+
+ def testCLIPConfig(self):
+ """Test CLIPConfig"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_colorspace.py b/generated/immich/openapi_client/test/test_colorspace.py
new file mode 100644
index 0000000..8d37986
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_colorspace.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.colorspace import Colorspace
+
+class TestColorspace(unittest.TestCase):
+ """Colorspace unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testColorspace(self):
+ """Test Colorspace"""
+ # inst = Colorspace()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_cq_mode.py b/generated/immich/openapi_client/test/test_cq_mode.py
new file mode 100644
index 0000000..1664915
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_cq_mode.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.cq_mode import CQMode
+
+class TestCQMode(unittest.TestCase):
+ """CQMode unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testCQMode(self):
+ """Test CQMode"""
+ # inst = CQMode()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_create_album_dto.py b/generated/immich/openapi_client/test/test_create_album_dto.py
new file mode 100644
index 0000000..4b25360
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_create_album_dto.py
@@ -0,0 +1,61 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.create_album_dto import CreateAlbumDto
+
+class TestCreateAlbumDto(unittest.TestCase):
+ """CreateAlbumDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CreateAlbumDto:
+ """Test CreateAlbumDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CreateAlbumDto`
+ """
+ model = CreateAlbumDto()
+ if include_optional:
+ return CreateAlbumDto(
+ album_name = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_create_dto.AlbumUserCreateDto(
+ role = null,
+ user_id = '', )
+ ],
+ asset_ids = [
+ ''
+ ],
+ description = ''
+ )
+ else:
+ return CreateAlbumDto(
+ album_name = '',
+ )
+ """
+
+ def testCreateAlbumDto(self):
+ """Test CreateAlbumDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_create_library_dto.py b/generated/immich/openapi_client/test/test_create_library_dto.py
new file mode 100644
index 0000000..82bf368
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_create_library_dto.py
@@ -0,0 +1,59 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.create_library_dto import CreateLibraryDto
+
+class TestCreateLibraryDto(unittest.TestCase):
+ """CreateLibraryDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CreateLibraryDto:
+ """Test CreateLibraryDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CreateLibraryDto`
+ """
+ model = CreateLibraryDto()
+ if include_optional:
+ return CreateLibraryDto(
+ exclusion_patterns = [
+ ''
+ ],
+ import_paths = [
+ ''
+ ],
+ name = '',
+ owner_id = ''
+ )
+ else:
+ return CreateLibraryDto(
+ owner_id = '',
+ )
+ """
+
+ def testCreateLibraryDto(self):
+ """Test CreateLibraryDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_create_profile_image_response_dto.py b/generated/immich/openapi_client/test/test_create_profile_image_response_dto.py
new file mode 100644
index 0000000..6013565
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_create_profile_image_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.create_profile_image_response_dto import CreateProfileImageResponseDto
+
+class TestCreateProfileImageResponseDto(unittest.TestCase):
+ """CreateProfileImageResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> CreateProfileImageResponseDto:
+ """Test CreateProfileImageResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `CreateProfileImageResponseDto`
+ """
+ model = CreateProfileImageResponseDto()
+ if include_optional:
+ return CreateProfileImageResponseDto(
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '',
+ user_id = ''
+ )
+ else:
+ return CreateProfileImageResponseDto(
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '',
+ user_id = '',
+ )
+ """
+
+ def testCreateProfileImageResponseDto(self):
+ """Test CreateProfileImageResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_database_backup_config.py b/generated/immich/openapi_client/test/test_database_backup_config.py
new file mode 100644
index 0000000..79c491d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_database_backup_config.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.database_backup_config import DatabaseBackupConfig
+
+class TestDatabaseBackupConfig(unittest.TestCase):
+ """DatabaseBackupConfig unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DatabaseBackupConfig:
+ """Test DatabaseBackupConfig
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DatabaseBackupConfig`
+ """
+ model = DatabaseBackupConfig()
+ if include_optional:
+ return DatabaseBackupConfig(
+ cron_expression = '',
+ enabled = True,
+ keep_last_amount = 1
+ )
+ else:
+ return DatabaseBackupConfig(
+ cron_expression = '',
+ enabled = True,
+ keep_last_amount = 1,
+ )
+ """
+
+ def testDatabaseBackupConfig(self):
+ """Test DatabaseBackupConfig"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_deprecated_api.py b/generated/immich/openapi_client/test/test_deprecated_api.py
new file mode 100644
index 0000000..9a52511
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_deprecated_api.py
@@ -0,0 +1,37 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.deprecated_api import DeprecatedApi
+
+
+class TestDeprecatedApi(unittest.TestCase):
+ """DeprecatedApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = DeprecatedApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_random(self) -> None:
+ """Test case for get_random
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_download_api.py b/generated/immich/openapi_client/test/test_download_api.py
new file mode 100644
index 0000000..6b0789b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_download_api.py
@@ -0,0 +1,43 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.download_api import DownloadApi
+
+
+class TestDownloadApi(unittest.TestCase):
+ """DownloadApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = DownloadApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_download_archive(self) -> None:
+ """Test case for download_archive
+
+ """
+ pass
+
+ def test_get_download_info(self) -> None:
+ """Test case for get_download_info
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_download_archive_info.py b/generated/immich/openapi_client/test/test_download_archive_info.py
new file mode 100644
index 0000000..a50f68b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_download_archive_info.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.download_archive_info import DownloadArchiveInfo
+
+class TestDownloadArchiveInfo(unittest.TestCase):
+ """DownloadArchiveInfo unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DownloadArchiveInfo:
+ """Test DownloadArchiveInfo
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DownloadArchiveInfo`
+ """
+ model = DownloadArchiveInfo()
+ if include_optional:
+ return DownloadArchiveInfo(
+ asset_ids = [
+ ''
+ ],
+ size = 56
+ )
+ else:
+ return DownloadArchiveInfo(
+ asset_ids = [
+ ''
+ ],
+ size = 56,
+ )
+ """
+
+ def testDownloadArchiveInfo(self):
+ """Test DownloadArchiveInfo"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_download_info_dto.py b/generated/immich/openapi_client/test/test_download_info_dto.py
new file mode 100644
index 0000000..658a580
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_download_info_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.download_info_dto import DownloadInfoDto
+
+class TestDownloadInfoDto(unittest.TestCase):
+ """DownloadInfoDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DownloadInfoDto:
+ """Test DownloadInfoDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DownloadInfoDto`
+ """
+ model = DownloadInfoDto()
+ if include_optional:
+ return DownloadInfoDto(
+ album_id = '',
+ archive_size = 1,
+ asset_ids = [
+ ''
+ ],
+ user_id = ''
+ )
+ else:
+ return DownloadInfoDto(
+ )
+ """
+
+ def testDownloadInfoDto(self):
+ """Test DownloadInfoDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_download_response.py b/generated/immich/openapi_client/test/test_download_response.py
new file mode 100644
index 0000000..2103d98
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_download_response.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.download_response import DownloadResponse
+
+class TestDownloadResponse(unittest.TestCase):
+ """DownloadResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DownloadResponse:
+ """Test DownloadResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DownloadResponse`
+ """
+ model = DownloadResponse()
+ if include_optional:
+ return DownloadResponse(
+ archive_size = 56,
+ include_embedded_videos = True
+ )
+ else:
+ return DownloadResponse(
+ archive_size = 56,
+ include_embedded_videos = True,
+ )
+ """
+
+ def testDownloadResponse(self):
+ """Test DownloadResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_download_response_dto.py b/generated/immich/openapi_client/test/test_download_response_dto.py
new file mode 100644
index 0000000..f675e2c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_download_response_dto.py
@@ -0,0 +1,66 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.download_response_dto import DownloadResponseDto
+
+class TestDownloadResponseDto(unittest.TestCase):
+ """DownloadResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DownloadResponseDto:
+ """Test DownloadResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DownloadResponseDto`
+ """
+ model = DownloadResponseDto()
+ if include_optional:
+ return DownloadResponseDto(
+ archives = [
+ generated.immich.openapi_client.models.download_archive_info.DownloadArchiveInfo(
+ asset_ids = [
+ ''
+ ],
+ size = 56, )
+ ],
+ total_size = 56
+ )
+ else:
+ return DownloadResponseDto(
+ archives = [
+ generated.immich.openapi_client.models.download_archive_info.DownloadArchiveInfo(
+ asset_ids = [
+ ''
+ ],
+ size = 56, )
+ ],
+ total_size = 56,
+ )
+ """
+
+ def testDownloadResponseDto(self):
+ """Test DownloadResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_download_update.py b/generated/immich/openapi_client/test/test_download_update.py
new file mode 100644
index 0000000..ffe5f5b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_download_update.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.download_update import DownloadUpdate
+
+class TestDownloadUpdate(unittest.TestCase):
+ """DownloadUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DownloadUpdate:
+ """Test DownloadUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DownloadUpdate`
+ """
+ model = DownloadUpdate()
+ if include_optional:
+ return DownloadUpdate(
+ archive_size = 1,
+ include_embedded_videos = True
+ )
+ else:
+ return DownloadUpdate(
+ )
+ """
+
+ def testDownloadUpdate(self):
+ """Test DownloadUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_duplicate_detection_config.py b/generated/immich/openapi_client/test/test_duplicate_detection_config.py
new file mode 100644
index 0000000..a5ec700
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_duplicate_detection_config.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.duplicate_detection_config import DuplicateDetectionConfig
+
+class TestDuplicateDetectionConfig(unittest.TestCase):
+ """DuplicateDetectionConfig unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DuplicateDetectionConfig:
+ """Test DuplicateDetectionConfig
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DuplicateDetectionConfig`
+ """
+ model = DuplicateDetectionConfig()
+ if include_optional:
+ return DuplicateDetectionConfig(
+ enabled = True,
+ max_distance = 0.001
+ )
+ else:
+ return DuplicateDetectionConfig(
+ enabled = True,
+ max_distance = 0.001,
+ )
+ """
+
+ def testDuplicateDetectionConfig(self):
+ """Test DuplicateDetectionConfig"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_duplicate_response_dto.py b/generated/immich/openapi_client/test/test_duplicate_response_dto.py
new file mode 100644
index 0000000..682f708
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_duplicate_response_dto.py
@@ -0,0 +1,254 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.duplicate_response_dto import DuplicateResponseDto
+
+class TestDuplicateResponseDto(unittest.TestCase):
+ """DuplicateResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> DuplicateResponseDto:
+ """Test DuplicateResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `DuplicateResponseDto`
+ """
+ model = DuplicateResponseDto()
+ if include_optional:
+ return DuplicateResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ duplicate_id = ''
+ )
+ else:
+ return DuplicateResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ duplicate_id = '',
+ )
+ """
+
+ def testDuplicateResponseDto(self):
+ """Test DuplicateResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_duplicates_api.py b/generated/immich/openapi_client/test/test_duplicates_api.py
new file mode 100644
index 0000000..88e99e7
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_duplicates_api.py
@@ -0,0 +1,37 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.duplicates_api import DuplicatesApi
+
+
+class TestDuplicatesApi(unittest.TestCase):
+ """DuplicatesApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = DuplicatesApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_asset_duplicates(self) -> None:
+ """Test case for get_asset_duplicates
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_email_notifications_response.py b/generated/immich/openapi_client/test/test_email_notifications_response.py
new file mode 100644
index 0000000..c26492f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_email_notifications_response.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.email_notifications_response import EmailNotificationsResponse
+
+class TestEmailNotificationsResponse(unittest.TestCase):
+ """EmailNotificationsResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> EmailNotificationsResponse:
+ """Test EmailNotificationsResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `EmailNotificationsResponse`
+ """
+ model = EmailNotificationsResponse()
+ if include_optional:
+ return EmailNotificationsResponse(
+ album_invite = True,
+ album_update = True,
+ enabled = True
+ )
+ else:
+ return EmailNotificationsResponse(
+ album_invite = True,
+ album_update = True,
+ enabled = True,
+ )
+ """
+
+ def testEmailNotificationsResponse(self):
+ """Test EmailNotificationsResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_email_notifications_update.py b/generated/immich/openapi_client/test/test_email_notifications_update.py
new file mode 100644
index 0000000..f65f647
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_email_notifications_update.py
@@ -0,0 +1,53 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.email_notifications_update import EmailNotificationsUpdate
+
+class TestEmailNotificationsUpdate(unittest.TestCase):
+ """EmailNotificationsUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> EmailNotificationsUpdate:
+ """Test EmailNotificationsUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `EmailNotificationsUpdate`
+ """
+ model = EmailNotificationsUpdate()
+ if include_optional:
+ return EmailNotificationsUpdate(
+ album_invite = True,
+ album_update = True,
+ enabled = True
+ )
+ else:
+ return EmailNotificationsUpdate(
+ )
+ """
+
+ def testEmailNotificationsUpdate(self):
+ """Test EmailNotificationsUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_exif_response_dto.py b/generated/immich/openapi_client/test/test_exif_response_dto.py
new file mode 100644
index 0000000..e364e45
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_exif_response_dto.py
@@ -0,0 +1,72 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.exif_response_dto import ExifResponseDto
+
+class TestExifResponseDto(unittest.TestCase):
+ """ExifResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ExifResponseDto:
+ """Test ExifResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ExifResponseDto`
+ """
+ model = ExifResponseDto()
+ if include_optional:
+ return ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = ''
+ )
+ else:
+ return ExifResponseDto(
+ )
+ """
+
+ def testExifResponseDto(self):
+ """Test ExifResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_face_dto.py b/generated/immich/openapi_client/test/test_face_dto.py
new file mode 100644
index 0000000..2dcb9e4
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_face_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.face_dto import FaceDto
+
+class TestFaceDto(unittest.TestCase):
+ """FaceDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FaceDto:
+ """Test FaceDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FaceDto`
+ """
+ model = FaceDto()
+ if include_optional:
+ return FaceDto(
+ id = ''
+ )
+ else:
+ return FaceDto(
+ id = '',
+ )
+ """
+
+ def testFaceDto(self):
+ """Test FaceDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_faces_api.py b/generated/immich/openapi_client/test/test_faces_api.py
new file mode 100644
index 0000000..4e82649
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_faces_api.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.faces_api import FacesApi
+
+
+class TestFacesApi(unittest.TestCase):
+ """FacesApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = FacesApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_face(self) -> None:
+ """Test case for create_face
+
+ """
+ pass
+
+ def test_delete_face(self) -> None:
+ """Test case for delete_face
+
+ """
+ pass
+
+ def test_get_faces(self) -> None:
+ """Test case for get_faces
+
+ """
+ pass
+
+ def test_reassign_faces_by_id(self) -> None:
+ """Test case for reassign_faces_by_id
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_facial_recognition_config.py b/generated/immich/openapi_client/test/test_facial_recognition_config.py
new file mode 100644
index 0000000..0699ead
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_facial_recognition_config.py
@@ -0,0 +1,60 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.facial_recognition_config import FacialRecognitionConfig
+
+class TestFacialRecognitionConfig(unittest.TestCase):
+ """FacialRecognitionConfig unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FacialRecognitionConfig:
+ """Test FacialRecognitionConfig
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FacialRecognitionConfig`
+ """
+ model = FacialRecognitionConfig()
+ if include_optional:
+ return FacialRecognitionConfig(
+ enabled = True,
+ max_distance = 0.1,
+ min_faces = 1,
+ min_score = 0.1,
+ model_name = ''
+ )
+ else:
+ return FacialRecognitionConfig(
+ enabled = True,
+ max_distance = 0.1,
+ min_faces = 1,
+ min_score = 0.1,
+ model_name = '',
+ )
+ """
+
+ def testFacialRecognitionConfig(self):
+ """Test FacialRecognitionConfig"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_file_checksum_dto.py b/generated/immich/openapi_client/test/test_file_checksum_dto.py
new file mode 100644
index 0000000..5989360
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_file_checksum_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.file_checksum_dto import FileChecksumDto
+
+class TestFileChecksumDto(unittest.TestCase):
+ """FileChecksumDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FileChecksumDto:
+ """Test FileChecksumDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FileChecksumDto`
+ """
+ model = FileChecksumDto()
+ if include_optional:
+ return FileChecksumDto(
+ filenames = [
+ ''
+ ]
+ )
+ else:
+ return FileChecksumDto(
+ filenames = [
+ ''
+ ],
+ )
+ """
+
+ def testFileChecksumDto(self):
+ """Test FileChecksumDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_file_checksum_response_dto.py b/generated/immich/openapi_client/test/test_file_checksum_response_dto.py
new file mode 100644
index 0000000..fe6d80e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_file_checksum_response_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.file_checksum_response_dto import FileChecksumResponseDto
+
+class TestFileChecksumResponseDto(unittest.TestCase):
+ """FileChecksumResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FileChecksumResponseDto:
+ """Test FileChecksumResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FileChecksumResponseDto`
+ """
+ model = FileChecksumResponseDto()
+ if include_optional:
+ return FileChecksumResponseDto(
+ checksum = '',
+ filename = ''
+ )
+ else:
+ return FileChecksumResponseDto(
+ checksum = '',
+ filename = '',
+ )
+ """
+
+ def testFileChecksumResponseDto(self):
+ """Test FileChecksumResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_file_report_dto.py b/generated/immich/openapi_client/test/test_file_report_dto.py
new file mode 100644
index 0000000..c996f39
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_file_report_dto.py
@@ -0,0 +1,72 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.file_report_dto import FileReportDto
+
+class TestFileReportDto(unittest.TestCase):
+ """FileReportDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FileReportDto:
+ """Test FileReportDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FileReportDto`
+ """
+ model = FileReportDto()
+ if include_optional:
+ return FileReportDto(
+ extras = [
+ ''
+ ],
+ orphans = [
+ generated.immich.openapi_client.models.file_report_item_dto.FileReportItemDto(
+ checksum = '',
+ entity_id = '',
+ entity_type = null,
+ path_type = null,
+ path_value = '', )
+ ]
+ )
+ else:
+ return FileReportDto(
+ extras = [
+ ''
+ ],
+ orphans = [
+ generated.immich.openapi_client.models.file_report_item_dto.FileReportItemDto(
+ checksum = '',
+ entity_id = '',
+ entity_type = null,
+ path_type = null,
+ path_value = '', )
+ ],
+ )
+ """
+
+ def testFileReportDto(self):
+ """Test FileReportDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_file_report_fix_dto.py b/generated/immich/openapi_client/test/test_file_report_fix_dto.py
new file mode 100644
index 0000000..dada985
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_file_report_fix_dto.py
@@ -0,0 +1,66 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.file_report_fix_dto import FileReportFixDto
+
+class TestFileReportFixDto(unittest.TestCase):
+ """FileReportFixDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FileReportFixDto:
+ """Test FileReportFixDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FileReportFixDto`
+ """
+ model = FileReportFixDto()
+ if include_optional:
+ return FileReportFixDto(
+ items = [
+ generated.immich.openapi_client.models.file_report_item_dto.FileReportItemDto(
+ checksum = '',
+ entity_id = '',
+ entity_type = null,
+ path_type = null,
+ path_value = '', )
+ ]
+ )
+ else:
+ return FileReportFixDto(
+ items = [
+ generated.immich.openapi_client.models.file_report_item_dto.FileReportItemDto(
+ checksum = '',
+ entity_id = '',
+ entity_type = null,
+ path_type = null,
+ path_value = '', )
+ ],
+ )
+ """
+
+ def testFileReportFixDto(self):
+ """Test FileReportFixDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_file_report_item_dto.py b/generated/immich/openapi_client/test/test_file_report_item_dto.py
new file mode 100644
index 0000000..86ed0ea
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_file_report_item_dto.py
@@ -0,0 +1,59 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.file_report_item_dto import FileReportItemDto
+
+class TestFileReportItemDto(unittest.TestCase):
+ """FileReportItemDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FileReportItemDto:
+ """Test FileReportItemDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FileReportItemDto`
+ """
+ model = FileReportItemDto()
+ if include_optional:
+ return FileReportItemDto(
+ checksum = '',
+ entity_id = '',
+ entity_type = 'asset',
+ path_type = 'original',
+ path_value = ''
+ )
+ else:
+ return FileReportItemDto(
+ entity_id = '',
+ entity_type = 'asset',
+ path_type = 'original',
+ path_value = '',
+ )
+ """
+
+ def testFileReportItemDto(self):
+ """Test FileReportItemDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_file_reports_api.py b/generated/immich/openapi_client/test/test_file_reports_api.py
new file mode 100644
index 0000000..76103cf
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_file_reports_api.py
@@ -0,0 +1,49 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.file_reports_api import FileReportsApi
+
+
+class TestFileReportsApi(unittest.TestCase):
+ """FileReportsApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = FileReportsApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_fix_audit_files(self) -> None:
+ """Test case for fix_audit_files
+
+ """
+ pass
+
+ def test_get_audit_files(self) -> None:
+ """Test case for get_audit_files
+
+ """
+ pass
+
+ def test_get_file_checksums(self) -> None:
+ """Test case for get_file_checksums
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_folders_response.py b/generated/immich/openapi_client/test/test_folders_response.py
new file mode 100644
index 0000000..d6b97e1
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_folders_response.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.folders_response import FoldersResponse
+
+class TestFoldersResponse(unittest.TestCase):
+ """FoldersResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FoldersResponse:
+ """Test FoldersResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FoldersResponse`
+ """
+ model = FoldersResponse()
+ if include_optional:
+ return FoldersResponse(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return FoldersResponse(
+ enabled = True,
+ sidebar_web = True,
+ )
+ """
+
+ def testFoldersResponse(self):
+ """Test FoldersResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_folders_update.py b/generated/immich/openapi_client/test/test_folders_update.py
new file mode 100644
index 0000000..8c13e86
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_folders_update.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.folders_update import FoldersUpdate
+
+class TestFoldersUpdate(unittest.TestCase):
+ """FoldersUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> FoldersUpdate:
+ """Test FoldersUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `FoldersUpdate`
+ """
+ model = FoldersUpdate()
+ if include_optional:
+ return FoldersUpdate(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return FoldersUpdate(
+ )
+ """
+
+ def testFoldersUpdate(self):
+ """Test FoldersUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_image_format.py b/generated/immich/openapi_client/test/test_image_format.py
new file mode 100644
index 0000000..203cc73
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_image_format.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.image_format import ImageFormat
+
+class TestImageFormat(unittest.TestCase):
+ """ImageFormat unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testImageFormat(self):
+ """Test ImageFormat"""
+ # inst = ImageFormat()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_job_command.py b/generated/immich/openapi_client/test/test_job_command.py
new file mode 100644
index 0000000..c2e1794
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_job_command.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.job_command import JobCommand
+
+class TestJobCommand(unittest.TestCase):
+ """JobCommand unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testJobCommand(self):
+ """Test JobCommand"""
+ # inst = JobCommand()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_job_command_dto.py b/generated/immich/openapi_client/test/test_job_command_dto.py
new file mode 100644
index 0000000..88a2ad5
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_job_command_dto.py
@@ -0,0 +1,53 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.job_command_dto import JobCommandDto
+
+class TestJobCommandDto(unittest.TestCase):
+ """JobCommandDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> JobCommandDto:
+ """Test JobCommandDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `JobCommandDto`
+ """
+ model = JobCommandDto()
+ if include_optional:
+ return JobCommandDto(
+ command = 'start',
+ force = True
+ )
+ else:
+ return JobCommandDto(
+ command = 'start',
+ )
+ """
+
+ def testJobCommandDto(self):
+ """Test JobCommandDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_job_counts_dto.py b/generated/immich/openapi_client/test/test_job_counts_dto.py
new file mode 100644
index 0000000..ef4fdc4
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_job_counts_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.job_counts_dto import JobCountsDto
+
+class TestJobCountsDto(unittest.TestCase):
+ """JobCountsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> JobCountsDto:
+ """Test JobCountsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `JobCountsDto`
+ """
+ model = JobCountsDto()
+ if include_optional:
+ return JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56
+ )
+ else:
+ return JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56,
+ )
+ """
+
+ def testJobCountsDto(self):
+ """Test JobCountsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_job_create_dto.py b/generated/immich/openapi_client/test/test_job_create_dto.py
new file mode 100644
index 0000000..f292da1
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_job_create_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.job_create_dto import JobCreateDto
+
+class TestJobCreateDto(unittest.TestCase):
+ """JobCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> JobCreateDto:
+ """Test JobCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `JobCreateDto`
+ """
+ model = JobCreateDto()
+ if include_optional:
+ return JobCreateDto(
+ name = 'person-cleanup'
+ )
+ else:
+ return JobCreateDto(
+ name = 'person-cleanup',
+ )
+ """
+
+ def testJobCreateDto(self):
+ """Test JobCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_job_name.py b/generated/immich/openapi_client/test/test_job_name.py
new file mode 100644
index 0000000..486edcd
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_job_name.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.job_name import JobName
+
+class TestJobName(unittest.TestCase):
+ """JobName unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testJobName(self):
+ """Test JobName"""
+ # inst = JobName()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_job_settings_dto.py b/generated/immich/openapi_client/test/test_job_settings_dto.py
new file mode 100644
index 0000000..9f83337
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_job_settings_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.job_settings_dto import JobSettingsDto
+
+class TestJobSettingsDto(unittest.TestCase):
+ """JobSettingsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> JobSettingsDto:
+ """Test JobSettingsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `JobSettingsDto`
+ """
+ model = JobSettingsDto()
+ if include_optional:
+ return JobSettingsDto(
+ concurrency = 1
+ )
+ else:
+ return JobSettingsDto(
+ concurrency = 1,
+ )
+ """
+
+ def testJobSettingsDto(self):
+ """Test JobSettingsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_job_status_dto.py b/generated/immich/openapi_client/test/test_job_status_dto.py
new file mode 100644
index 0000000..3922774
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_job_status_dto.py
@@ -0,0 +1,70 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.job_status_dto import JobStatusDto
+
+class TestJobStatusDto(unittest.TestCase):
+ """JobStatusDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> JobStatusDto:
+ """Test JobStatusDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `JobStatusDto`
+ """
+ model = JobStatusDto()
+ if include_optional:
+ return JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, )
+ )
+ else:
+ return JobStatusDto(
+ job_counts = generated.immich.openapi_client.models.job_counts_dto.JobCountsDto(
+ active = 56,
+ completed = 56,
+ delayed = 56,
+ failed = 56,
+ paused = 56,
+ waiting = 56, ),
+ queue_status = generated.immich.openapi_client.models.queue_status_dto.QueueStatusDto(
+ is_active = True,
+ is_paused = True, ),
+ )
+ """
+
+ def testJobStatusDto(self):
+ """Test JobStatusDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_jobs_api.py b/generated/immich/openapi_client/test/test_jobs_api.py
new file mode 100644
index 0000000..5a91dba
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_jobs_api.py
@@ -0,0 +1,49 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.jobs_api import JobsApi
+
+
+class TestJobsApi(unittest.TestCase):
+ """JobsApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = JobsApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_job(self) -> None:
+ """Test case for create_job
+
+ """
+ pass
+
+ def test_get_all_jobs_status(self) -> None:
+ """Test case for get_all_jobs_status
+
+ """
+ pass
+
+ def test_send_job_command(self) -> None:
+ """Test case for send_job_command
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_libraries_api.py b/generated/immich/openapi_client/test/test_libraries_api.py
new file mode 100644
index 0000000..bb35f23
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_libraries_api.py
@@ -0,0 +1,79 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.libraries_api import LibrariesApi
+
+
+class TestLibrariesApi(unittest.TestCase):
+ """LibrariesApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = LibrariesApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_library(self) -> None:
+ """Test case for create_library
+
+ """
+ pass
+
+ def test_delete_library(self) -> None:
+ """Test case for delete_library
+
+ """
+ pass
+
+ def test_get_all_libraries(self) -> None:
+ """Test case for get_all_libraries
+
+ """
+ pass
+
+ def test_get_library(self) -> None:
+ """Test case for get_library
+
+ """
+ pass
+
+ def test_get_library_statistics(self) -> None:
+ """Test case for get_library_statistics
+
+ """
+ pass
+
+ def test_scan_library(self) -> None:
+ """Test case for scan_library
+
+ """
+ pass
+
+ def test_update_library(self) -> None:
+ """Test case for update_library
+
+ """
+ pass
+
+ def test_validate(self) -> None:
+ """Test case for validate
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_library_response_dto.py b/generated/immich/openapi_client/test/test_library_response_dto.py
new file mode 100644
index 0000000..1cddf99
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_library_response_dto.py
@@ -0,0 +1,76 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.library_response_dto import LibraryResponseDto
+
+class TestLibraryResponseDto(unittest.TestCase):
+ """LibraryResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LibraryResponseDto:
+ """Test LibraryResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LibraryResponseDto`
+ """
+ model = LibraryResponseDto()
+ if include_optional:
+ return LibraryResponseDto(
+ asset_count = 56,
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ exclusion_patterns = [
+ ''
+ ],
+ id = '',
+ import_paths = [
+ ''
+ ],
+ name = '',
+ owner_id = '',
+ refreshed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return LibraryResponseDto(
+ asset_count = 56,
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ exclusion_patterns = [
+ ''
+ ],
+ id = '',
+ import_paths = [
+ ''
+ ],
+ name = '',
+ owner_id = '',
+ refreshed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ )
+ """
+
+ def testLibraryResponseDto(self):
+ """Test LibraryResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_library_stats_response_dto.py b/generated/immich/openapi_client/test/test_library_stats_response_dto.py
new file mode 100644
index 0000000..7acc811
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_library_stats_response_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.library_stats_response_dto import LibraryStatsResponseDto
+
+class TestLibraryStatsResponseDto(unittest.TestCase):
+ """LibraryStatsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LibraryStatsResponseDto:
+ """Test LibraryStatsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LibraryStatsResponseDto`
+ """
+ model = LibraryStatsResponseDto()
+ if include_optional:
+ return LibraryStatsResponseDto(
+ photos = 56,
+ total = 56,
+ usage = 56,
+ videos = 56
+ )
+ else:
+ return LibraryStatsResponseDto(
+ photos = 56,
+ total = 56,
+ usage = 56,
+ videos = 56,
+ )
+ """
+
+ def testLibraryStatsResponseDto(self):
+ """Test LibraryStatsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_license_key_dto.py b/generated/immich/openapi_client/test/test_license_key_dto.py
new file mode 100644
index 0000000..ae5fa73
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_license_key_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.license_key_dto import LicenseKeyDto
+
+class TestLicenseKeyDto(unittest.TestCase):
+ """LicenseKeyDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LicenseKeyDto:
+ """Test LicenseKeyDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LicenseKeyDto`
+ """
+ model = LicenseKeyDto()
+ if include_optional:
+ return LicenseKeyDto(
+ activation_key = '',
+ license_key = 'IMCL-Cu2L-C4aW-wWL9-Y864-DZta-GRyy-GFZK-kkp4'
+ )
+ else:
+ return LicenseKeyDto(
+ activation_key = '',
+ license_key = 'IMCL-Cu2L-C4aW-wWL9-Y864-DZta-GRyy-GFZK-kkp4',
+ )
+ """
+
+ def testLicenseKeyDto(self):
+ """Test LicenseKeyDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_license_response_dto.py b/generated/immich/openapi_client/test/test_license_response_dto.py
new file mode 100644
index 0000000..a8c4fd1
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_license_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.license_response_dto import LicenseResponseDto
+
+class TestLicenseResponseDto(unittest.TestCase):
+ """LicenseResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LicenseResponseDto:
+ """Test LicenseResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LicenseResponseDto`
+ """
+ model = LicenseResponseDto()
+ if include_optional:
+ return LicenseResponseDto(
+ activated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ activation_key = '',
+ license_key = 'IMCL-Cu2L-C4aW-wWL9-Y864-DZta-GRyy-GFZK-kkp4'
+ )
+ else:
+ return LicenseResponseDto(
+ activated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ activation_key = '',
+ license_key = 'IMCL-Cu2L-C4aW-wWL9-Y864-DZta-GRyy-GFZK-kkp4',
+ )
+ """
+
+ def testLicenseResponseDto(self):
+ """Test LicenseResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_log_level.py b/generated/immich/openapi_client/test/test_log_level.py
new file mode 100644
index 0000000..bf572db
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_log_level.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.log_level import LogLevel
+
+class TestLogLevel(unittest.TestCase):
+ """LogLevel unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testLogLevel(self):
+ """Test LogLevel"""
+ # inst = LogLevel()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_login_credential_dto.py b/generated/immich/openapi_client/test/test_login_credential_dto.py
new file mode 100644
index 0000000..1aad8a8
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_login_credential_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.login_credential_dto import LoginCredentialDto
+
+class TestLoginCredentialDto(unittest.TestCase):
+ """LoginCredentialDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LoginCredentialDto:
+ """Test LoginCredentialDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LoginCredentialDto`
+ """
+ model = LoginCredentialDto()
+ if include_optional:
+ return LoginCredentialDto(
+ email = 'testuser@email.com',
+ password = 'password'
+ )
+ else:
+ return LoginCredentialDto(
+ email = 'testuser@email.com',
+ password = 'password',
+ )
+ """
+
+ def testLoginCredentialDto(self):
+ """Test LoginCredentialDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_login_response_dto.py b/generated/immich/openapi_client/test/test_login_response_dto.py
new file mode 100644
index 0000000..d5b7b31
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_login_response_dto.py
@@ -0,0 +1,64 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.login_response_dto import LoginResponseDto
+
+class TestLoginResponseDto(unittest.TestCase):
+ """LoginResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LoginResponseDto:
+ """Test LoginResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LoginResponseDto`
+ """
+ model = LoginResponseDto()
+ if include_optional:
+ return LoginResponseDto(
+ access_token = '',
+ is_admin = True,
+ name = '',
+ profile_image_path = '',
+ should_change_password = True,
+ user_email = '',
+ user_id = ''
+ )
+ else:
+ return LoginResponseDto(
+ access_token = '',
+ is_admin = True,
+ name = '',
+ profile_image_path = '',
+ should_change_password = True,
+ user_email = '',
+ user_id = '',
+ )
+ """
+
+ def testLoginResponseDto(self):
+ """Test LoginResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_logout_response_dto.py b/generated/immich/openapi_client/test/test_logout_response_dto.py
new file mode 100644
index 0000000..50c981b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_logout_response_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.logout_response_dto import LogoutResponseDto
+
+class TestLogoutResponseDto(unittest.TestCase):
+ """LogoutResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> LogoutResponseDto:
+ """Test LogoutResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `LogoutResponseDto`
+ """
+ model = LogoutResponseDto()
+ if include_optional:
+ return LogoutResponseDto(
+ redirect_uri = '',
+ successful = True
+ )
+ else:
+ return LogoutResponseDto(
+ redirect_uri = '',
+ successful = True,
+ )
+ """
+
+ def testLogoutResponseDto(self):
+ """Test LogoutResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_manual_job_name.py b/generated/immich/openapi_client/test/test_manual_job_name.py
new file mode 100644
index 0000000..9282525
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_manual_job_name.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.manual_job_name import ManualJobName
+
+class TestManualJobName(unittest.TestCase):
+ """ManualJobName unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testManualJobName(self):
+ """Test ManualJobName"""
+ # inst = ManualJobName()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_map_api.py b/generated/immich/openapi_client/test/test_map_api.py
new file mode 100644
index 0000000..f6c082c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_map_api.py
@@ -0,0 +1,43 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.map_api import MapApi
+
+
+class TestMapApi(unittest.TestCase):
+ """MapApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = MapApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_map_markers(self) -> None:
+ """Test case for get_map_markers
+
+ """
+ pass
+
+ def test_reverse_geocode(self) -> None:
+ """Test case for reverse_geocode
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_map_marker_response_dto.py b/generated/immich/openapi_client/test/test_map_marker_response_dto.py
new file mode 100644
index 0000000..a60576a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_map_marker_response_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.map_marker_response_dto import MapMarkerResponseDto
+
+class TestMapMarkerResponseDto(unittest.TestCase):
+ """MapMarkerResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MapMarkerResponseDto:
+ """Test MapMarkerResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MapMarkerResponseDto`
+ """
+ model = MapMarkerResponseDto()
+ if include_optional:
+ return MapMarkerResponseDto(
+ city = '',
+ country = '',
+ id = '',
+ lat = 1.337,
+ lon = 1.337,
+ state = ''
+ )
+ else:
+ return MapMarkerResponseDto(
+ city = '',
+ country = '',
+ id = '',
+ lat = 1.337,
+ lon = 1.337,
+ state = '',
+ )
+ """
+
+ def testMapMarkerResponseDto(self):
+ """Test MapMarkerResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_map_reverse_geocode_response_dto.py b/generated/immich/openapi_client/test/test_map_reverse_geocode_response_dto.py
new file mode 100644
index 0000000..307f027
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_map_reverse_geocode_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.map_reverse_geocode_response_dto import MapReverseGeocodeResponseDto
+
+class TestMapReverseGeocodeResponseDto(unittest.TestCase):
+ """MapReverseGeocodeResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MapReverseGeocodeResponseDto:
+ """Test MapReverseGeocodeResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MapReverseGeocodeResponseDto`
+ """
+ model = MapReverseGeocodeResponseDto()
+ if include_optional:
+ return MapReverseGeocodeResponseDto(
+ city = '',
+ country = '',
+ state = ''
+ )
+ else:
+ return MapReverseGeocodeResponseDto(
+ city = '',
+ country = '',
+ state = '',
+ )
+ """
+
+ def testMapReverseGeocodeResponseDto(self):
+ """Test MapReverseGeocodeResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memories_api.py b/generated/immich/openapi_client/test/test_memories_api.py
new file mode 100644
index 0000000..eeb12a5
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memories_api.py
@@ -0,0 +1,73 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.memories_api import MemoriesApi
+
+
+class TestMemoriesApi(unittest.TestCase):
+ """MemoriesApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = MemoriesApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_add_memory_assets(self) -> None:
+ """Test case for add_memory_assets
+
+ """
+ pass
+
+ def test_create_memory(self) -> None:
+ """Test case for create_memory
+
+ """
+ pass
+
+ def test_delete_memory(self) -> None:
+ """Test case for delete_memory
+
+ """
+ pass
+
+ def test_get_memory(self) -> None:
+ """Test case for get_memory
+
+ """
+ pass
+
+ def test_remove_memory_assets(self) -> None:
+ """Test case for remove_memory_assets
+
+ """
+ pass
+
+ def test_search_memories(self) -> None:
+ """Test case for search_memories
+
+ """
+ pass
+
+ def test_update_memory(self) -> None:
+ """Test case for update_memory
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memories_response.py b/generated/immich/openapi_client/test/test_memories_response.py
new file mode 100644
index 0000000..0be8948
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memories_response.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.memories_response import MemoriesResponse
+
+class TestMemoriesResponse(unittest.TestCase):
+ """MemoriesResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MemoriesResponse:
+ """Test MemoriesResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MemoriesResponse`
+ """
+ model = MemoriesResponse()
+ if include_optional:
+ return MemoriesResponse(
+ enabled = True
+ )
+ else:
+ return MemoriesResponse(
+ enabled = True,
+ )
+ """
+
+ def testMemoriesResponse(self):
+ """Test MemoriesResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memories_update.py b/generated/immich/openapi_client/test/test_memories_update.py
new file mode 100644
index 0000000..ce1079f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memories_update.py
@@ -0,0 +1,51 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.memories_update import MemoriesUpdate
+
+class TestMemoriesUpdate(unittest.TestCase):
+ """MemoriesUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MemoriesUpdate:
+ """Test MemoriesUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MemoriesUpdate`
+ """
+ model = MemoriesUpdate()
+ if include_optional:
+ return MemoriesUpdate(
+ enabled = True
+ )
+ else:
+ return MemoriesUpdate(
+ )
+ """
+
+ def testMemoriesUpdate(self):
+ """Test MemoriesUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memory_create_dto.py b/generated/immich/openapi_client/test/test_memory_create_dto.py
new file mode 100644
index 0000000..a167b8d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memory_create_dto.py
@@ -0,0 +1,63 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.memory_create_dto import MemoryCreateDto
+
+class TestMemoryCreateDto(unittest.TestCase):
+ """MemoryCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MemoryCreateDto:
+ """Test MemoryCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MemoryCreateDto`
+ """
+ model = MemoryCreateDto()
+ if include_optional:
+ return MemoryCreateDto(
+ asset_ids = [
+ ''
+ ],
+ data = generated.immich.openapi_client.models.on_this_day_dto.OnThisDayDto(
+ year = 1, ),
+ is_saved = True,
+ memory_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ seen_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ type = 'on_this_day'
+ )
+ else:
+ return MemoryCreateDto(
+ data = generated.immich.openapi_client.models.on_this_day_dto.OnThisDayDto(
+ year = 1, ),
+ memory_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ type = 'on_this_day',
+ )
+ """
+
+ def testMemoryCreateDto(self):
+ """Test MemoryCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memory_lane_response_dto.py b/generated/immich/openapi_client/test/test_memory_lane_response_dto.py
new file mode 100644
index 0000000..b9535ae
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memory_lane_response_dto.py
@@ -0,0 +1,254 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.memory_lane_response_dto import MemoryLaneResponseDto
+
+class TestMemoryLaneResponseDto(unittest.TestCase):
+ """MemoryLaneResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MemoryLaneResponseDto:
+ """Test MemoryLaneResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MemoryLaneResponseDto`
+ """
+ model = MemoryLaneResponseDto()
+ if include_optional:
+ return MemoryLaneResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ years_ago = 56
+ )
+ else:
+ return MemoryLaneResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ years_ago = 56,
+ )
+ """
+
+ def testMemoryLaneResponseDto(self):
+ """Test MemoryLaneResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memory_response_dto.py b/generated/immich/openapi_client/test/test_memory_response_dto.py
new file mode 100644
index 0000000..7e1be70
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memory_response_dto.py
@@ -0,0 +1,274 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.memory_response_dto import MemoryResponseDto
+
+class TestMemoryResponseDto(unittest.TestCase):
+ """MemoryResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MemoryResponseDto:
+ """Test MemoryResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MemoryResponseDto`
+ """
+ model = MemoryResponseDto()
+ if include_optional:
+ return MemoryResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ data = generated.immich.openapi_client.models.on_this_day_dto.OnThisDayDto(
+ year = 1, ),
+ deleted_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ hide_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ is_saved = True,
+ memory_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ owner_id = '',
+ seen_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ show_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ type = 'on_this_day',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return MemoryResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ data = generated.immich.openapi_client.models.on_this_day_dto.OnThisDayDto(
+ year = 1, ),
+ id = '',
+ is_saved = True,
+ memory_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ owner_id = '',
+ type = 'on_this_day',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ )
+ """
+
+ def testMemoryResponseDto(self):
+ """Test MemoryResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memory_type.py b/generated/immich/openapi_client/test/test_memory_type.py
new file mode 100644
index 0000000..fddc5d0
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memory_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.memory_type import MemoryType
+
+class TestMemoryType(unittest.TestCase):
+ """MemoryType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testMemoryType(self):
+ """Test MemoryType"""
+ # inst = MemoryType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_memory_update_dto.py b/generated/immich/openapi_client/test/test_memory_update_dto.py
new file mode 100644
index 0000000..d97019e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_memory_update_dto.py
@@ -0,0 +1,53 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.memory_update_dto import MemoryUpdateDto
+
+class TestMemoryUpdateDto(unittest.TestCase):
+ """MemoryUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MemoryUpdateDto:
+ """Test MemoryUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MemoryUpdateDto`
+ """
+ model = MemoryUpdateDto()
+ if include_optional:
+ return MemoryUpdateDto(
+ is_saved = True,
+ memory_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ seen_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return MemoryUpdateDto(
+ )
+ """
+
+ def testMemoryUpdateDto(self):
+ """Test MemoryUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_merge_person_dto.py b/generated/immich/openapi_client/test/test_merge_person_dto.py
new file mode 100644
index 0000000..ea6f9b7
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_merge_person_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.merge_person_dto import MergePersonDto
+
+class TestMergePersonDto(unittest.TestCase):
+ """MergePersonDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MergePersonDto:
+ """Test MergePersonDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MergePersonDto`
+ """
+ model = MergePersonDto()
+ if include_optional:
+ return MergePersonDto(
+ ids = [
+ ''
+ ]
+ )
+ else:
+ return MergePersonDto(
+ ids = [
+ ''
+ ],
+ )
+ """
+
+ def testMergePersonDto(self):
+ """Test MergePersonDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_metadata_search_dto.py b/generated/immich/openapi_client/test/test_metadata_search_dto.py
new file mode 100644
index 0000000..681652d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_metadata_search_dto.py
@@ -0,0 +1,98 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.metadata_search_dto import MetadataSearchDto
+
+class TestMetadataSearchDto(unittest.TestCase):
+ """MetadataSearchDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> MetadataSearchDto:
+ """Test MetadataSearchDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `MetadataSearchDto`
+ """
+ model = MetadataSearchDto()
+ if include_optional:
+ return MetadataSearchDto(
+ checksum = '',
+ city = '',
+ country = '',
+ created_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ created_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ device_asset_id = '',
+ device_id = '',
+ encoded_video_path = '',
+ id = '',
+ is_archived = True,
+ is_encoded = True,
+ is_favorite = True,
+ is_motion = True,
+ is_not_in_album = True,
+ is_offline = True,
+ is_visible = True,
+ lens_model = '',
+ library_id = '',
+ make = '',
+ model = '',
+ order = 'asc',
+ original_file_name = '',
+ original_path = '',
+ page = 1,
+ person_ids = [
+ ''
+ ],
+ preview_path = '',
+ rating = -1,
+ size = 1,
+ state = '',
+ tag_ids = [
+ ''
+ ],
+ taken_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ taken_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ thumbnail_path = '',
+ trashed_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ trashed_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ type = 'IMAGE',
+ updated_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ with_archived = True,
+ with_deleted = True,
+ with_exif = True,
+ with_people = True,
+ with_stacked = True
+ )
+ else:
+ return MetadataSearchDto(
+ )
+ """
+
+ def testMetadataSearchDto(self):
+ """Test MetadataSearchDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_notifications_api.py b/generated/immich/openapi_client/test/test_notifications_api.py
new file mode 100644
index 0000000..bd1b295
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_notifications_api.py
@@ -0,0 +1,43 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.notifications_api import NotificationsApi
+
+
+class TestNotificationsApi(unittest.TestCase):
+ """NotificationsApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = NotificationsApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_notification_template(self) -> None:
+ """Test case for get_notification_template
+
+ """
+ pass
+
+ def test_send_test_email(self) -> None:
+ """Test case for send_test_email
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_o_auth_api.py b/generated/immich/openapi_client/test/test_o_auth_api.py
new file mode 100644
index 0000000..357d887
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_o_auth_api.py
@@ -0,0 +1,61 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.o_auth_api import OAuthApi
+
+
+class TestOAuthApi(unittest.TestCase):
+ """OAuthApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = OAuthApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_finish_o_auth(self) -> None:
+ """Test case for finish_o_auth
+
+ """
+ pass
+
+ def test_link_o_auth_account(self) -> None:
+ """Test case for link_o_auth_account
+
+ """
+ pass
+
+ def test_redirect_o_auth_to_mobile(self) -> None:
+ """Test case for redirect_o_auth_to_mobile
+
+ """
+ pass
+
+ def test_start_o_auth(self) -> None:
+ """Test case for start_o_auth
+
+ """
+ pass
+
+ def test_unlink_o_auth_account(self) -> None:
+ """Test case for unlink_o_auth_account
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_o_auth_authorize_response_dto.py b/generated/immich/openapi_client/test/test_o_auth_authorize_response_dto.py
new file mode 100644
index 0000000..fb92b0a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_o_auth_authorize_response_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.o_auth_authorize_response_dto import OAuthAuthorizeResponseDto
+
+class TestOAuthAuthorizeResponseDto(unittest.TestCase):
+ """OAuthAuthorizeResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OAuthAuthorizeResponseDto:
+ """Test OAuthAuthorizeResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `OAuthAuthorizeResponseDto`
+ """
+ model = OAuthAuthorizeResponseDto()
+ if include_optional:
+ return OAuthAuthorizeResponseDto(
+ url = ''
+ )
+ else:
+ return OAuthAuthorizeResponseDto(
+ url = '',
+ )
+ """
+
+ def testOAuthAuthorizeResponseDto(self):
+ """Test OAuthAuthorizeResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_o_auth_callback_dto.py b/generated/immich/openapi_client/test/test_o_auth_callback_dto.py
new file mode 100644
index 0000000..647c153
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_o_auth_callback_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.o_auth_callback_dto import OAuthCallbackDto
+
+class TestOAuthCallbackDto(unittest.TestCase):
+ """OAuthCallbackDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OAuthCallbackDto:
+ """Test OAuthCallbackDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `OAuthCallbackDto`
+ """
+ model = OAuthCallbackDto()
+ if include_optional:
+ return OAuthCallbackDto(
+ url = ''
+ )
+ else:
+ return OAuthCallbackDto(
+ url = '',
+ )
+ """
+
+ def testOAuthCallbackDto(self):
+ """Test OAuthCallbackDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_o_auth_config_dto.py b/generated/immich/openapi_client/test/test_o_auth_config_dto.py
new file mode 100644
index 0000000..3f34946
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_o_auth_config_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.o_auth_config_dto import OAuthConfigDto
+
+class TestOAuthConfigDto(unittest.TestCase):
+ """OAuthConfigDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OAuthConfigDto:
+ """Test OAuthConfigDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `OAuthConfigDto`
+ """
+ model = OAuthConfigDto()
+ if include_optional:
+ return OAuthConfigDto(
+ redirect_uri = ''
+ )
+ else:
+ return OAuthConfigDto(
+ redirect_uri = '',
+ )
+ """
+
+ def testOAuthConfigDto(self):
+ """Test OAuthConfigDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_on_this_day_dto.py b/generated/immich/openapi_client/test/test_on_this_day_dto.py
new file mode 100644
index 0000000..a8c5819
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_on_this_day_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.on_this_day_dto import OnThisDayDto
+
+class TestOnThisDayDto(unittest.TestCase):
+ """OnThisDayDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> OnThisDayDto:
+ """Test OnThisDayDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `OnThisDayDto`
+ """
+ model = OnThisDayDto()
+ if include_optional:
+ return OnThisDayDto(
+ year = 1
+ )
+ else:
+ return OnThisDayDto(
+ year = 1,
+ )
+ """
+
+ def testOnThisDayDto(self):
+ """Test OnThisDayDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_partner_direction.py b/generated/immich/openapi_client/test/test_partner_direction.py
new file mode 100644
index 0000000..f8cfad8
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_partner_direction.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.partner_direction import PartnerDirection
+
+class TestPartnerDirection(unittest.TestCase):
+ """PartnerDirection unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPartnerDirection(self):
+ """Test PartnerDirection"""
+ # inst = PartnerDirection()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_partner_response_dto.py b/generated/immich/openapi_client/test/test_partner_response_dto.py
new file mode 100644
index 0000000..1e8cd90
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_partner_response_dto.py
@@ -0,0 +1,63 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.partner_response_dto import PartnerResponseDto
+
+class TestPartnerResponseDto(unittest.TestCase):
+ """PartnerResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PartnerResponseDto:
+ """Test PartnerResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PartnerResponseDto`
+ """
+ model = PartnerResponseDto()
+ if include_optional:
+ return PartnerResponseDto(
+ avatar_color = 'primary',
+ email = '',
+ id = '',
+ in_timeline = True,
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = ''
+ )
+ else:
+ return PartnerResponseDto(
+ avatar_color = 'primary',
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '',
+ )
+ """
+
+ def testPartnerResponseDto(self):
+ """Test PartnerResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_partners_api.py b/generated/immich/openapi_client/test/test_partners_api.py
new file mode 100644
index 0000000..a9ae5bb
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_partners_api.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.partners_api import PartnersApi
+
+
+class TestPartnersApi(unittest.TestCase):
+ """PartnersApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = PartnersApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_partner(self) -> None:
+ """Test case for create_partner
+
+ """
+ pass
+
+ def test_get_partners(self) -> None:
+ """Test case for get_partners
+
+ """
+ pass
+
+ def test_remove_partner(self) -> None:
+ """Test case for remove_partner
+
+ """
+ pass
+
+ def test_update_partner(self) -> None:
+ """Test case for update_partner
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_path_entity_type.py b/generated/immich/openapi_client/test/test_path_entity_type.py
new file mode 100644
index 0000000..ff55755
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_path_entity_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.path_entity_type import PathEntityType
+
+class TestPathEntityType(unittest.TestCase):
+ """PathEntityType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPathEntityType(self):
+ """Test PathEntityType"""
+ # inst = PathEntityType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_path_type.py b/generated/immich/openapi_client/test/test_path_type.py
new file mode 100644
index 0000000..83386cc
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_path_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.path_type import PathType
+
+class TestPathType(unittest.TestCase):
+ """PathType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPathType(self):
+ """Test PathType"""
+ # inst = PathType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_people_api.py b/generated/immich/openapi_client/test/test_people_api.py
new file mode 100644
index 0000000..646c229
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_people_api.py
@@ -0,0 +1,85 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.people_api import PeopleApi
+
+
+class TestPeopleApi(unittest.TestCase):
+ """PeopleApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = PeopleApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_person(self) -> None:
+ """Test case for create_person
+
+ """
+ pass
+
+ def test_get_all_people(self) -> None:
+ """Test case for get_all_people
+
+ """
+ pass
+
+ def test_get_person(self) -> None:
+ """Test case for get_person
+
+ """
+ pass
+
+ def test_get_person_statistics(self) -> None:
+ """Test case for get_person_statistics
+
+ """
+ pass
+
+ def test_get_person_thumbnail(self) -> None:
+ """Test case for get_person_thumbnail
+
+ """
+ pass
+
+ def test_merge_person(self) -> None:
+ """Test case for merge_person
+
+ """
+ pass
+
+ def test_reassign_faces(self) -> None:
+ """Test case for reassign_faces
+
+ """
+ pass
+
+ def test_update_people(self) -> None:
+ """Test case for update_people
+
+ """
+ pass
+
+ def test_update_person(self) -> None:
+ """Test case for update_person
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_people_response.py b/generated/immich/openapi_client/test/test_people_response.py
new file mode 100644
index 0000000..81f0aa6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_people_response.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.people_response import PeopleResponse
+
+class TestPeopleResponse(unittest.TestCase):
+ """PeopleResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PeopleResponse:
+ """Test PeopleResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PeopleResponse`
+ """
+ model = PeopleResponse()
+ if include_optional:
+ return PeopleResponse(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return PeopleResponse(
+ enabled = True,
+ sidebar_web = True,
+ )
+ """
+
+ def testPeopleResponse(self):
+ """Test PeopleResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_people_response_dto.py b/generated/immich/openapi_client/test/test_people_response_dto.py
new file mode 100644
index 0000000..09821d7
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_people_response_dto.py
@@ -0,0 +1,77 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.people_response_dto import PeopleResponseDto
+
+class TestPeopleResponseDto(unittest.TestCase):
+ """PeopleResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PeopleResponseDto:
+ """Test PeopleResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PeopleResponseDto`
+ """
+ model = PeopleResponseDto()
+ if include_optional:
+ return PeopleResponseDto(
+ has_next_page = True,
+ hidden = 56,
+ people = [
+ generated.immich.openapi_client.models.person_response_dto.PersonResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ total = 56
+ )
+ else:
+ return PeopleResponseDto(
+ hidden = 56,
+ people = [
+ generated.immich.openapi_client.models.person_response_dto.PersonResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ total = 56,
+ )
+ """
+
+ def testPeopleResponseDto(self):
+ """Test PeopleResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_people_update.py b/generated/immich/openapi_client/test/test_people_update.py
new file mode 100644
index 0000000..25845ab
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_people_update.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.people_update import PeopleUpdate
+
+class TestPeopleUpdate(unittest.TestCase):
+ """PeopleUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PeopleUpdate:
+ """Test PeopleUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PeopleUpdate`
+ """
+ model = PeopleUpdate()
+ if include_optional:
+ return PeopleUpdate(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return PeopleUpdate(
+ )
+ """
+
+ def testPeopleUpdate(self):
+ """Test PeopleUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_people_update_dto.py b/generated/immich/openapi_client/test/test_people_update_dto.py
new file mode 100644
index 0000000..6d6c1f8
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_people_update_dto.py
@@ -0,0 +1,70 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.people_update_dto import PeopleUpdateDto
+
+class TestPeopleUpdateDto(unittest.TestCase):
+ """PeopleUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PeopleUpdateDto:
+ """Test PeopleUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PeopleUpdateDto`
+ """
+ model = PeopleUpdateDto()
+ if include_optional:
+ return PeopleUpdateDto(
+ people = [
+ generated.immich.openapi_client.models.people_update_item.PeopleUpdateItem(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ feature_face_asset_id = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '', )
+ ]
+ )
+ else:
+ return PeopleUpdateDto(
+ people = [
+ generated.immich.openapi_client.models.people_update_item.PeopleUpdateItem(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ feature_face_asset_id = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '', )
+ ],
+ )
+ """
+
+ def testPeopleUpdateDto(self):
+ """Test PeopleUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_people_update_item.py b/generated/immich/openapi_client/test/test_people_update_item.py
new file mode 100644
index 0000000..2b256cb
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_people_update_item.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.people_update_item import PeopleUpdateItem
+
+class TestPeopleUpdateItem(unittest.TestCase):
+ """PeopleUpdateItem unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PeopleUpdateItem:
+ """Test PeopleUpdateItem
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PeopleUpdateItem`
+ """
+ model = PeopleUpdateItem()
+ if include_optional:
+ return PeopleUpdateItem(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ feature_face_asset_id = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = ''
+ )
+ else:
+ return PeopleUpdateItem(
+ id = '',
+ )
+ """
+
+ def testPeopleUpdateItem(self):
+ """Test PeopleUpdateItem"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_permission.py b/generated/immich/openapi_client/test/test_permission.py
new file mode 100644
index 0000000..51adee9
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_permission.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.permission import Permission
+
+class TestPermission(unittest.TestCase):
+ """Permission unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testPermission(self):
+ """Test Permission"""
+ # inst = Permission()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_person_create_dto.py b/generated/immich/openapi_client/test/test_person_create_dto.py
new file mode 100644
index 0000000..c67c89f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_person_create_dto.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.person_create_dto import PersonCreateDto
+
+class TestPersonCreateDto(unittest.TestCase):
+ """PersonCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PersonCreateDto:
+ """Test PersonCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PersonCreateDto`
+ """
+ model = PersonCreateDto()
+ if include_optional:
+ return PersonCreateDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = ''
+ )
+ else:
+ return PersonCreateDto(
+ )
+ """
+
+ def testPersonCreateDto(self):
+ """Test PersonCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_person_response_dto.py b/generated/immich/openapi_client/test/test_person_response_dto.py
new file mode 100644
index 0000000..17cea5c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_person_response_dto.py
@@ -0,0 +1,63 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.person_response_dto import PersonResponseDto
+
+class TestPersonResponseDto(unittest.TestCase):
+ """PersonResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PersonResponseDto:
+ """Test PersonResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PersonResponseDto`
+ """
+ model = PersonResponseDto()
+ if include_optional:
+ return PersonResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return PersonResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ id = '',
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ )
+ """
+
+ def testPersonResponseDto(self):
+ """Test PersonResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_person_statistics_response_dto.py b/generated/immich/openapi_client/test/test_person_statistics_response_dto.py
new file mode 100644
index 0000000..7b20b6f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_person_statistics_response_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.person_statistics_response_dto import PersonStatisticsResponseDto
+
+class TestPersonStatisticsResponseDto(unittest.TestCase):
+ """PersonStatisticsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PersonStatisticsResponseDto:
+ """Test PersonStatisticsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PersonStatisticsResponseDto`
+ """
+ model = PersonStatisticsResponseDto()
+ if include_optional:
+ return PersonStatisticsResponseDto(
+ assets = 56
+ )
+ else:
+ return PersonStatisticsResponseDto(
+ assets = 56,
+ )
+ """
+
+ def testPersonStatisticsResponseDto(self):
+ """Test PersonStatisticsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_person_update_dto.py b/generated/immich/openapi_client/test/test_person_update_dto.py
new file mode 100644
index 0000000..d55b09a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_person_update_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.person_update_dto import PersonUpdateDto
+
+class TestPersonUpdateDto(unittest.TestCase):
+ """PersonUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PersonUpdateDto:
+ """Test PersonUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PersonUpdateDto`
+ """
+ model = PersonUpdateDto()
+ if include_optional:
+ return PersonUpdateDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ feature_face_asset_id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = ''
+ )
+ else:
+ return PersonUpdateDto(
+ )
+ """
+
+ def testPersonUpdateDto(self):
+ """Test PersonUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_person_with_faces_response_dto.py b/generated/immich/openapi_client/test/test_person_with_faces_response_dto.py
new file mode 100644
index 0000000..e4e32c3
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_person_with_faces_response_dto.py
@@ -0,0 +1,85 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.person_with_faces_response_dto import PersonWithFacesResponseDto
+
+class TestPersonWithFacesResponseDto(unittest.TestCase):
+ """PersonWithFacesResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PersonWithFacesResponseDto:
+ """Test PersonWithFacesResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PersonWithFacesResponseDto`
+ """
+ model = PersonWithFacesResponseDto()
+ if include_optional:
+ return PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ )
+ """
+
+ def testPersonWithFacesResponseDto(self):
+ """Test PersonWithFacesResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_places_response_dto.py b/generated/immich/openapi_client/test/test_places_response_dto.py
new file mode 100644
index 0000000..776c577
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_places_response_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.places_response_dto import PlacesResponseDto
+
+class TestPlacesResponseDto(unittest.TestCase):
+ """PlacesResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PlacesResponseDto:
+ """Test PlacesResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PlacesResponseDto`
+ """
+ model = PlacesResponseDto()
+ if include_optional:
+ return PlacesResponseDto(
+ admin1name = '',
+ admin2name = '',
+ latitude = 1.337,
+ longitude = 1.337,
+ name = ''
+ )
+ else:
+ return PlacesResponseDto(
+ latitude = 1.337,
+ longitude = 1.337,
+ name = '',
+ )
+ """
+
+ def testPlacesResponseDto(self):
+ """Test PlacesResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_purchase_response.py b/generated/immich/openapi_client/test/test_purchase_response.py
new file mode 100644
index 0000000..e3ea316
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_purchase_response.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.purchase_response import PurchaseResponse
+
+class TestPurchaseResponse(unittest.TestCase):
+ """PurchaseResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PurchaseResponse:
+ """Test PurchaseResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PurchaseResponse`
+ """
+ model = PurchaseResponse()
+ if include_optional:
+ return PurchaseResponse(
+ hide_buy_button_until = '',
+ show_support_badge = True
+ )
+ else:
+ return PurchaseResponse(
+ hide_buy_button_until = '',
+ show_support_badge = True,
+ )
+ """
+
+ def testPurchaseResponse(self):
+ """Test PurchaseResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_purchase_update.py b/generated/immich/openapi_client/test/test_purchase_update.py
new file mode 100644
index 0000000..7135c5b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_purchase_update.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.purchase_update import PurchaseUpdate
+
+class TestPurchaseUpdate(unittest.TestCase):
+ """PurchaseUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> PurchaseUpdate:
+ """Test PurchaseUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `PurchaseUpdate`
+ """
+ model = PurchaseUpdate()
+ if include_optional:
+ return PurchaseUpdate(
+ hide_buy_button_until = '',
+ show_support_badge = True
+ )
+ else:
+ return PurchaseUpdate(
+ )
+ """
+
+ def testPurchaseUpdate(self):
+ """Test PurchaseUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_queue_status_dto.py b/generated/immich/openapi_client/test/test_queue_status_dto.py
new file mode 100644
index 0000000..327b30f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_queue_status_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.queue_status_dto import QueueStatusDto
+
+class TestQueueStatusDto(unittest.TestCase):
+ """QueueStatusDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> QueueStatusDto:
+ """Test QueueStatusDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `QueueStatusDto`
+ """
+ model = QueueStatusDto()
+ if include_optional:
+ return QueueStatusDto(
+ is_active = True,
+ is_paused = True
+ )
+ else:
+ return QueueStatusDto(
+ is_active = True,
+ is_paused = True,
+ )
+ """
+
+ def testQueueStatusDto(self):
+ """Test QueueStatusDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_random_search_dto.py b/generated/immich/openapi_client/test/test_random_search_dto.py
new file mode 100644
index 0000000..8657b20
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_random_search_dto.py
@@ -0,0 +1,87 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.random_search_dto import RandomSearchDto
+
+class TestRandomSearchDto(unittest.TestCase):
+ """RandomSearchDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RandomSearchDto:
+ """Test RandomSearchDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `RandomSearchDto`
+ """
+ model = RandomSearchDto()
+ if include_optional:
+ return RandomSearchDto(
+ city = '',
+ country = '',
+ created_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ created_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ device_id = '',
+ is_archived = True,
+ is_encoded = True,
+ is_favorite = True,
+ is_motion = True,
+ is_not_in_album = True,
+ is_offline = True,
+ is_visible = True,
+ lens_model = '',
+ library_id = '',
+ make = '',
+ model = '',
+ person_ids = [
+ ''
+ ],
+ rating = -1,
+ size = 1,
+ state = '',
+ tag_ids = [
+ ''
+ ],
+ taken_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ taken_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ trashed_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ trashed_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ type = 'IMAGE',
+ updated_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ with_archived = True,
+ with_deleted = True,
+ with_exif = True,
+ with_people = True,
+ with_stacked = True
+ )
+ else:
+ return RandomSearchDto(
+ )
+ """
+
+ def testRandomSearchDto(self):
+ """Test RandomSearchDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_ratings_response.py b/generated/immich/openapi_client/test/test_ratings_response.py
new file mode 100644
index 0000000..5518aab
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_ratings_response.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.ratings_response import RatingsResponse
+
+class TestRatingsResponse(unittest.TestCase):
+ """RatingsResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RatingsResponse:
+ """Test RatingsResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `RatingsResponse`
+ """
+ model = RatingsResponse()
+ if include_optional:
+ return RatingsResponse(
+ enabled = True
+ )
+ else:
+ return RatingsResponse(
+ enabled = True,
+ )
+ """
+
+ def testRatingsResponse(self):
+ """Test RatingsResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_ratings_update.py b/generated/immich/openapi_client/test/test_ratings_update.py
new file mode 100644
index 0000000..3b30d01
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_ratings_update.py
@@ -0,0 +1,51 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.ratings_update import RatingsUpdate
+
+class TestRatingsUpdate(unittest.TestCase):
+ """RatingsUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> RatingsUpdate:
+ """Test RatingsUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `RatingsUpdate`
+ """
+ model = RatingsUpdate()
+ if include_optional:
+ return RatingsUpdate(
+ enabled = True
+ )
+ else:
+ return RatingsUpdate(
+ )
+ """
+
+ def testRatingsUpdate(self):
+ """Test RatingsUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_reaction_level.py b/generated/immich/openapi_client/test/test_reaction_level.py
new file mode 100644
index 0000000..6d9f9b9
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_reaction_level.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.reaction_level import ReactionLevel
+
+class TestReactionLevel(unittest.TestCase):
+ """ReactionLevel unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testReactionLevel(self):
+ """Test ReactionLevel"""
+ # inst = ReactionLevel()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_reaction_type.py b/generated/immich/openapi_client/test/test_reaction_type.py
new file mode 100644
index 0000000..665e01e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_reaction_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.reaction_type import ReactionType
+
+class TestReactionType(unittest.TestCase):
+ """ReactionType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testReactionType(self):
+ """Test ReactionType"""
+ # inst = ReactionType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_reverse_geocoding_state_response_dto.py b/generated/immich/openapi_client/test/test_reverse_geocoding_state_response_dto.py
new file mode 100644
index 0000000..a38fba0
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_reverse_geocoding_state_response_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.reverse_geocoding_state_response_dto import ReverseGeocodingStateResponseDto
+
+class TestReverseGeocodingStateResponseDto(unittest.TestCase):
+ """ReverseGeocodingStateResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ReverseGeocodingStateResponseDto:
+ """Test ReverseGeocodingStateResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ReverseGeocodingStateResponseDto`
+ """
+ model = ReverseGeocodingStateResponseDto()
+ if include_optional:
+ return ReverseGeocodingStateResponseDto(
+ last_import_file_name = '',
+ last_update = ''
+ )
+ else:
+ return ReverseGeocodingStateResponseDto(
+ last_import_file_name = '',
+ last_update = '',
+ )
+ """
+
+ def testReverseGeocodingStateResponseDto(self):
+ """Test ReverseGeocodingStateResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_album_response_dto.py b/generated/immich/openapi_client/test/test_search_album_response_dto.py
new file mode 100644
index 0000000..25d34f3
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_album_response_dto.py
@@ -0,0 +1,334 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_album_response_dto import SearchAlbumResponseDto
+
+class TestSearchAlbumResponseDto(unittest.TestCase):
+ """SearchAlbumResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SearchAlbumResponseDto:
+ """Test SearchAlbumResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SearchAlbumResponseDto`
+ """
+ model = SearchAlbumResponseDto()
+ if include_optional:
+ return SearchAlbumResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.album_response_dto.AlbumResponseDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_response_dto.AlbumUserResponseDto(
+ role = null,
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ), )
+ ],
+ asset_count = 56,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_shared_link = True,
+ id = '',
+ is_activity_enabled = True,
+ last_modified_asset_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ order = null,
+ owner = ,
+ owner_id = '',
+ shared = True,
+ start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ total = 56
+ )
+ else:
+ return SearchAlbumResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.album_response_dto.AlbumResponseDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_response_dto.AlbumUserResponseDto(
+ role = null,
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ), )
+ ],
+ asset_count = 56,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_shared_link = True,
+ id = '',
+ is_activity_enabled = True,
+ last_modified_asset_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ order = null,
+ owner = ,
+ owner_id = '',
+ shared = True,
+ start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ total = 56,
+ )
+ """
+
+ def testSearchAlbumResponseDto(self):
+ """Test SearchAlbumResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_api.py b/generated/immich/openapi_client/test/test_search_api.py
new file mode 100644
index 0000000..6112d3f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_api.py
@@ -0,0 +1,79 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.search_api import SearchApi
+
+
+class TestSearchApi(unittest.TestCase):
+ """SearchApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = SearchApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_assets_by_city(self) -> None:
+ """Test case for get_assets_by_city
+
+ """
+ pass
+
+ def test_get_explore_data(self) -> None:
+ """Test case for get_explore_data
+
+ """
+ pass
+
+ def test_get_search_suggestions(self) -> None:
+ """Test case for get_search_suggestions
+
+ """
+ pass
+
+ def test_search_assets(self) -> None:
+ """Test case for search_assets
+
+ """
+ pass
+
+ def test_search_person(self) -> None:
+ """Test case for search_person
+
+ """
+ pass
+
+ def test_search_places(self) -> None:
+ """Test case for search_places
+
+ """
+ pass
+
+ def test_search_random(self) -> None:
+ """Test case for search_random
+
+ """
+ pass
+
+ def test_search_smart(self) -> None:
+ """Test case for search_smart
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_asset_response_dto.py b/generated/immich/openapi_client/test/test_search_asset_response_dto.py
new file mode 100644
index 0000000..0a70878
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_asset_response_dto.py
@@ -0,0 +1,276 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_asset_response_dto import SearchAssetResponseDto
+
+class TestSearchAssetResponseDto(unittest.TestCase):
+ """SearchAssetResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SearchAssetResponseDto:
+ """Test SearchAssetResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SearchAssetResponseDto`
+ """
+ model = SearchAssetResponseDto()
+ if include_optional:
+ return SearchAssetResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ next_page = '',
+ total = 56
+ )
+ else:
+ return SearchAssetResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ next_page = '',
+ total = 56,
+ )
+ """
+
+ def testSearchAssetResponseDto(self):
+ """Test SearchAssetResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_explore_item.py b/generated/immich/openapi_client/test/test_search_explore_item.py
new file mode 100644
index 0000000..be178f1
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_explore_item.py
@@ -0,0 +1,250 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_explore_item import SearchExploreItem
+
+class TestSearchExploreItem(unittest.TestCase):
+ """SearchExploreItem unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SearchExploreItem:
+ """Test SearchExploreItem
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SearchExploreItem`
+ """
+ model = SearchExploreItem()
+ if include_optional:
+ return SearchExploreItem(
+ data = generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ value = ''
+ )
+ else:
+ return SearchExploreItem(
+ data = generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ value = '',
+ )
+ """
+
+ def testSearchExploreItem(self):
+ """Test SearchExploreItem"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_explore_response_dto.py b/generated/immich/openapi_client/test/test_search_explore_response_dto.py
new file mode 100644
index 0000000..69c514a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_explore_response_dto.py
@@ -0,0 +1,258 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_explore_response_dto import SearchExploreResponseDto
+
+class TestSearchExploreResponseDto(unittest.TestCase):
+ """SearchExploreResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SearchExploreResponseDto:
+ """Test SearchExploreResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SearchExploreResponseDto`
+ """
+ model = SearchExploreResponseDto()
+ if include_optional:
+ return SearchExploreResponseDto(
+ field_name = '',
+ items = [
+ generated.immich.openapi_client.models.search_explore_item.SearchExploreItem(
+ data = generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ value = '', )
+ ]
+ )
+ else:
+ return SearchExploreResponseDto(
+ field_name = '',
+ items = [
+ generated.immich.openapi_client.models.search_explore_item.SearchExploreItem(
+ data = generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ value = '', )
+ ],
+ )
+ """
+
+ def testSearchExploreResponseDto(self):
+ """Test SearchExploreResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_facet_count_response_dto.py b/generated/immich/openapi_client/test/test_search_facet_count_response_dto.py
new file mode 100644
index 0000000..39de121
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_facet_count_response_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_facet_count_response_dto import SearchFacetCountResponseDto
+
+class TestSearchFacetCountResponseDto(unittest.TestCase):
+ """SearchFacetCountResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SearchFacetCountResponseDto:
+ """Test SearchFacetCountResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SearchFacetCountResponseDto`
+ """
+ model = SearchFacetCountResponseDto()
+ if include_optional:
+ return SearchFacetCountResponseDto(
+ count = 56,
+ value = ''
+ )
+ else:
+ return SearchFacetCountResponseDto(
+ count = 56,
+ value = '',
+ )
+ """
+
+ def testSearchFacetCountResponseDto(self):
+ """Test SearchFacetCountResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_facet_response_dto.py b/generated/immich/openapi_client/test/test_search_facet_response_dto.py
new file mode 100644
index 0000000..6f2c29b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_facet_response_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_facet_response_dto import SearchFacetResponseDto
+
+class TestSearchFacetResponseDto(unittest.TestCase):
+ """SearchFacetResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SearchFacetResponseDto:
+ """Test SearchFacetResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SearchFacetResponseDto`
+ """
+ model = SearchFacetResponseDto()
+ if include_optional:
+ return SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = ''
+ )
+ else:
+ return SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '',
+ )
+ """
+
+ def testSearchFacetResponseDto(self):
+ """Test SearchFacetResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_response_dto.py b/generated/immich/openapi_client/test/test_search_response_dto.py
new file mode 100644
index 0000000..1c48ce2
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_response_dto.py
@@ -0,0 +1,564 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_response_dto import SearchResponseDto
+
+class TestSearchResponseDto(unittest.TestCase):
+ """SearchResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SearchResponseDto:
+ """Test SearchResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SearchResponseDto`
+ """
+ model = SearchResponseDto()
+ if include_optional:
+ return SearchResponseDto(
+ albums = generated.immich.openapi_client.models.search_album_response_dto.SearchAlbumResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.album_response_dto.AlbumResponseDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_response_dto.AlbumUserResponseDto(
+ role = null,
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ), )
+ ],
+ asset_count = 56,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_shared_link = True,
+ id = '',
+ is_activity_enabled = True,
+ last_modified_asset_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ order = null,
+ owner = ,
+ owner_id = '',
+ shared = True,
+ start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ total = 56, ),
+ assets = generated.immich.openapi_client.models.search_asset_response_dto.SearchAssetResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ next_page = '',
+ total = 56, )
+ )
+ else:
+ return SearchResponseDto(
+ albums = generated.immich.openapi_client.models.search_album_response_dto.SearchAlbumResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.album_response_dto.AlbumResponseDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_response_dto.AlbumUserResponseDto(
+ role = null,
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ), )
+ ],
+ asset_count = 56,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_shared_link = True,
+ id = '',
+ is_activity_enabled = True,
+ last_modified_asset_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ order = null,
+ owner = ,
+ owner_id = '',
+ shared = True,
+ start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ total = 56, ),
+ assets = generated.immich.openapi_client.models.search_asset_response_dto.SearchAssetResponseDto(
+ count = 56,
+ facets = [
+ generated.immich.openapi_client.models.search_facet_response_dto.SearchFacetResponseDto(
+ counts = [
+ generated.immich.openapi_client.models.search_facet_count_response_dto.SearchFacetCountResponseDto(
+ count = 56,
+ value = '', )
+ ],
+ field_name = '', )
+ ],
+ items = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ next_page = '',
+ total = 56, ),
+ )
+ """
+
+ def testSearchResponseDto(self):
+ """Test SearchResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_search_suggestion_type.py b/generated/immich/openapi_client/test/test_search_suggestion_type.py
new file mode 100644
index 0000000..49ae56b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_search_suggestion_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.search_suggestion_type import SearchSuggestionType
+
+class TestSearchSuggestionType(unittest.TestCase):
+ """SearchSuggestionType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testSearchSuggestionType(self):
+ """Test SearchSuggestionType"""
+ # inst = SearchSuggestionType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_about_response_dto.py b/generated/immich/openapi_client/test/test_server_about_response_dto.py
new file mode 100644
index 0000000..4d15ba5
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_about_response_dto.py
@@ -0,0 +1,74 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_about_response_dto import ServerAboutResponseDto
+
+class TestServerAboutResponseDto(unittest.TestCase):
+ """ServerAboutResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerAboutResponseDto:
+ """Test ServerAboutResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerAboutResponseDto`
+ """
+ model = ServerAboutResponseDto()
+ if include_optional:
+ return ServerAboutResponseDto(
+ build = '',
+ build_image = '',
+ build_image_url = '',
+ build_url = '',
+ exiftool = '',
+ ffmpeg = '',
+ imagemagick = '',
+ libvips = '',
+ licensed = True,
+ nodejs = '',
+ repository = '',
+ repository_url = '',
+ source_commit = '',
+ source_ref = '',
+ source_url = '',
+ third_party_bug_feature_url = '',
+ third_party_documentation_url = '',
+ third_party_source_url = '',
+ third_party_support_url = '',
+ version = '',
+ version_url = ''
+ )
+ else:
+ return ServerAboutResponseDto(
+ licensed = True,
+ version = '',
+ version_url = '',
+ )
+ """
+
+ def testServerAboutResponseDto(self):
+ """Test ServerAboutResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_api.py b/generated/immich/openapi_client/test/test_server_api.py
new file mode 100644
index 0000000..1b197ac
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_api.py
@@ -0,0 +1,109 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.server_api import ServerApi
+
+
+class TestServerApi(unittest.TestCase):
+ """ServerApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = ServerApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_delete_server_license(self) -> None:
+ """Test case for delete_server_license
+
+ """
+ pass
+
+ def test_get_about_info(self) -> None:
+ """Test case for get_about_info
+
+ """
+ pass
+
+ def test_get_server_config(self) -> None:
+ """Test case for get_server_config
+
+ """
+ pass
+
+ def test_get_server_features(self) -> None:
+ """Test case for get_server_features
+
+ """
+ pass
+
+ def test_get_server_license(self) -> None:
+ """Test case for get_server_license
+
+ """
+ pass
+
+ def test_get_server_statistics(self) -> None:
+ """Test case for get_server_statistics
+
+ """
+ pass
+
+ def test_get_server_version(self) -> None:
+ """Test case for get_server_version
+
+ """
+ pass
+
+ def test_get_storage(self) -> None:
+ """Test case for get_storage
+
+ """
+ pass
+
+ def test_get_supported_media_types(self) -> None:
+ """Test case for get_supported_media_types
+
+ """
+ pass
+
+ def test_get_theme(self) -> None:
+ """Test case for get_theme
+
+ """
+ pass
+
+ def test_get_version_history(self) -> None:
+ """Test case for get_version_history
+
+ """
+ pass
+
+ def test_ping_server(self) -> None:
+ """Test case for ping_server
+
+ """
+ pass
+
+ def test_set_server_license(self) -> None:
+ """Test case for set_server_license
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_config_dto.py b/generated/immich/openapi_client/test/test_server_config_dto.py
new file mode 100644
index 0000000..17879fb
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_config_dto.py
@@ -0,0 +1,70 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_config_dto import ServerConfigDto
+
+class TestServerConfigDto(unittest.TestCase):
+ """ServerConfigDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerConfigDto:
+ """Test ServerConfigDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerConfigDto`
+ """
+ model = ServerConfigDto()
+ if include_optional:
+ return ServerConfigDto(
+ external_domain = '',
+ is_initialized = True,
+ is_onboarded = True,
+ login_page_message = '',
+ map_dark_style_url = '',
+ map_light_style_url = '',
+ oauth_button_text = '',
+ public_users = True,
+ trash_days = 56,
+ user_delete_delay = 56
+ )
+ else:
+ return ServerConfigDto(
+ external_domain = '',
+ is_initialized = True,
+ is_onboarded = True,
+ login_page_message = '',
+ map_dark_style_url = '',
+ map_light_style_url = '',
+ oauth_button_text = '',
+ public_users = True,
+ trash_days = 56,
+ user_delete_delay = 56,
+ )
+ """
+
+ def testServerConfigDto(self):
+ """Test ServerConfigDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_features_dto.py b/generated/immich/openapi_client/test/test_server_features_dto.py
new file mode 100644
index 0000000..a25ddae
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_features_dto.py
@@ -0,0 +1,78 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_features_dto import ServerFeaturesDto
+
+class TestServerFeaturesDto(unittest.TestCase):
+ """ServerFeaturesDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerFeaturesDto:
+ """Test ServerFeaturesDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerFeaturesDto`
+ """
+ model = ServerFeaturesDto()
+ if include_optional:
+ return ServerFeaturesDto(
+ config_file = True,
+ duplicate_detection = True,
+ email = True,
+ facial_recognition = True,
+ import_faces = True,
+ map = True,
+ oauth = True,
+ oauth_auto_launch = True,
+ password_login = True,
+ reverse_geocoding = True,
+ search = True,
+ sidecar = True,
+ smart_search = True,
+ trash = True
+ )
+ else:
+ return ServerFeaturesDto(
+ config_file = True,
+ duplicate_detection = True,
+ email = True,
+ facial_recognition = True,
+ import_faces = True,
+ map = True,
+ oauth = True,
+ oauth_auto_launch = True,
+ password_login = True,
+ reverse_geocoding = True,
+ search = True,
+ sidecar = True,
+ smart_search = True,
+ trash = True,
+ )
+ """
+
+ def testServerFeaturesDto(self):
+ """Test ServerFeaturesDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_media_types_response_dto.py b/generated/immich/openapi_client/test/test_server_media_types_response_dto.py
new file mode 100644
index 0000000..c31764c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_media_types_response_dto.py
@@ -0,0 +1,68 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_media_types_response_dto import ServerMediaTypesResponseDto
+
+class TestServerMediaTypesResponseDto(unittest.TestCase):
+ """ServerMediaTypesResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerMediaTypesResponseDto:
+ """Test ServerMediaTypesResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerMediaTypesResponseDto`
+ """
+ model = ServerMediaTypesResponseDto()
+ if include_optional:
+ return ServerMediaTypesResponseDto(
+ image = [
+ ''
+ ],
+ sidecar = [
+ ''
+ ],
+ video = [
+ ''
+ ]
+ )
+ else:
+ return ServerMediaTypesResponseDto(
+ image = [
+ ''
+ ],
+ sidecar = [
+ ''
+ ],
+ video = [
+ ''
+ ],
+ )
+ """
+
+ def testServerMediaTypesResponseDto(self):
+ """Test ServerMediaTypesResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_ping_response.py b/generated/immich/openapi_client/test/test_server_ping_response.py
new file mode 100644
index 0000000..d5c5a47
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_ping_response.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_ping_response import ServerPingResponse
+
+class TestServerPingResponse(unittest.TestCase):
+ """ServerPingResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerPingResponse:
+ """Test ServerPingResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerPingResponse`
+ """
+ model = ServerPingResponse()
+ if include_optional:
+ return ServerPingResponse(
+ res = 'pong'
+ )
+ else:
+ return ServerPingResponse(
+ res = 'pong',
+ )
+ """
+
+ def testServerPingResponse(self):
+ """Test ServerPingResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_stats_response_dto.py b/generated/immich/openapi_client/test/test_server_stats_response_dto.py
new file mode 100644
index 0000000..3fabb42
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_stats_response_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_stats_response_dto import ServerStatsResponseDto
+
+class TestServerStatsResponseDto(unittest.TestCase):
+ """ServerStatsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerStatsResponseDto:
+ """Test ServerStatsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerStatsResponseDto`
+ """
+ model = ServerStatsResponseDto()
+ if include_optional:
+ return ServerStatsResponseDto(
+ photos = 56,
+ usage = 56,
+ usage_by_user = [{"photos":1,"videos":1,"diskUsageRaw":2,"usagePhotos":1,"usageVideos":1}],
+ usage_photos = 56,
+ usage_videos = 56,
+ videos = 56
+ )
+ else:
+ return ServerStatsResponseDto(
+ photos = 56,
+ usage = 56,
+ usage_by_user = [{"photos":1,"videos":1,"diskUsageRaw":2,"usagePhotos":1,"usageVideos":1}],
+ usage_photos = 56,
+ usage_videos = 56,
+ videos = 56,
+ )
+ """
+
+ def testServerStatsResponseDto(self):
+ """Test ServerStatsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_storage_response_dto.py b/generated/immich/openapi_client/test/test_server_storage_response_dto.py
new file mode 100644
index 0000000..f783b5b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_storage_response_dto.py
@@ -0,0 +1,64 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_storage_response_dto import ServerStorageResponseDto
+
+class TestServerStorageResponseDto(unittest.TestCase):
+ """ServerStorageResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerStorageResponseDto:
+ """Test ServerStorageResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerStorageResponseDto`
+ """
+ model = ServerStorageResponseDto()
+ if include_optional:
+ return ServerStorageResponseDto(
+ disk_available = '',
+ disk_available_raw = 56,
+ disk_size = '',
+ disk_size_raw = 56,
+ disk_usage_percentage = 1.337,
+ disk_use = '',
+ disk_use_raw = 56
+ )
+ else:
+ return ServerStorageResponseDto(
+ disk_available = '',
+ disk_available_raw = 56,
+ disk_size = '',
+ disk_size_raw = 56,
+ disk_usage_percentage = 1.337,
+ disk_use = '',
+ disk_use_raw = 56,
+ )
+ """
+
+ def testServerStorageResponseDto(self):
+ """Test ServerStorageResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_theme_dto.py b/generated/immich/openapi_client/test/test_server_theme_dto.py
new file mode 100644
index 0000000..a388d79
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_theme_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_theme_dto import ServerThemeDto
+
+class TestServerThemeDto(unittest.TestCase):
+ """ServerThemeDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerThemeDto:
+ """Test ServerThemeDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerThemeDto`
+ """
+ model = ServerThemeDto()
+ if include_optional:
+ return ServerThemeDto(
+ custom_css = ''
+ )
+ else:
+ return ServerThemeDto(
+ custom_css = '',
+ )
+ """
+
+ def testServerThemeDto(self):
+ """Test ServerThemeDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_version_history_response_dto.py b/generated/immich/openapi_client/test/test_server_version_history_response_dto.py
new file mode 100644
index 0000000..e09f7ca
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_version_history_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_version_history_response_dto import ServerVersionHistoryResponseDto
+
+class TestServerVersionHistoryResponseDto(unittest.TestCase):
+ """ServerVersionHistoryResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerVersionHistoryResponseDto:
+ """Test ServerVersionHistoryResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerVersionHistoryResponseDto`
+ """
+ model = ServerVersionHistoryResponseDto()
+ if include_optional:
+ return ServerVersionHistoryResponseDto(
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ version = ''
+ )
+ else:
+ return ServerVersionHistoryResponseDto(
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ version = '',
+ )
+ """
+
+ def testServerVersionHistoryResponseDto(self):
+ """Test ServerVersionHistoryResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_server_version_response_dto.py b/generated/immich/openapi_client/test/test_server_version_response_dto.py
new file mode 100644
index 0000000..b8dd41f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_server_version_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.server_version_response_dto import ServerVersionResponseDto
+
+class TestServerVersionResponseDto(unittest.TestCase):
+ """ServerVersionResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ServerVersionResponseDto:
+ """Test ServerVersionResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ServerVersionResponseDto`
+ """
+ model = ServerVersionResponseDto()
+ if include_optional:
+ return ServerVersionResponseDto(
+ major = 56,
+ minor = 56,
+ patch = 56
+ )
+ else:
+ return ServerVersionResponseDto(
+ major = 56,
+ minor = 56,
+ patch = 56,
+ )
+ """
+
+ def testServerVersionResponseDto(self):
+ """Test ServerVersionResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_session_response_dto.py b/generated/immich/openapi_client/test/test_session_response_dto.py
new file mode 100644
index 0000000..314d797
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_session_response_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.session_response_dto import SessionResponseDto
+
+class TestSessionResponseDto(unittest.TestCase):
+ """SessionResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SessionResponseDto:
+ """Test SessionResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SessionResponseDto`
+ """
+ model = SessionResponseDto()
+ if include_optional:
+ return SessionResponseDto(
+ created_at = '',
+ current = True,
+ device_os = '',
+ device_type = '',
+ id = '',
+ updated_at = ''
+ )
+ else:
+ return SessionResponseDto(
+ created_at = '',
+ current = True,
+ device_os = '',
+ device_type = '',
+ id = '',
+ updated_at = '',
+ )
+ """
+
+ def testSessionResponseDto(self):
+ """Test SessionResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sessions_api.py b/generated/immich/openapi_client/test/test_sessions_api.py
new file mode 100644
index 0000000..0779e55
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sessions_api.py
@@ -0,0 +1,49 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.sessions_api import SessionsApi
+
+
+class TestSessionsApi(unittest.TestCase):
+ """SessionsApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = SessionsApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_delete_all_sessions(self) -> None:
+ """Test case for delete_all_sessions
+
+ """
+ pass
+
+ def test_delete_session(self) -> None:
+ """Test case for delete_session
+
+ """
+ pass
+
+ def test_get_sessions(self) -> None:
+ """Test case for get_sessions
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_shared_link_create_dto.py b/generated/immich/openapi_client/test/test_shared_link_create_dto.py
new file mode 100644
index 0000000..a605869
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_shared_link_create_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.shared_link_create_dto import SharedLinkCreateDto
+
+class TestSharedLinkCreateDto(unittest.TestCase):
+ """SharedLinkCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SharedLinkCreateDto:
+ """Test SharedLinkCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SharedLinkCreateDto`
+ """
+ model = SharedLinkCreateDto()
+ if include_optional:
+ return SharedLinkCreateDto(
+ album_id = '',
+ allow_download = True,
+ allow_upload = True,
+ asset_ids = [
+ ''
+ ],
+ description = '',
+ expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ password = '',
+ show_metadata = True,
+ type = 'ALBUM'
+ )
+ else:
+ return SharedLinkCreateDto(
+ type = 'ALBUM',
+ )
+ """
+
+ def testSharedLinkCreateDto(self):
+ """Test SharedLinkCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_shared_link_edit_dto.py b/generated/immich/openapi_client/test/test_shared_link_edit_dto.py
new file mode 100644
index 0000000..9d1ef9b
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_shared_link_edit_dto.py
@@ -0,0 +1,57 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.shared_link_edit_dto import SharedLinkEditDto
+
+class TestSharedLinkEditDto(unittest.TestCase):
+ """SharedLinkEditDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SharedLinkEditDto:
+ """Test SharedLinkEditDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SharedLinkEditDto`
+ """
+ model = SharedLinkEditDto()
+ if include_optional:
+ return SharedLinkEditDto(
+ allow_download = True,
+ allow_upload = True,
+ change_expiry_time = True,
+ description = '',
+ expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ password = '',
+ show_metadata = True
+ )
+ else:
+ return SharedLinkEditDto(
+ )
+ """
+
+ def testSharedLinkEditDto(self):
+ """Test SharedLinkEditDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_shared_link_response_dto.py b/generated/immich/openapi_client/test/test_shared_link_response_dto.py
new file mode 100644
index 0000000..0a16f7e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_shared_link_response_dto.py
@@ -0,0 +1,404 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.shared_link_response_dto import SharedLinkResponseDto
+
+class TestSharedLinkResponseDto(unittest.TestCase):
+ """SharedLinkResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SharedLinkResponseDto:
+ """Test SharedLinkResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SharedLinkResponseDto`
+ """
+ model = SharedLinkResponseDto()
+ if include_optional:
+ return SharedLinkResponseDto(
+ album = generated.immich.openapi_client.models.album_response_dto.AlbumResponseDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ album_users = [
+ generated.immich.openapi_client.models.album_user_response_dto.AlbumUserResponseDto(
+ role = null,
+ user = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ), )
+ ],
+ asset_count = 56,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_shared_link = True,
+ id = '',
+ is_activity_enabled = True,
+ last_modified_asset_timestamp = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ order = null,
+ owner = ,
+ owner_id = '',
+ shared = True,
+ start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ),
+ allow_download = True,
+ allow_upload = True,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ key = '',
+ password = '',
+ show_metadata = True,
+ token = '',
+ type = 'ALBUM',
+ user_id = ''
+ )
+ else:
+ return SharedLinkResponseDto(
+ allow_download = True,
+ allow_upload = True,
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ key = '',
+ password = '',
+ show_metadata = True,
+ type = 'ALBUM',
+ user_id = '',
+ )
+ """
+
+ def testSharedLinkResponseDto(self):
+ """Test SharedLinkResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_shared_link_type.py b/generated/immich/openapi_client/test/test_shared_link_type.py
new file mode 100644
index 0000000..0fe4aaa
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_shared_link_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.shared_link_type import SharedLinkType
+
+class TestSharedLinkType(unittest.TestCase):
+ """SharedLinkType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testSharedLinkType(self):
+ """Test SharedLinkType"""
+ # inst = SharedLinkType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_shared_links_api.py b/generated/immich/openapi_client/test/test_shared_links_api.py
new file mode 100644
index 0000000..9ae5efe
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_shared_links_api.py
@@ -0,0 +1,79 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.shared_links_api import SharedLinksApi
+
+
+class TestSharedLinksApi(unittest.TestCase):
+ """SharedLinksApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = SharedLinksApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_add_shared_link_assets(self) -> None:
+ """Test case for add_shared_link_assets
+
+ """
+ pass
+
+ def test_create_shared_link(self) -> None:
+ """Test case for create_shared_link
+
+ """
+ pass
+
+ def test_get_all_shared_links(self) -> None:
+ """Test case for get_all_shared_links
+
+ """
+ pass
+
+ def test_get_my_shared_link(self) -> None:
+ """Test case for get_my_shared_link
+
+ """
+ pass
+
+ def test_get_shared_link_by_id(self) -> None:
+ """Test case for get_shared_link_by_id
+
+ """
+ pass
+
+ def test_remove_shared_link(self) -> None:
+ """Test case for remove_shared_link
+
+ """
+ pass
+
+ def test_remove_shared_link_assets(self) -> None:
+ """Test case for remove_shared_link_assets
+
+ """
+ pass
+
+ def test_update_shared_link(self) -> None:
+ """Test case for update_shared_link
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_shared_links_response.py b/generated/immich/openapi_client/test/test_shared_links_response.py
new file mode 100644
index 0000000..bd84a8d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_shared_links_response.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.shared_links_response import SharedLinksResponse
+
+class TestSharedLinksResponse(unittest.TestCase):
+ """SharedLinksResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SharedLinksResponse:
+ """Test SharedLinksResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SharedLinksResponse`
+ """
+ model = SharedLinksResponse()
+ if include_optional:
+ return SharedLinksResponse(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return SharedLinksResponse(
+ enabled = True,
+ sidebar_web = True,
+ )
+ """
+
+ def testSharedLinksResponse(self):
+ """Test SharedLinksResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_shared_links_update.py b/generated/immich/openapi_client/test/test_shared_links_update.py
new file mode 100644
index 0000000..3e16afb
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_shared_links_update.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.shared_links_update import SharedLinksUpdate
+
+class TestSharedLinksUpdate(unittest.TestCase):
+ """SharedLinksUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SharedLinksUpdate:
+ """Test SharedLinksUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SharedLinksUpdate`
+ """
+ model = SharedLinksUpdate()
+ if include_optional:
+ return SharedLinksUpdate(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return SharedLinksUpdate(
+ )
+ """
+
+ def testSharedLinksUpdate(self):
+ """Test SharedLinksUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sign_up_dto.py b/generated/immich/openapi_client/test/test_sign_up_dto.py
new file mode 100644
index 0000000..2898716
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sign_up_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sign_up_dto import SignUpDto
+
+class TestSignUpDto(unittest.TestCase):
+ """SignUpDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SignUpDto:
+ """Test SignUpDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SignUpDto`
+ """
+ model = SignUpDto()
+ if include_optional:
+ return SignUpDto(
+ email = 'testuser@email.com',
+ name = 'Admin',
+ password = 'password'
+ )
+ else:
+ return SignUpDto(
+ email = 'testuser@email.com',
+ name = 'Admin',
+ password = 'password',
+ )
+ """
+
+ def testSignUpDto(self):
+ """Test SignUpDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_smart_search_dto.py b/generated/immich/openapi_client/test/test_smart_search_dto.py
new file mode 100644
index 0000000..d73713f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_smart_search_dto.py
@@ -0,0 +1,89 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.smart_search_dto import SmartSearchDto
+
+class TestSmartSearchDto(unittest.TestCase):
+ """SmartSearchDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SmartSearchDto:
+ """Test SmartSearchDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SmartSearchDto`
+ """
+ model = SmartSearchDto()
+ if include_optional:
+ return SmartSearchDto(
+ city = '',
+ country = '',
+ created_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ created_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ device_id = '',
+ is_archived = True,
+ is_encoded = True,
+ is_favorite = True,
+ is_motion = True,
+ is_not_in_album = True,
+ is_offline = True,
+ is_visible = True,
+ language = '',
+ lens_model = '',
+ library_id = '',
+ make = '',
+ model = '',
+ page = 1,
+ person_ids = [
+ ''
+ ],
+ query = '',
+ rating = -1,
+ size = 1,
+ state = '',
+ tag_ids = [
+ ''
+ ],
+ taken_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ taken_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ trashed_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ trashed_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ type = 'IMAGE',
+ updated_after = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ updated_before = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ with_archived = True,
+ with_deleted = True,
+ with_exif = True
+ )
+ else:
+ return SmartSearchDto(
+ query = '',
+ )
+ """
+
+ def testSmartSearchDto(self):
+ """Test SmartSearchDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_source_type.py b/generated/immich/openapi_client/test/test_source_type.py
new file mode 100644
index 0000000..a1bb97a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_source_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.source_type import SourceType
+
+class TestSourceType(unittest.TestCase):
+ """SourceType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testSourceType(self):
+ """Test SourceType"""
+ # inst = SourceType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_stack_create_dto.py b/generated/immich/openapi_client/test/test_stack_create_dto.py
new file mode 100644
index 0000000..2682be8
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_stack_create_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.stack_create_dto import StackCreateDto
+
+class TestStackCreateDto(unittest.TestCase):
+ """StackCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> StackCreateDto:
+ """Test StackCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `StackCreateDto`
+ """
+ model = StackCreateDto()
+ if include_optional:
+ return StackCreateDto(
+ asset_ids = [
+ ''
+ ]
+ )
+ else:
+ return StackCreateDto(
+ asset_ids = [
+ ''
+ ],
+ )
+ """
+
+ def testStackCreateDto(self):
+ """Test StackCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_stack_response_dto.py b/generated/immich/openapi_client/test/test_stack_response_dto.py
new file mode 100644
index 0000000..cbfe20d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_stack_response_dto.py
@@ -0,0 +1,256 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.stack_response_dto import StackResponseDto
+
+class TestStackResponseDto(unittest.TestCase):
+ """StackResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> StackResponseDto:
+ """Test StackResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `StackResponseDto`
+ """
+ model = StackResponseDto()
+ if include_optional:
+ return StackResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ id = '',
+ primary_asset_id = ''
+ )
+ else:
+ return StackResponseDto(
+ assets = [
+ generated.immich.openapi_client.models.asset_response_dto.AssetResponseDto(
+ checksum = '',
+ device_asset_id = '',
+ device_id = '',
+ duplicate_id = '',
+ duration = '',
+ exif_info = generated.immich.openapi_client.models.exif_response_dto.ExifResponseDto(
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 1.337,
+ exif_image_width = 1.337,
+ exposure_time = '',
+ f_number = 1.337,
+ file_size_in_byte = 56,
+ focal_length = 1.337,
+ iso = 1.337,
+ latitude = 1.337,
+ lens_model = '',
+ longitude = 1.337,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ projection_type = '',
+ rating = 1.337,
+ state = '',
+ time_zone = '', ),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ has_metadata = True,
+ id = '',
+ is_archived = True,
+ is_favorite = True,
+ is_offline = True,
+ is_trashed = True,
+ library_id = '',
+ live_photo_video_id = '',
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ original_file_name = '',
+ original_mime_type = '',
+ original_path = '',
+ owner = generated.immich.openapi_client.models.user_response_dto.UserResponseDto(
+ avatar_color = null,
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '', ),
+ owner_id = '',
+ people = [
+ generated.immich.openapi_client.models.person_with_faces_response_dto.PersonWithFacesResponseDto(
+ birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(),
+ color = '',
+ faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ id = '',
+ is_favorite = True,
+ is_hidden = True,
+ name = '',
+ thumbnail_path = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ resized = True,
+ stack = null,
+ tags = [
+ generated.immich.openapi_client.models.tag_response_dto.TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '', )
+ ],
+ thumbhash = '',
+ type = null,
+ unassigned_faces = [
+ generated.immich.openapi_client.models.asset_face_without_person_response_dto.AssetFaceWithoutPersonResponseDto(
+ bounding_box_x1 = 56,
+ bounding_box_x2 = 56,
+ bounding_box_y1 = 56,
+ bounding_box_y2 = 56,
+ id = '',
+ image_height = 56,
+ image_width = 56,
+ source_type = null, )
+ ],
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
+ ],
+ id = '',
+ primary_asset_id = '',
+ )
+ """
+
+ def testStackResponseDto(self):
+ """Test StackResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_stack_update_dto.py b/generated/immich/openapi_client/test/test_stack_update_dto.py
new file mode 100644
index 0000000..128fe8d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_stack_update_dto.py
@@ -0,0 +1,51 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.stack_update_dto import StackUpdateDto
+
+class TestStackUpdateDto(unittest.TestCase):
+ """StackUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> StackUpdateDto:
+ """Test StackUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `StackUpdateDto`
+ """
+ model = StackUpdateDto()
+ if include_optional:
+ return StackUpdateDto(
+ primary_asset_id = ''
+ )
+ else:
+ return StackUpdateDto(
+ )
+ """
+
+ def testStackUpdateDto(self):
+ """Test StackUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_stacks_api.py b/generated/immich/openapi_client/test/test_stacks_api.py
new file mode 100644
index 0000000..d965150
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_stacks_api.py
@@ -0,0 +1,67 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.stacks_api import StacksApi
+
+
+class TestStacksApi(unittest.TestCase):
+ """StacksApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = StacksApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_stack(self) -> None:
+ """Test case for create_stack
+
+ """
+ pass
+
+ def test_delete_stack(self) -> None:
+ """Test case for delete_stack
+
+ """
+ pass
+
+ def test_delete_stacks(self) -> None:
+ """Test case for delete_stacks
+
+ """
+ pass
+
+ def test_get_stack(self) -> None:
+ """Test case for get_stack
+
+ """
+ pass
+
+ def test_search_stacks(self) -> None:
+ """Test case for search_stacks
+
+ """
+ pass
+
+ def test_update_stack(self) -> None:
+ """Test case for update_stack
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_ack_delete_dto.py b/generated/immich/openapi_client/test/test_sync_ack_delete_dto.py
new file mode 100644
index 0000000..4f70576
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_ack_delete_dto.py
@@ -0,0 +1,53 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_ack_delete_dto import SyncAckDeleteDto
+
+class TestSyncAckDeleteDto(unittest.TestCase):
+ """SyncAckDeleteDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncAckDeleteDto:
+ """Test SyncAckDeleteDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncAckDeleteDto`
+ """
+ model = SyncAckDeleteDto()
+ if include_optional:
+ return SyncAckDeleteDto(
+ types = [
+ 'UserV1'
+ ]
+ )
+ else:
+ return SyncAckDeleteDto(
+ )
+ """
+
+ def testSyncAckDeleteDto(self):
+ """Test SyncAckDeleteDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_ack_dto.py b/generated/immich/openapi_client/test/test_sync_ack_dto.py
new file mode 100644
index 0000000..7e5225f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_ack_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_ack_dto import SyncAckDto
+
+class TestSyncAckDto(unittest.TestCase):
+ """SyncAckDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncAckDto:
+ """Test SyncAckDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncAckDto`
+ """
+ model = SyncAckDto()
+ if include_optional:
+ return SyncAckDto(
+ ack = '',
+ type = 'UserV1'
+ )
+ else:
+ return SyncAckDto(
+ ack = '',
+ type = 'UserV1',
+ )
+ """
+
+ def testSyncAckDto(self):
+ """Test SyncAckDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_ack_set_dto.py b/generated/immich/openapi_client/test/test_sync_ack_set_dto.py
new file mode 100644
index 0000000..351c950
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_ack_set_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_ack_set_dto import SyncAckSetDto
+
+class TestSyncAckSetDto(unittest.TestCase):
+ """SyncAckSetDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncAckSetDto:
+ """Test SyncAckSetDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncAckSetDto`
+ """
+ model = SyncAckSetDto()
+ if include_optional:
+ return SyncAckSetDto(
+ acks = [
+ ''
+ ]
+ )
+ else:
+ return SyncAckSetDto(
+ acks = [
+ ''
+ ],
+ )
+ """
+
+ def testSyncAckSetDto(self):
+ """Test SyncAckSetDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_api.py b/generated/immich/openapi_client/test/test_sync_api.py
new file mode 100644
index 0000000..e09a4b5
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_api.py
@@ -0,0 +1,67 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.sync_api import SyncApi
+
+
+class TestSyncApi(unittest.TestCase):
+ """SyncApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = SyncApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_delete_sync_ack(self) -> None:
+ """Test case for delete_sync_ack
+
+ """
+ pass
+
+ def test_get_delta_sync(self) -> None:
+ """Test case for get_delta_sync
+
+ """
+ pass
+
+ def test_get_full_sync_for_user(self) -> None:
+ """Test case for get_full_sync_for_user
+
+ """
+ pass
+
+ def test_get_sync_ack(self) -> None:
+ """Test case for get_sync_ack
+
+ """
+ pass
+
+ def test_get_sync_stream(self) -> None:
+ """Test case for get_sync_stream
+
+ """
+ pass
+
+ def test_send_sync_ack(self) -> None:
+ """Test case for send_sync_ack
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_asset_delete_v1.py b/generated/immich/openapi_client/test/test_sync_asset_delete_v1.py
new file mode 100644
index 0000000..0ff956a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_asset_delete_v1.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_asset_delete_v1 import SyncAssetDeleteV1
+
+class TestSyncAssetDeleteV1(unittest.TestCase):
+ """SyncAssetDeleteV1 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncAssetDeleteV1:
+ """Test SyncAssetDeleteV1
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncAssetDeleteV1`
+ """
+ model = SyncAssetDeleteV1()
+ if include_optional:
+ return SyncAssetDeleteV1(
+ asset_id = ''
+ )
+ else:
+ return SyncAssetDeleteV1(
+ asset_id = '',
+ )
+ """
+
+ def testSyncAssetDeleteV1(self):
+ """Test SyncAssetDeleteV1"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_asset_exif_v1.py b/generated/immich/openapi_client/test/test_sync_asset_exif_v1.py
new file mode 100644
index 0000000..3cac77d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_asset_exif_v1.py
@@ -0,0 +1,100 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_asset_exif_v1 import SyncAssetExifV1
+
+class TestSyncAssetExifV1(unittest.TestCase):
+ """SyncAssetExifV1 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncAssetExifV1:
+ """Test SyncAssetExifV1
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncAssetExifV1`
+ """
+ model = SyncAssetExifV1()
+ if include_optional:
+ return SyncAssetExifV1(
+ asset_id = '',
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 56,
+ exif_image_width = 56,
+ exposure_time = '',
+ f_number = 56,
+ file_size_in_byte = 56,
+ focal_length = 56,
+ fps = 56,
+ iso = 56,
+ latitude = 56,
+ lens_model = '',
+ longitude = 56,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ profile_description = '',
+ projection_type = '',
+ rating = 56,
+ state = '',
+ time_zone = ''
+ )
+ else:
+ return SyncAssetExifV1(
+ asset_id = '',
+ city = '',
+ country = '',
+ date_time_original = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ description = '',
+ exif_image_height = 56,
+ exif_image_width = 56,
+ exposure_time = '',
+ f_number = 56,
+ file_size_in_byte = 56,
+ focal_length = 56,
+ fps = 56,
+ iso = 56,
+ latitude = 56,
+ lens_model = '',
+ longitude = 56,
+ make = '',
+ model = '',
+ modify_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ orientation = '',
+ profile_description = '',
+ projection_type = '',
+ rating = 56,
+ state = '',
+ time_zone = '',
+ )
+ """
+
+ def testSyncAssetExifV1(self):
+ """Test SyncAssetExifV1"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_asset_v1.py b/generated/immich/openapi_client/test/test_sync_asset_v1.py
new file mode 100644
index 0000000..c73f0df
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_asset_v1.py
@@ -0,0 +1,72 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_asset_v1 import SyncAssetV1
+
+class TestSyncAssetV1(unittest.TestCase):
+ """SyncAssetV1 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncAssetV1:
+ """Test SyncAssetV1
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncAssetV1`
+ """
+ model = SyncAssetV1()
+ if include_optional:
+ return SyncAssetV1(
+ checksum = '',
+ deleted_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ is_favorite = True,
+ is_visible = True,
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ owner_id = '',
+ thumbhash = '',
+ type = 'IMAGE'
+ )
+ else:
+ return SyncAssetV1(
+ checksum = '',
+ deleted_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ file_modified_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ is_favorite = True,
+ is_visible = True,
+ local_date_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ owner_id = '',
+ thumbhash = '',
+ type = 'IMAGE',
+ )
+ """
+
+ def testSyncAssetV1(self):
+ """Test SyncAssetV1"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_entity_type.py b/generated/immich/openapi_client/test/test_sync_entity_type.py
new file mode 100644
index 0000000..bc0218e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_entity_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_entity_type import SyncEntityType
+
+class TestSyncEntityType(unittest.TestCase):
+ """SyncEntityType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testSyncEntityType(self):
+ """Test SyncEntityType"""
+ # inst = SyncEntityType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_partner_delete_v1.py b/generated/immich/openapi_client/test/test_sync_partner_delete_v1.py
new file mode 100644
index 0000000..fd5db7d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_partner_delete_v1.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_partner_delete_v1 import SyncPartnerDeleteV1
+
+class TestSyncPartnerDeleteV1(unittest.TestCase):
+ """SyncPartnerDeleteV1 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncPartnerDeleteV1:
+ """Test SyncPartnerDeleteV1
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncPartnerDeleteV1`
+ """
+ model = SyncPartnerDeleteV1()
+ if include_optional:
+ return SyncPartnerDeleteV1(
+ shared_by_id = '',
+ shared_with_id = ''
+ )
+ else:
+ return SyncPartnerDeleteV1(
+ shared_by_id = '',
+ shared_with_id = '',
+ )
+ """
+
+ def testSyncPartnerDeleteV1(self):
+ """Test SyncPartnerDeleteV1"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_partner_v1.py b/generated/immich/openapi_client/test/test_sync_partner_v1.py
new file mode 100644
index 0000000..a1918d4
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_partner_v1.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_partner_v1 import SyncPartnerV1
+
+class TestSyncPartnerV1(unittest.TestCase):
+ """SyncPartnerV1 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncPartnerV1:
+ """Test SyncPartnerV1
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncPartnerV1`
+ """
+ model = SyncPartnerV1()
+ if include_optional:
+ return SyncPartnerV1(
+ in_timeline = True,
+ shared_by_id = '',
+ shared_with_id = ''
+ )
+ else:
+ return SyncPartnerV1(
+ in_timeline = True,
+ shared_by_id = '',
+ shared_with_id = '',
+ )
+ """
+
+ def testSyncPartnerV1(self):
+ """Test SyncPartnerV1"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_request_type.py b/generated/immich/openapi_client/test/test_sync_request_type.py
new file mode 100644
index 0000000..11361e4
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_request_type.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_request_type import SyncRequestType
+
+class TestSyncRequestType(unittest.TestCase):
+ """SyncRequestType unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testSyncRequestType(self):
+ """Test SyncRequestType"""
+ # inst = SyncRequestType()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_stream_dto.py b/generated/immich/openapi_client/test/test_sync_stream_dto.py
new file mode 100644
index 0000000..8a544d1
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_stream_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_stream_dto import SyncStreamDto
+
+class TestSyncStreamDto(unittest.TestCase):
+ """SyncStreamDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncStreamDto:
+ """Test SyncStreamDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncStreamDto`
+ """
+ model = SyncStreamDto()
+ if include_optional:
+ return SyncStreamDto(
+ types = [
+ 'UsersV1'
+ ]
+ )
+ else:
+ return SyncStreamDto(
+ types = [
+ 'UsersV1'
+ ],
+ )
+ """
+
+ def testSyncStreamDto(self):
+ """Test SyncStreamDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_user_delete_v1.py b/generated/immich/openapi_client/test/test_sync_user_delete_v1.py
new file mode 100644
index 0000000..bad5751
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_user_delete_v1.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_user_delete_v1 import SyncUserDeleteV1
+
+class TestSyncUserDeleteV1(unittest.TestCase):
+ """SyncUserDeleteV1 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncUserDeleteV1:
+ """Test SyncUserDeleteV1
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncUserDeleteV1`
+ """
+ model = SyncUserDeleteV1()
+ if include_optional:
+ return SyncUserDeleteV1(
+ user_id = ''
+ )
+ else:
+ return SyncUserDeleteV1(
+ user_id = '',
+ )
+ """
+
+ def testSyncUserDeleteV1(self):
+ """Test SyncUserDeleteV1"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_sync_user_v1.py b/generated/immich/openapi_client/test/test_sync_user_v1.py
new file mode 100644
index 0000000..4b35ba1
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_sync_user_v1.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.sync_user_v1 import SyncUserV1
+
+class TestSyncUserV1(unittest.TestCase):
+ """SyncUserV1 unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SyncUserV1:
+ """Test SyncUserV1
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SyncUserV1`
+ """
+ model = SyncUserV1()
+ if include_optional:
+ return SyncUserV1(
+ deleted_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ email = '',
+ id = '',
+ name = ''
+ )
+ else:
+ return SyncUserV1(
+ deleted_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ email = '',
+ id = '',
+ name = '',
+ )
+ """
+
+ def testSyncUserV1(self):
+ """Test SyncUserV1"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_api.py b/generated/immich/openapi_client/test/test_system_config_api.py
new file mode 100644
index 0000000..43cb987
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_api.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.system_config_api import SystemConfigApi
+
+
+class TestSystemConfigApi(unittest.TestCase):
+ """SystemConfigApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = SystemConfigApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_config(self) -> None:
+ """Test case for get_config
+
+ """
+ pass
+
+ def test_get_config_defaults(self) -> None:
+ """Test case for get_config_defaults
+
+ """
+ pass
+
+ def test_get_storage_template_options(self) -> None:
+ """Test case for get_storage_template_options
+
+ """
+ pass
+
+ def test_update_config(self) -> None:
+ """Test case for update_config
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_backups_dto.py b/generated/immich/openapi_client/test/test_system_config_backups_dto.py
new file mode 100644
index 0000000..5ac125d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_backups_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_backups_dto import SystemConfigBackupsDto
+
+class TestSystemConfigBackupsDto(unittest.TestCase):
+ """SystemConfigBackupsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigBackupsDto:
+ """Test SystemConfigBackupsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigBackupsDto`
+ """
+ model = SystemConfigBackupsDto()
+ if include_optional:
+ return SystemConfigBackupsDto(
+ database = generated.immich.openapi_client.models.database_backup_config.DatabaseBackupConfig(
+ cron_expression = '',
+ enabled = True,
+ keep_last_amount = 1, )
+ )
+ else:
+ return SystemConfigBackupsDto(
+ database = generated.immich.openapi_client.models.database_backup_config.DatabaseBackupConfig(
+ cron_expression = '',
+ enabled = True,
+ keep_last_amount = 1, ),
+ )
+ """
+
+ def testSystemConfigBackupsDto(self):
+ """Test SystemConfigBackupsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_dto.py b/generated/immich/openapi_client/test/test_system_config_dto.py
new file mode 100644
index 0000000..4b47dfb
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_dto.py
@@ -0,0 +1,348 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_dto import SystemConfigDto
+
+class TestSystemConfigDto(unittest.TestCase):
+ """SystemConfigDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigDto:
+ """Test SystemConfigDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigDto`
+ """
+ model = SystemConfigDto()
+ if include_optional:
+ return SystemConfigDto(
+ backup = generated.immich.openapi_client.models.system_config_backups_dto.SystemConfigBackupsDto(
+ database = generated.immich.openapi_client.models.database_backup_config.DatabaseBackupConfig(
+ cron_expression = '',
+ enabled = True,
+ keep_last_amount = 1, ), ),
+ ffmpeg = generated.immich.openapi_client.models.system_config_f_fmpeg_dto.SystemConfigFFmpegDto(
+ accel = null,
+ accel_decode = True,
+ accepted_audio_codecs = [
+ 'mp3'
+ ],
+ accepted_containers = [
+ 'mov'
+ ],
+ accepted_video_codecs = [
+ 'h264'
+ ],
+ bframes = -1,
+ cq_mode = null,
+ crf = 0,
+ gop_size = 0,
+ max_bitrate = '',
+ preferred_hw_device = '',
+ preset = '',
+ refs = 0,
+ target_audio_codec = null,
+ target_resolution = '',
+ target_video_codec = null,
+ temporal_aq = True,
+ threads = 0,
+ tonemap = null,
+ transcode = null,
+ two_pass = True, ),
+ image = generated.immich.openapi_client.models.system_config_image_dto.SystemConfigImageDto(
+ colorspace = null,
+ extract_embedded = True,
+ fullsize = generated.immich.openapi_client.models.system_config_generated_fullsize_image_dto.SystemConfigGeneratedFullsizeImageDto(
+ enabled = True,
+ format = null,
+ quality = 1, ),
+ preview = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, ),
+ thumbnail = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, ), ),
+ job = generated.immich.openapi_client.models.system_config_job_dto.SystemConfigJobDto(
+ background_task = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ face_detection = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ library = ,
+ metadata_extraction = ,
+ migration = ,
+ notifications = ,
+ search = ,
+ sidecar = ,
+ smart_search = ,
+ thumbnail_generation = ,
+ video_conversion = , ),
+ library = generated.immich.openapi_client.models.system_config_library_dto.SystemConfigLibraryDto(
+ scan = generated.immich.openapi_client.models.system_config_library_scan_dto.SystemConfigLibraryScanDto(
+ cron_expression = '',
+ enabled = True, ),
+ watch = generated.immich.openapi_client.models.system_config_library_watch_dto.SystemConfigLibraryWatchDto(
+ enabled = True, ), ),
+ logging = generated.immich.openapi_client.models.system_config_logging_dto.SystemConfigLoggingDto(
+ enabled = True,
+ level = null, ),
+ machine_learning = generated.immich.openapi_client.models.system_config_machine_learning_dto.SystemConfigMachineLearningDto(
+ clip = generated.immich.openapi_client.models.clip_config.CLIPConfig(
+ enabled = True,
+ model_name = '', ),
+ duplicate_detection = generated.immich.openapi_client.models.duplicate_detection_config.DuplicateDetectionConfig(
+ enabled = True,
+ max_distance = 0.001, ),
+ enabled = True,
+ facial_recognition = generated.immich.openapi_client.models.facial_recognition_config.FacialRecognitionConfig(
+ enabled = True,
+ max_distance = 0.1,
+ min_faces = 1,
+ min_score = 0.1,
+ model_name = '', ),
+ url = '',
+ urls = [
+ ''
+ ], ),
+ map = generated.immich.openapi_client.models.system_config_map_dto.SystemConfigMapDto(
+ dark_style = '',
+ enabled = True,
+ light_style = '', ),
+ metadata = generated.immich.openapi_client.models.system_config_metadata_dto.SystemConfigMetadataDto(
+ faces = generated.immich.openapi_client.models.system_config_faces_dto.SystemConfigFacesDto(
+ import = True, ), ),
+ new_version_check = generated.immich.openapi_client.models.system_config_new_version_check_dto.SystemConfigNewVersionCheckDto(
+ enabled = True, ),
+ notifications = generated.immich.openapi_client.models.system_config_notifications_dto.SystemConfigNotificationsDto(
+ smtp = generated.immich.openapi_client.models.system_config_smtp_dto.SystemConfigSmtpDto(
+ enabled = True,
+ from = '',
+ reply_to = '',
+ transport = generated.immich.openapi_client.models.system_config_smtp_transport_dto.SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = '', ), ), ),
+ oauth = generated.immich.openapi_client.models.system_config_o_auth_dto.SystemConfigOAuthDto(
+ auto_launch = True,
+ auto_register = True,
+ button_text = '',
+ client_id = '',
+ client_secret = '',
+ default_storage_quota = 0,
+ enabled = True,
+ issuer_url = '',
+ mobile_override_enabled = True,
+ mobile_redirect_uri = '',
+ profile_signing_algorithm = '',
+ scope = '',
+ signing_algorithm = '',
+ storage_label_claim = '',
+ storage_quota_claim = '', ),
+ password_login = generated.immich.openapi_client.models.system_config_password_login_dto.SystemConfigPasswordLoginDto(
+ enabled = True, ),
+ reverse_geocoding = generated.immich.openapi_client.models.system_config_reverse_geocoding_dto.SystemConfigReverseGeocodingDto(
+ enabled = True, ),
+ server = generated.immich.openapi_client.models.system_config_server_dto.SystemConfigServerDto(
+ external_domain = '',
+ login_page_message = '',
+ public_users = True, ),
+ storage_template = generated.immich.openapi_client.models.system_config_storage_template_dto.SystemConfigStorageTemplateDto(
+ enabled = True,
+ hash_verification_enabled = True,
+ template = '', ),
+ templates = generated.immich.openapi_client.models.system_config_templates_dto.SystemConfigTemplatesDto(
+ email = generated.immich.openapi_client.models.system_config_template_emails_dto.SystemConfigTemplateEmailsDto(
+ album_invite_template = '',
+ album_update_template = '',
+ welcome_template = '', ), ),
+ theme = generated.immich.openapi_client.models.system_config_theme_dto.SystemConfigThemeDto(
+ custom_css = '', ),
+ trash = generated.immich.openapi_client.models.system_config_trash_dto.SystemConfigTrashDto(
+ days = 0,
+ enabled = True, ),
+ user = generated.immich.openapi_client.models.system_config_user_dto.SystemConfigUserDto(
+ delete_delay = 1, )
+ )
+ else:
+ return SystemConfigDto(
+ backup = generated.immich.openapi_client.models.system_config_backups_dto.SystemConfigBackupsDto(
+ database = generated.immich.openapi_client.models.database_backup_config.DatabaseBackupConfig(
+ cron_expression = '',
+ enabled = True,
+ keep_last_amount = 1, ), ),
+ ffmpeg = generated.immich.openapi_client.models.system_config_f_fmpeg_dto.SystemConfigFFmpegDto(
+ accel = null,
+ accel_decode = True,
+ accepted_audio_codecs = [
+ 'mp3'
+ ],
+ accepted_containers = [
+ 'mov'
+ ],
+ accepted_video_codecs = [
+ 'h264'
+ ],
+ bframes = -1,
+ cq_mode = null,
+ crf = 0,
+ gop_size = 0,
+ max_bitrate = '',
+ preferred_hw_device = '',
+ preset = '',
+ refs = 0,
+ target_audio_codec = null,
+ target_resolution = '',
+ target_video_codec = null,
+ temporal_aq = True,
+ threads = 0,
+ tonemap = null,
+ transcode = null,
+ two_pass = True, ),
+ image = generated.immich.openapi_client.models.system_config_image_dto.SystemConfigImageDto(
+ colorspace = null,
+ extract_embedded = True,
+ fullsize = generated.immich.openapi_client.models.system_config_generated_fullsize_image_dto.SystemConfigGeneratedFullsizeImageDto(
+ enabled = True,
+ format = null,
+ quality = 1, ),
+ preview = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, ),
+ thumbnail = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, ), ),
+ job = generated.immich.openapi_client.models.system_config_job_dto.SystemConfigJobDto(
+ background_task = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ face_detection = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ library = ,
+ metadata_extraction = ,
+ migration = ,
+ notifications = ,
+ search = ,
+ sidecar = ,
+ smart_search = ,
+ thumbnail_generation = ,
+ video_conversion = , ),
+ library = generated.immich.openapi_client.models.system_config_library_dto.SystemConfigLibraryDto(
+ scan = generated.immich.openapi_client.models.system_config_library_scan_dto.SystemConfigLibraryScanDto(
+ cron_expression = '',
+ enabled = True, ),
+ watch = generated.immich.openapi_client.models.system_config_library_watch_dto.SystemConfigLibraryWatchDto(
+ enabled = True, ), ),
+ logging = generated.immich.openapi_client.models.system_config_logging_dto.SystemConfigLoggingDto(
+ enabled = True,
+ level = null, ),
+ machine_learning = generated.immich.openapi_client.models.system_config_machine_learning_dto.SystemConfigMachineLearningDto(
+ clip = generated.immich.openapi_client.models.clip_config.CLIPConfig(
+ enabled = True,
+ model_name = '', ),
+ duplicate_detection = generated.immich.openapi_client.models.duplicate_detection_config.DuplicateDetectionConfig(
+ enabled = True,
+ max_distance = 0.001, ),
+ enabled = True,
+ facial_recognition = generated.immich.openapi_client.models.facial_recognition_config.FacialRecognitionConfig(
+ enabled = True,
+ max_distance = 0.1,
+ min_faces = 1,
+ min_score = 0.1,
+ model_name = '', ),
+ url = '',
+ urls = [
+ ''
+ ], ),
+ map = generated.immich.openapi_client.models.system_config_map_dto.SystemConfigMapDto(
+ dark_style = '',
+ enabled = True,
+ light_style = '', ),
+ metadata = generated.immich.openapi_client.models.system_config_metadata_dto.SystemConfigMetadataDto(
+ faces = generated.immich.openapi_client.models.system_config_faces_dto.SystemConfigFacesDto(
+ import = True, ), ),
+ new_version_check = generated.immich.openapi_client.models.system_config_new_version_check_dto.SystemConfigNewVersionCheckDto(
+ enabled = True, ),
+ notifications = generated.immich.openapi_client.models.system_config_notifications_dto.SystemConfigNotificationsDto(
+ smtp = generated.immich.openapi_client.models.system_config_smtp_dto.SystemConfigSmtpDto(
+ enabled = True,
+ from = '',
+ reply_to = '',
+ transport = generated.immich.openapi_client.models.system_config_smtp_transport_dto.SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = '', ), ), ),
+ oauth = generated.immich.openapi_client.models.system_config_o_auth_dto.SystemConfigOAuthDto(
+ auto_launch = True,
+ auto_register = True,
+ button_text = '',
+ client_id = '',
+ client_secret = '',
+ default_storage_quota = 0,
+ enabled = True,
+ issuer_url = '',
+ mobile_override_enabled = True,
+ mobile_redirect_uri = '',
+ profile_signing_algorithm = '',
+ scope = '',
+ signing_algorithm = '',
+ storage_label_claim = '',
+ storage_quota_claim = '', ),
+ password_login = generated.immich.openapi_client.models.system_config_password_login_dto.SystemConfigPasswordLoginDto(
+ enabled = True, ),
+ reverse_geocoding = generated.immich.openapi_client.models.system_config_reverse_geocoding_dto.SystemConfigReverseGeocodingDto(
+ enabled = True, ),
+ server = generated.immich.openapi_client.models.system_config_server_dto.SystemConfigServerDto(
+ external_domain = '',
+ login_page_message = '',
+ public_users = True, ),
+ storage_template = generated.immich.openapi_client.models.system_config_storage_template_dto.SystemConfigStorageTemplateDto(
+ enabled = True,
+ hash_verification_enabled = True,
+ template = '', ),
+ templates = generated.immich.openapi_client.models.system_config_templates_dto.SystemConfigTemplatesDto(
+ email = generated.immich.openapi_client.models.system_config_template_emails_dto.SystemConfigTemplateEmailsDto(
+ album_invite_template = '',
+ album_update_template = '',
+ welcome_template = '', ), ),
+ theme = generated.immich.openapi_client.models.system_config_theme_dto.SystemConfigThemeDto(
+ custom_css = '', ),
+ trash = generated.immich.openapi_client.models.system_config_trash_dto.SystemConfigTrashDto(
+ days = 0,
+ enabled = True, ),
+ user = generated.immich.openapi_client.models.system_config_user_dto.SystemConfigUserDto(
+ delete_delay = 1, ),
+ )
+ """
+
+ def testSystemConfigDto(self):
+ """Test SystemConfigDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_f_fmpeg_dto.py b/generated/immich/openapi_client/test/test_system_config_f_fmpeg_dto.py
new file mode 100644
index 0000000..793e6ee
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_f_fmpeg_dto.py
@@ -0,0 +1,104 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_f_fmpeg_dto import SystemConfigFFmpegDto
+
+class TestSystemConfigFFmpegDto(unittest.TestCase):
+ """SystemConfigFFmpegDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigFFmpegDto:
+ """Test SystemConfigFFmpegDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigFFmpegDto`
+ """
+ model = SystemConfigFFmpegDto()
+ if include_optional:
+ return SystemConfigFFmpegDto(
+ accel = 'nvenc',
+ accel_decode = True,
+ accepted_audio_codecs = [
+ 'mp3'
+ ],
+ accepted_containers = [
+ 'mov'
+ ],
+ accepted_video_codecs = [
+ 'h264'
+ ],
+ bframes = -1,
+ cq_mode = 'auto',
+ crf = 0,
+ gop_size = 0,
+ max_bitrate = '',
+ preferred_hw_device = '',
+ preset = '',
+ refs = 0,
+ target_audio_codec = 'mp3',
+ target_resolution = '',
+ target_video_codec = 'h264',
+ temporal_aq = True,
+ threads = 0,
+ tonemap = 'hable',
+ transcode = 'all',
+ two_pass = True
+ )
+ else:
+ return SystemConfigFFmpegDto(
+ accel = 'nvenc',
+ accel_decode = True,
+ accepted_audio_codecs = [
+ 'mp3'
+ ],
+ accepted_containers = [
+ 'mov'
+ ],
+ accepted_video_codecs = [
+ 'h264'
+ ],
+ bframes = -1,
+ cq_mode = 'auto',
+ crf = 0,
+ gop_size = 0,
+ max_bitrate = '',
+ preferred_hw_device = '',
+ preset = '',
+ refs = 0,
+ target_audio_codec = 'mp3',
+ target_resolution = '',
+ target_video_codec = 'h264',
+ temporal_aq = True,
+ threads = 0,
+ tonemap = 'hable',
+ transcode = 'all',
+ two_pass = True,
+ )
+ """
+
+ def testSystemConfigFFmpegDto(self):
+ """Test SystemConfigFFmpegDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_faces_dto.py b/generated/immich/openapi_client/test/test_system_config_faces_dto.py
new file mode 100644
index 0000000..73e1dbe
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_faces_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_faces_dto import SystemConfigFacesDto
+
+class TestSystemConfigFacesDto(unittest.TestCase):
+ """SystemConfigFacesDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigFacesDto:
+ """Test SystemConfigFacesDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigFacesDto`
+ """
+ model = SystemConfigFacesDto()
+ if include_optional:
+ return SystemConfigFacesDto(
+ var_import = True
+ )
+ else:
+ return SystemConfigFacesDto(
+ var_import = True,
+ )
+ """
+
+ def testSystemConfigFacesDto(self):
+ """Test SystemConfigFacesDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_generated_fullsize_image_dto.py b/generated/immich/openapi_client/test/test_system_config_generated_fullsize_image_dto.py
new file mode 100644
index 0000000..6bae4b3
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_generated_fullsize_image_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_generated_fullsize_image_dto import SystemConfigGeneratedFullsizeImageDto
+
+class TestSystemConfigGeneratedFullsizeImageDto(unittest.TestCase):
+ """SystemConfigGeneratedFullsizeImageDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigGeneratedFullsizeImageDto:
+ """Test SystemConfigGeneratedFullsizeImageDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigGeneratedFullsizeImageDto`
+ """
+ model = SystemConfigGeneratedFullsizeImageDto()
+ if include_optional:
+ return SystemConfigGeneratedFullsizeImageDto(
+ enabled = True,
+ format = 'jpeg',
+ quality = 1
+ )
+ else:
+ return SystemConfigGeneratedFullsizeImageDto(
+ enabled = True,
+ format = 'jpeg',
+ quality = 1,
+ )
+ """
+
+ def testSystemConfigGeneratedFullsizeImageDto(self):
+ """Test SystemConfigGeneratedFullsizeImageDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_generated_image_dto.py b/generated/immich/openapi_client/test/test_system_config_generated_image_dto.py
new file mode 100644
index 0000000..26e49b6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_generated_image_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_generated_image_dto import SystemConfigGeneratedImageDto
+
+class TestSystemConfigGeneratedImageDto(unittest.TestCase):
+ """SystemConfigGeneratedImageDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigGeneratedImageDto:
+ """Test SystemConfigGeneratedImageDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigGeneratedImageDto`
+ """
+ model = SystemConfigGeneratedImageDto()
+ if include_optional:
+ return SystemConfigGeneratedImageDto(
+ format = 'jpeg',
+ quality = 1,
+ size = 1
+ )
+ else:
+ return SystemConfigGeneratedImageDto(
+ format = 'jpeg',
+ quality = 1,
+ size = 1,
+ )
+ """
+
+ def testSystemConfigGeneratedImageDto(self):
+ """Test SystemConfigGeneratedImageDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_image_dto.py b/generated/immich/openapi_client/test/test_system_config_image_dto.py
new file mode 100644
index 0000000..6505b01
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_image_dto.py
@@ -0,0 +1,78 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_image_dto import SystemConfigImageDto
+
+class TestSystemConfigImageDto(unittest.TestCase):
+ """SystemConfigImageDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigImageDto:
+ """Test SystemConfigImageDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigImageDto`
+ """
+ model = SystemConfigImageDto()
+ if include_optional:
+ return SystemConfigImageDto(
+ colorspace = 'srgb',
+ extract_embedded = True,
+ fullsize = generated.immich.openapi_client.models.system_config_generated_fullsize_image_dto.SystemConfigGeneratedFullsizeImageDto(
+ enabled = True,
+ format = null,
+ quality = 1, ),
+ preview = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, ),
+ thumbnail = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, )
+ )
+ else:
+ return SystemConfigImageDto(
+ colorspace = 'srgb',
+ extract_embedded = True,
+ fullsize = generated.immich.openapi_client.models.system_config_generated_fullsize_image_dto.SystemConfigGeneratedFullsizeImageDto(
+ enabled = True,
+ format = null,
+ quality = 1, ),
+ preview = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, ),
+ thumbnail = generated.immich.openapi_client.models.system_config_generated_image_dto.SystemConfigGeneratedImageDto(
+ format = null,
+ quality = 1,
+ size = 1, ),
+ )
+ """
+
+ def testSystemConfigImageDto(self):
+ """Test SystemConfigImageDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_job_dto.py b/generated/immich/openapi_client/test/test_system_config_job_dto.py
new file mode 100644
index 0000000..43f91e1
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_job_dto.py
@@ -0,0 +1,94 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_job_dto import SystemConfigJobDto
+
+class TestSystemConfigJobDto(unittest.TestCase):
+ """SystemConfigJobDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigJobDto:
+ """Test SystemConfigJobDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigJobDto`
+ """
+ model = SystemConfigJobDto()
+ if include_optional:
+ return SystemConfigJobDto(
+ background_task = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ face_detection = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ library = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ metadata_extraction = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ migration = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ notifications = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ search = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ sidecar = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ smart_search = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ thumbnail_generation = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ video_conversion = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, )
+ )
+ else:
+ return SystemConfigJobDto(
+ background_task = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ face_detection = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ library = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ metadata_extraction = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ migration = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ notifications = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ search = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ sidecar = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ smart_search = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ thumbnail_generation = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ video_conversion = generated.immich.openapi_client.models.job_settings_dto.JobSettingsDto(
+ concurrency = 1, ),
+ )
+ """
+
+ def testSystemConfigJobDto(self):
+ """Test SystemConfigJobDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_library_dto.py b/generated/immich/openapi_client/test/test_system_config_library_dto.py
new file mode 100644
index 0000000..30e2dd3
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_library_dto.py
@@ -0,0 +1,60 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_library_dto import SystemConfigLibraryDto
+
+class TestSystemConfigLibraryDto(unittest.TestCase):
+ """SystemConfigLibraryDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigLibraryDto:
+ """Test SystemConfigLibraryDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigLibraryDto`
+ """
+ model = SystemConfigLibraryDto()
+ if include_optional:
+ return SystemConfigLibraryDto(
+ scan = generated.immich.openapi_client.models.system_config_library_scan_dto.SystemConfigLibraryScanDto(
+ cron_expression = '',
+ enabled = True, ),
+ watch = generated.immich.openapi_client.models.system_config_library_watch_dto.SystemConfigLibraryWatchDto(
+ enabled = True, )
+ )
+ else:
+ return SystemConfigLibraryDto(
+ scan = generated.immich.openapi_client.models.system_config_library_scan_dto.SystemConfigLibraryScanDto(
+ cron_expression = '',
+ enabled = True, ),
+ watch = generated.immich.openapi_client.models.system_config_library_watch_dto.SystemConfigLibraryWatchDto(
+ enabled = True, ),
+ )
+ """
+
+ def testSystemConfigLibraryDto(self):
+ """Test SystemConfigLibraryDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_library_scan_dto.py b/generated/immich/openapi_client/test/test_system_config_library_scan_dto.py
new file mode 100644
index 0000000..2feab9e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_library_scan_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_library_scan_dto import SystemConfigLibraryScanDto
+
+class TestSystemConfigLibraryScanDto(unittest.TestCase):
+ """SystemConfigLibraryScanDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigLibraryScanDto:
+ """Test SystemConfigLibraryScanDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigLibraryScanDto`
+ """
+ model = SystemConfigLibraryScanDto()
+ if include_optional:
+ return SystemConfigLibraryScanDto(
+ cron_expression = '',
+ enabled = True
+ )
+ else:
+ return SystemConfigLibraryScanDto(
+ cron_expression = '',
+ enabled = True,
+ )
+ """
+
+ def testSystemConfigLibraryScanDto(self):
+ """Test SystemConfigLibraryScanDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_library_watch_dto.py b/generated/immich/openapi_client/test/test_system_config_library_watch_dto.py
new file mode 100644
index 0000000..ef45a99
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_library_watch_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_library_watch_dto import SystemConfigLibraryWatchDto
+
+class TestSystemConfigLibraryWatchDto(unittest.TestCase):
+ """SystemConfigLibraryWatchDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigLibraryWatchDto:
+ """Test SystemConfigLibraryWatchDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigLibraryWatchDto`
+ """
+ model = SystemConfigLibraryWatchDto()
+ if include_optional:
+ return SystemConfigLibraryWatchDto(
+ enabled = True
+ )
+ else:
+ return SystemConfigLibraryWatchDto(
+ enabled = True,
+ )
+ """
+
+ def testSystemConfigLibraryWatchDto(self):
+ """Test SystemConfigLibraryWatchDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_logging_dto.py b/generated/immich/openapi_client/test/test_system_config_logging_dto.py
new file mode 100644
index 0000000..4978081
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_logging_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_logging_dto import SystemConfigLoggingDto
+
+class TestSystemConfigLoggingDto(unittest.TestCase):
+ """SystemConfigLoggingDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigLoggingDto:
+ """Test SystemConfigLoggingDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigLoggingDto`
+ """
+ model = SystemConfigLoggingDto()
+ if include_optional:
+ return SystemConfigLoggingDto(
+ enabled = True,
+ level = 'verbose'
+ )
+ else:
+ return SystemConfigLoggingDto(
+ enabled = True,
+ level = 'verbose',
+ )
+ """
+
+ def testSystemConfigLoggingDto(self):
+ """Test SystemConfigLoggingDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_machine_learning_dto.py b/generated/immich/openapi_client/test/test_system_config_machine_learning_dto.py
new file mode 100644
index 0000000..fdedfdc
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_machine_learning_dto.py
@@ -0,0 +1,83 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_machine_learning_dto import SystemConfigMachineLearningDto
+
+class TestSystemConfigMachineLearningDto(unittest.TestCase):
+ """SystemConfigMachineLearningDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigMachineLearningDto:
+ """Test SystemConfigMachineLearningDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigMachineLearningDto`
+ """
+ model = SystemConfigMachineLearningDto()
+ if include_optional:
+ return SystemConfigMachineLearningDto(
+ clip = generated.immich.openapi_client.models.clip_config.CLIPConfig(
+ enabled = True,
+ model_name = '', ),
+ duplicate_detection = generated.immich.openapi_client.models.duplicate_detection_config.DuplicateDetectionConfig(
+ enabled = True,
+ max_distance = 0.001, ),
+ enabled = True,
+ facial_recognition = generated.immich.openapi_client.models.facial_recognition_config.FacialRecognitionConfig(
+ enabled = True,
+ max_distance = 0.1,
+ min_faces = 1,
+ min_score = 0.1,
+ model_name = '', ),
+ url = '',
+ urls = [
+ ''
+ ]
+ )
+ else:
+ return SystemConfigMachineLearningDto(
+ clip = generated.immich.openapi_client.models.clip_config.CLIPConfig(
+ enabled = True,
+ model_name = '', ),
+ duplicate_detection = generated.immich.openapi_client.models.duplicate_detection_config.DuplicateDetectionConfig(
+ enabled = True,
+ max_distance = 0.001, ),
+ enabled = True,
+ facial_recognition = generated.immich.openapi_client.models.facial_recognition_config.FacialRecognitionConfig(
+ enabled = True,
+ max_distance = 0.1,
+ min_faces = 1,
+ min_score = 0.1,
+ model_name = '', ),
+ urls = [
+ ''
+ ],
+ )
+ """
+
+ def testSystemConfigMachineLearningDto(self):
+ """Test SystemConfigMachineLearningDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_map_dto.py b/generated/immich/openapi_client/test/test_system_config_map_dto.py
new file mode 100644
index 0000000..c86d6be
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_map_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_map_dto import SystemConfigMapDto
+
+class TestSystemConfigMapDto(unittest.TestCase):
+ """SystemConfigMapDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigMapDto:
+ """Test SystemConfigMapDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigMapDto`
+ """
+ model = SystemConfigMapDto()
+ if include_optional:
+ return SystemConfigMapDto(
+ dark_style = '',
+ enabled = True,
+ light_style = ''
+ )
+ else:
+ return SystemConfigMapDto(
+ dark_style = '',
+ enabled = True,
+ light_style = '',
+ )
+ """
+
+ def testSystemConfigMapDto(self):
+ """Test SystemConfigMapDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_metadata_dto.py b/generated/immich/openapi_client/test/test_system_config_metadata_dto.py
new file mode 100644
index 0000000..efbd901
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_metadata_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_metadata_dto import SystemConfigMetadataDto
+
+class TestSystemConfigMetadataDto(unittest.TestCase):
+ """SystemConfigMetadataDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigMetadataDto:
+ """Test SystemConfigMetadataDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigMetadataDto`
+ """
+ model = SystemConfigMetadataDto()
+ if include_optional:
+ return SystemConfigMetadataDto(
+ faces = generated.immich.openapi_client.models.system_config_faces_dto.SystemConfigFacesDto(
+ import = True, )
+ )
+ else:
+ return SystemConfigMetadataDto(
+ faces = generated.immich.openapi_client.models.system_config_faces_dto.SystemConfigFacesDto(
+ import = True, ),
+ )
+ """
+
+ def testSystemConfigMetadataDto(self):
+ """Test SystemConfigMetadataDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_new_version_check_dto.py b/generated/immich/openapi_client/test/test_system_config_new_version_check_dto.py
new file mode 100644
index 0000000..7f9c5de
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_new_version_check_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_new_version_check_dto import SystemConfigNewVersionCheckDto
+
+class TestSystemConfigNewVersionCheckDto(unittest.TestCase):
+ """SystemConfigNewVersionCheckDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigNewVersionCheckDto:
+ """Test SystemConfigNewVersionCheckDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigNewVersionCheckDto`
+ """
+ model = SystemConfigNewVersionCheckDto()
+ if include_optional:
+ return SystemConfigNewVersionCheckDto(
+ enabled = True
+ )
+ else:
+ return SystemConfigNewVersionCheckDto(
+ enabled = True,
+ )
+ """
+
+ def testSystemConfigNewVersionCheckDto(self):
+ """Test SystemConfigNewVersionCheckDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_notifications_dto.py b/generated/immich/openapi_client/test/test_system_config_notifications_dto.py
new file mode 100644
index 0000000..38e75ef
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_notifications_dto.py
@@ -0,0 +1,70 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_notifications_dto import SystemConfigNotificationsDto
+
+class TestSystemConfigNotificationsDto(unittest.TestCase):
+ """SystemConfigNotificationsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigNotificationsDto:
+ """Test SystemConfigNotificationsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigNotificationsDto`
+ """
+ model = SystemConfigNotificationsDto()
+ if include_optional:
+ return SystemConfigNotificationsDto(
+ smtp = generated.immich.openapi_client.models.system_config_smtp_dto.SystemConfigSmtpDto(
+ enabled = True,
+ from = '',
+ reply_to = '',
+ transport = generated.immich.openapi_client.models.system_config_smtp_transport_dto.SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = '', ), )
+ )
+ else:
+ return SystemConfigNotificationsDto(
+ smtp = generated.immich.openapi_client.models.system_config_smtp_dto.SystemConfigSmtpDto(
+ enabled = True,
+ from = '',
+ reply_to = '',
+ transport = generated.immich.openapi_client.models.system_config_smtp_transport_dto.SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = '', ), ),
+ )
+ """
+
+ def testSystemConfigNotificationsDto(self):
+ """Test SystemConfigNotificationsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_o_auth_dto.py b/generated/immich/openapi_client/test/test_system_config_o_auth_dto.py
new file mode 100644
index 0000000..b9015df
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_o_auth_dto.py
@@ -0,0 +1,80 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_o_auth_dto import SystemConfigOAuthDto
+
+class TestSystemConfigOAuthDto(unittest.TestCase):
+ """SystemConfigOAuthDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigOAuthDto:
+ """Test SystemConfigOAuthDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigOAuthDto`
+ """
+ model = SystemConfigOAuthDto()
+ if include_optional:
+ return SystemConfigOAuthDto(
+ auto_launch = True,
+ auto_register = True,
+ button_text = '',
+ client_id = '',
+ client_secret = '',
+ default_storage_quota = 0,
+ enabled = True,
+ issuer_url = '',
+ mobile_override_enabled = True,
+ mobile_redirect_uri = '',
+ profile_signing_algorithm = '',
+ scope = '',
+ signing_algorithm = '',
+ storage_label_claim = '',
+ storage_quota_claim = ''
+ )
+ else:
+ return SystemConfigOAuthDto(
+ auto_launch = True,
+ auto_register = True,
+ button_text = '',
+ client_id = '',
+ client_secret = '',
+ default_storage_quota = 0,
+ enabled = True,
+ issuer_url = '',
+ mobile_override_enabled = True,
+ mobile_redirect_uri = '',
+ profile_signing_algorithm = '',
+ scope = '',
+ signing_algorithm = '',
+ storage_label_claim = '',
+ storage_quota_claim = '',
+ )
+ """
+
+ def testSystemConfigOAuthDto(self):
+ """Test SystemConfigOAuthDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_password_login_dto.py b/generated/immich/openapi_client/test/test_system_config_password_login_dto.py
new file mode 100644
index 0000000..6e30361
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_password_login_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_password_login_dto import SystemConfigPasswordLoginDto
+
+class TestSystemConfigPasswordLoginDto(unittest.TestCase):
+ """SystemConfigPasswordLoginDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigPasswordLoginDto:
+ """Test SystemConfigPasswordLoginDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigPasswordLoginDto`
+ """
+ model = SystemConfigPasswordLoginDto()
+ if include_optional:
+ return SystemConfigPasswordLoginDto(
+ enabled = True
+ )
+ else:
+ return SystemConfigPasswordLoginDto(
+ enabled = True,
+ )
+ """
+
+ def testSystemConfigPasswordLoginDto(self):
+ """Test SystemConfigPasswordLoginDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_reverse_geocoding_dto.py b/generated/immich/openapi_client/test/test_system_config_reverse_geocoding_dto.py
new file mode 100644
index 0000000..a5d112d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_reverse_geocoding_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_reverse_geocoding_dto import SystemConfigReverseGeocodingDto
+
+class TestSystemConfigReverseGeocodingDto(unittest.TestCase):
+ """SystemConfigReverseGeocodingDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigReverseGeocodingDto:
+ """Test SystemConfigReverseGeocodingDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigReverseGeocodingDto`
+ """
+ model = SystemConfigReverseGeocodingDto()
+ if include_optional:
+ return SystemConfigReverseGeocodingDto(
+ enabled = True
+ )
+ else:
+ return SystemConfigReverseGeocodingDto(
+ enabled = True,
+ )
+ """
+
+ def testSystemConfigReverseGeocodingDto(self):
+ """Test SystemConfigReverseGeocodingDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_server_dto.py b/generated/immich/openapi_client/test/test_system_config_server_dto.py
new file mode 100644
index 0000000..82635aa
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_server_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_server_dto import SystemConfigServerDto
+
+class TestSystemConfigServerDto(unittest.TestCase):
+ """SystemConfigServerDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigServerDto:
+ """Test SystemConfigServerDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigServerDto`
+ """
+ model = SystemConfigServerDto()
+ if include_optional:
+ return SystemConfigServerDto(
+ external_domain = '',
+ login_page_message = '',
+ public_users = True
+ )
+ else:
+ return SystemConfigServerDto(
+ external_domain = '',
+ login_page_message = '',
+ public_users = True,
+ )
+ """
+
+ def testSystemConfigServerDto(self):
+ """Test SystemConfigServerDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_smtp_dto.py b/generated/immich/openapi_client/test/test_system_config_smtp_dto.py
new file mode 100644
index 0000000..d366141
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_smtp_dto.py
@@ -0,0 +1,68 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_smtp_dto import SystemConfigSmtpDto
+
+class TestSystemConfigSmtpDto(unittest.TestCase):
+ """SystemConfigSmtpDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigSmtpDto:
+ """Test SystemConfigSmtpDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigSmtpDto`
+ """
+ model = SystemConfigSmtpDto()
+ if include_optional:
+ return SystemConfigSmtpDto(
+ enabled = True,
+ var_from = '',
+ reply_to = '',
+ transport = generated.immich.openapi_client.models.system_config_smtp_transport_dto.SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = '', )
+ )
+ else:
+ return SystemConfigSmtpDto(
+ enabled = True,
+ var_from = '',
+ reply_to = '',
+ transport = generated.immich.openapi_client.models.system_config_smtp_transport_dto.SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = '', ),
+ )
+ """
+
+ def testSystemConfigSmtpDto(self):
+ """Test SystemConfigSmtpDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_smtp_transport_dto.py b/generated/immich/openapi_client/test/test_system_config_smtp_transport_dto.py
new file mode 100644
index 0000000..94ca39c
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_smtp_transport_dto.py
@@ -0,0 +1,60 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_smtp_transport_dto import SystemConfigSmtpTransportDto
+
+class TestSystemConfigSmtpTransportDto(unittest.TestCase):
+ """SystemConfigSmtpTransportDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigSmtpTransportDto:
+ """Test SystemConfigSmtpTransportDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigSmtpTransportDto`
+ """
+ model = SystemConfigSmtpTransportDto()
+ if include_optional:
+ return SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = ''
+ )
+ else:
+ return SystemConfigSmtpTransportDto(
+ host = '',
+ ignore_cert = True,
+ password = '',
+ port = 0,
+ username = '',
+ )
+ """
+
+ def testSystemConfigSmtpTransportDto(self):
+ """Test SystemConfigSmtpTransportDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_storage_template_dto.py b/generated/immich/openapi_client/test/test_system_config_storage_template_dto.py
new file mode 100644
index 0000000..4f95e8e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_storage_template_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_storage_template_dto import SystemConfigStorageTemplateDto
+
+class TestSystemConfigStorageTemplateDto(unittest.TestCase):
+ """SystemConfigStorageTemplateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigStorageTemplateDto:
+ """Test SystemConfigStorageTemplateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigStorageTemplateDto`
+ """
+ model = SystemConfigStorageTemplateDto()
+ if include_optional:
+ return SystemConfigStorageTemplateDto(
+ enabled = True,
+ hash_verification_enabled = True,
+ template = ''
+ )
+ else:
+ return SystemConfigStorageTemplateDto(
+ enabled = True,
+ hash_verification_enabled = True,
+ template = '',
+ )
+ """
+
+ def testSystemConfigStorageTemplateDto(self):
+ """Test SystemConfigStorageTemplateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_template_emails_dto.py b/generated/immich/openapi_client/test/test_system_config_template_emails_dto.py
new file mode 100644
index 0000000..7021e66
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_template_emails_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_template_emails_dto import SystemConfigTemplateEmailsDto
+
+class TestSystemConfigTemplateEmailsDto(unittest.TestCase):
+ """SystemConfigTemplateEmailsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigTemplateEmailsDto:
+ """Test SystemConfigTemplateEmailsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigTemplateEmailsDto`
+ """
+ model = SystemConfigTemplateEmailsDto()
+ if include_optional:
+ return SystemConfigTemplateEmailsDto(
+ album_invite_template = '',
+ album_update_template = '',
+ welcome_template = ''
+ )
+ else:
+ return SystemConfigTemplateEmailsDto(
+ album_invite_template = '',
+ album_update_template = '',
+ welcome_template = '',
+ )
+ """
+
+ def testSystemConfigTemplateEmailsDto(self):
+ """Test SystemConfigTemplateEmailsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_template_storage_option_dto.py b/generated/immich/openapi_client/test/test_system_config_template_storage_option_dto.py
new file mode 100644
index 0000000..ee8dd95
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_template_storage_option_dto.py
@@ -0,0 +1,98 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_template_storage_option_dto import SystemConfigTemplateStorageOptionDto
+
+class TestSystemConfigTemplateStorageOptionDto(unittest.TestCase):
+ """SystemConfigTemplateStorageOptionDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigTemplateStorageOptionDto:
+ """Test SystemConfigTemplateStorageOptionDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigTemplateStorageOptionDto`
+ """
+ model = SystemConfigTemplateStorageOptionDto()
+ if include_optional:
+ return SystemConfigTemplateStorageOptionDto(
+ day_options = [
+ ''
+ ],
+ hour_options = [
+ ''
+ ],
+ minute_options = [
+ ''
+ ],
+ month_options = [
+ ''
+ ],
+ preset_options = [
+ ''
+ ],
+ second_options = [
+ ''
+ ],
+ week_options = [
+ ''
+ ],
+ year_options = [
+ ''
+ ]
+ )
+ else:
+ return SystemConfigTemplateStorageOptionDto(
+ day_options = [
+ ''
+ ],
+ hour_options = [
+ ''
+ ],
+ minute_options = [
+ ''
+ ],
+ month_options = [
+ ''
+ ],
+ preset_options = [
+ ''
+ ],
+ second_options = [
+ ''
+ ],
+ week_options = [
+ ''
+ ],
+ year_options = [
+ ''
+ ],
+ )
+ """
+
+ def testSystemConfigTemplateStorageOptionDto(self):
+ """Test SystemConfigTemplateStorageOptionDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_templates_dto.py b/generated/immich/openapi_client/test/test_system_config_templates_dto.py
new file mode 100644
index 0000000..0160966
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_templates_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_templates_dto import SystemConfigTemplatesDto
+
+class TestSystemConfigTemplatesDto(unittest.TestCase):
+ """SystemConfigTemplatesDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigTemplatesDto:
+ """Test SystemConfigTemplatesDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigTemplatesDto`
+ """
+ model = SystemConfigTemplatesDto()
+ if include_optional:
+ return SystemConfigTemplatesDto(
+ email = generated.immich.openapi_client.models.system_config_template_emails_dto.SystemConfigTemplateEmailsDto(
+ album_invite_template = '',
+ album_update_template = '',
+ welcome_template = '', )
+ )
+ else:
+ return SystemConfigTemplatesDto(
+ email = generated.immich.openapi_client.models.system_config_template_emails_dto.SystemConfigTemplateEmailsDto(
+ album_invite_template = '',
+ album_update_template = '',
+ welcome_template = '', ),
+ )
+ """
+
+ def testSystemConfigTemplatesDto(self):
+ """Test SystemConfigTemplatesDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_theme_dto.py b/generated/immich/openapi_client/test/test_system_config_theme_dto.py
new file mode 100644
index 0000000..ba98a30
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_theme_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_theme_dto import SystemConfigThemeDto
+
+class TestSystemConfigThemeDto(unittest.TestCase):
+ """SystemConfigThemeDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigThemeDto:
+ """Test SystemConfigThemeDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigThemeDto`
+ """
+ model = SystemConfigThemeDto()
+ if include_optional:
+ return SystemConfigThemeDto(
+ custom_css = ''
+ )
+ else:
+ return SystemConfigThemeDto(
+ custom_css = '',
+ )
+ """
+
+ def testSystemConfigThemeDto(self):
+ """Test SystemConfigThemeDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_trash_dto.py b/generated/immich/openapi_client/test/test_system_config_trash_dto.py
new file mode 100644
index 0000000..8f89e73
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_trash_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_trash_dto import SystemConfigTrashDto
+
+class TestSystemConfigTrashDto(unittest.TestCase):
+ """SystemConfigTrashDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigTrashDto:
+ """Test SystemConfigTrashDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigTrashDto`
+ """
+ model = SystemConfigTrashDto()
+ if include_optional:
+ return SystemConfigTrashDto(
+ days = 0,
+ enabled = True
+ )
+ else:
+ return SystemConfigTrashDto(
+ days = 0,
+ enabled = True,
+ )
+ """
+
+ def testSystemConfigTrashDto(self):
+ """Test SystemConfigTrashDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_config_user_dto.py b/generated/immich/openapi_client/test/test_system_config_user_dto.py
new file mode 100644
index 0000000..fca97c2
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_config_user_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.system_config_user_dto import SystemConfigUserDto
+
+class TestSystemConfigUserDto(unittest.TestCase):
+ """SystemConfigUserDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> SystemConfigUserDto:
+ """Test SystemConfigUserDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `SystemConfigUserDto`
+ """
+ model = SystemConfigUserDto()
+ if include_optional:
+ return SystemConfigUserDto(
+ delete_delay = 1
+ )
+ else:
+ return SystemConfigUserDto(
+ delete_delay = 1,
+ )
+ """
+
+ def testSystemConfigUserDto(self):
+ """Test SystemConfigUserDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_system_metadata_api.py b/generated/immich/openapi_client/test/test_system_metadata_api.py
new file mode 100644
index 0000000..5f6ffea
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_system_metadata_api.py
@@ -0,0 +1,49 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.system_metadata_api import SystemMetadataApi
+
+
+class TestSystemMetadataApi(unittest.TestCase):
+ """SystemMetadataApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = SystemMetadataApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_admin_onboarding(self) -> None:
+ """Test case for get_admin_onboarding
+
+ """
+ pass
+
+ def test_get_reverse_geocoding_state(self) -> None:
+ """Test case for get_reverse_geocoding_state
+
+ """
+ pass
+
+ def test_update_admin_onboarding(self) -> None:
+ """Test case for update_admin_onboarding
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tag_bulk_assets_dto.py b/generated/immich/openapi_client/test/test_tag_bulk_assets_dto.py
new file mode 100644
index 0000000..0935b40
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tag_bulk_assets_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tag_bulk_assets_dto import TagBulkAssetsDto
+
+class TestTagBulkAssetsDto(unittest.TestCase):
+ """TagBulkAssetsDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagBulkAssetsDto:
+ """Test TagBulkAssetsDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagBulkAssetsDto`
+ """
+ model = TagBulkAssetsDto()
+ if include_optional:
+ return TagBulkAssetsDto(
+ asset_ids = [
+ ''
+ ],
+ tag_ids = [
+ ''
+ ]
+ )
+ else:
+ return TagBulkAssetsDto(
+ asset_ids = [
+ ''
+ ],
+ tag_ids = [
+ ''
+ ],
+ )
+ """
+
+ def testTagBulkAssetsDto(self):
+ """Test TagBulkAssetsDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tag_bulk_assets_response_dto.py b/generated/immich/openapi_client/test/test_tag_bulk_assets_response_dto.py
new file mode 100644
index 0000000..46fe1e5
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tag_bulk_assets_response_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tag_bulk_assets_response_dto import TagBulkAssetsResponseDto
+
+class TestTagBulkAssetsResponseDto(unittest.TestCase):
+ """TagBulkAssetsResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagBulkAssetsResponseDto:
+ """Test TagBulkAssetsResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagBulkAssetsResponseDto`
+ """
+ model = TagBulkAssetsResponseDto()
+ if include_optional:
+ return TagBulkAssetsResponseDto(
+ count = 56
+ )
+ else:
+ return TagBulkAssetsResponseDto(
+ count = 56,
+ )
+ """
+
+ def testTagBulkAssetsResponseDto(self):
+ """Test TagBulkAssetsResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tag_create_dto.py b/generated/immich/openapi_client/test/test_tag_create_dto.py
new file mode 100644
index 0000000..1c665c6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tag_create_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tag_create_dto import TagCreateDto
+
+class TestTagCreateDto(unittest.TestCase):
+ """TagCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagCreateDto:
+ """Test TagCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagCreateDto`
+ """
+ model = TagCreateDto()
+ if include_optional:
+ return TagCreateDto(
+ color = '#325375E0',
+ name = '',
+ parent_id = ''
+ )
+ else:
+ return TagCreateDto(
+ name = '',
+ )
+ """
+
+ def testTagCreateDto(self):
+ """Test TagCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tag_response_dto.py b/generated/immich/openapi_client/test/test_tag_response_dto.py
new file mode 100644
index 0000000..d996679
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tag_response_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tag_response_dto import TagResponseDto
+
+class TestTagResponseDto(unittest.TestCase):
+ """TagResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagResponseDto:
+ """Test TagResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagResponseDto`
+ """
+ model = TagResponseDto()
+ if include_optional:
+ return TagResponseDto(
+ color = '',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ parent_id = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = ''
+ )
+ else:
+ return TagResponseDto(
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ id = '',
+ name = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ value = '',
+ )
+ """
+
+ def testTagResponseDto(self):
+ """Test TagResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tag_update_dto.py b/generated/immich/openapi_client/test/test_tag_update_dto.py
new file mode 100644
index 0000000..2cae46e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tag_update_dto.py
@@ -0,0 +1,51 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tag_update_dto import TagUpdateDto
+
+class TestTagUpdateDto(unittest.TestCase):
+ """TagUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagUpdateDto:
+ """Test TagUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagUpdateDto`
+ """
+ model = TagUpdateDto()
+ if include_optional:
+ return TagUpdateDto(
+ color = ''
+ )
+ else:
+ return TagUpdateDto(
+ )
+ """
+
+ def testTagUpdateDto(self):
+ """Test TagUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tag_upsert_dto.py b/generated/immich/openapi_client/test/test_tag_upsert_dto.py
new file mode 100644
index 0000000..672a1e3
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tag_upsert_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tag_upsert_dto import TagUpsertDto
+
+class TestTagUpsertDto(unittest.TestCase):
+ """TagUpsertDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagUpsertDto:
+ """Test TagUpsertDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagUpsertDto`
+ """
+ model = TagUpsertDto()
+ if include_optional:
+ return TagUpsertDto(
+ tags = [
+ ''
+ ]
+ )
+ else:
+ return TagUpsertDto(
+ tags = [
+ ''
+ ],
+ )
+ """
+
+ def testTagUpsertDto(self):
+ """Test TagUpsertDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tags_api.py b/generated/immich/openapi_client/test/test_tags_api.py
new file mode 100644
index 0000000..15f56eb
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tags_api.py
@@ -0,0 +1,85 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.tags_api import TagsApi
+
+
+class TestTagsApi(unittest.TestCase):
+ """TagsApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = TagsApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_bulk_tag_assets(self) -> None:
+ """Test case for bulk_tag_assets
+
+ """
+ pass
+
+ def test_create_tag(self) -> None:
+ """Test case for create_tag
+
+ """
+ pass
+
+ def test_delete_tag(self) -> None:
+ """Test case for delete_tag
+
+ """
+ pass
+
+ def test_get_all_tags(self) -> None:
+ """Test case for get_all_tags
+
+ """
+ pass
+
+ def test_get_tag_by_id(self) -> None:
+ """Test case for get_tag_by_id
+
+ """
+ pass
+
+ def test_tag_assets(self) -> None:
+ """Test case for tag_assets
+
+ """
+ pass
+
+ def test_untag_assets(self) -> None:
+ """Test case for untag_assets
+
+ """
+ pass
+
+ def test_update_tag(self) -> None:
+ """Test case for update_tag
+
+ """
+ pass
+
+ def test_upsert_tags(self) -> None:
+ """Test case for upsert_tags
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tags_response.py b/generated/immich/openapi_client/test/test_tags_response.py
new file mode 100644
index 0000000..6c373ae
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tags_response.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tags_response import TagsResponse
+
+class TestTagsResponse(unittest.TestCase):
+ """TagsResponse unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagsResponse:
+ """Test TagsResponse
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagsResponse`
+ """
+ model = TagsResponse()
+ if include_optional:
+ return TagsResponse(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return TagsResponse(
+ enabled = True,
+ sidebar_web = True,
+ )
+ """
+
+ def testTagsResponse(self):
+ """Test TagsResponse"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tags_update.py b/generated/immich/openapi_client/test/test_tags_update.py
new file mode 100644
index 0000000..6f3c692
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tags_update.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tags_update import TagsUpdate
+
+class TestTagsUpdate(unittest.TestCase):
+ """TagsUpdate unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TagsUpdate:
+ """Test TagsUpdate
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TagsUpdate`
+ """
+ model = TagsUpdate()
+ if include_optional:
+ return TagsUpdate(
+ enabled = True,
+ sidebar_web = True
+ )
+ else:
+ return TagsUpdate(
+ )
+ """
+
+ def testTagsUpdate(self):
+ """Test TagsUpdate"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_template_dto.py b/generated/immich/openapi_client/test/test_template_dto.py
new file mode 100644
index 0000000..9ee8706
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_template_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.template_dto import TemplateDto
+
+class TestTemplateDto(unittest.TestCase):
+ """TemplateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TemplateDto:
+ """Test TemplateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TemplateDto`
+ """
+ model = TemplateDto()
+ if include_optional:
+ return TemplateDto(
+ template = ''
+ )
+ else:
+ return TemplateDto(
+ template = '',
+ )
+ """
+
+ def testTemplateDto(self):
+ """Test TemplateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_template_response_dto.py b/generated/immich/openapi_client/test/test_template_response_dto.py
new file mode 100644
index 0000000..8530eaa
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_template_response_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.template_response_dto import TemplateResponseDto
+
+class TestTemplateResponseDto(unittest.TestCase):
+ """TemplateResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TemplateResponseDto:
+ """Test TemplateResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TemplateResponseDto`
+ """
+ model = TemplateResponseDto()
+ if include_optional:
+ return TemplateResponseDto(
+ html = '',
+ name = ''
+ )
+ else:
+ return TemplateResponseDto(
+ html = '',
+ name = '',
+ )
+ """
+
+ def testTemplateResponseDto(self):
+ """Test TemplateResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_test_email_response_dto.py b/generated/immich/openapi_client/test/test_test_email_response_dto.py
new file mode 100644
index 0000000..8539df0
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_test_email_response_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.test_email_response_dto import TestEmailResponseDto
+
+class TestTestEmailResponseDto(unittest.TestCase):
+ """TestEmailResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TestEmailResponseDto:
+ """Test TestEmailResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TestEmailResponseDto`
+ """
+ model = TestEmailResponseDto()
+ if include_optional:
+ return TestEmailResponseDto(
+ message_id = ''
+ )
+ else:
+ return TestEmailResponseDto(
+ message_id = '',
+ )
+ """
+
+ def testTestEmailResponseDto(self):
+ """Test TestEmailResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_time_bucket_response_dto.py b/generated/immich/openapi_client/test/test_time_bucket_response_dto.py
new file mode 100644
index 0000000..f23541a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_time_bucket_response_dto.py
@@ -0,0 +1,54 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.time_bucket_response_dto import TimeBucketResponseDto
+
+class TestTimeBucketResponseDto(unittest.TestCase):
+ """TimeBucketResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TimeBucketResponseDto:
+ """Test TimeBucketResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TimeBucketResponseDto`
+ """
+ model = TimeBucketResponseDto()
+ if include_optional:
+ return TimeBucketResponseDto(
+ count = 56,
+ time_bucket = ''
+ )
+ else:
+ return TimeBucketResponseDto(
+ count = 56,
+ time_bucket = '',
+ )
+ """
+
+ def testTimeBucketResponseDto(self):
+ """Test TimeBucketResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_time_bucket_size.py b/generated/immich/openapi_client/test/test_time_bucket_size.py
new file mode 100644
index 0000000..ffe9b9a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_time_bucket_size.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.time_bucket_size import TimeBucketSize
+
+class TestTimeBucketSize(unittest.TestCase):
+ """TimeBucketSize unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTimeBucketSize(self):
+ """Test TimeBucketSize"""
+ # inst = TimeBucketSize()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_timeline_api.py b/generated/immich/openapi_client/test/test_timeline_api.py
new file mode 100644
index 0000000..08f2d92
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_timeline_api.py
@@ -0,0 +1,43 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.timeline_api import TimelineApi
+
+
+class TestTimelineApi(unittest.TestCase):
+ """TimelineApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = TimelineApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_time_bucket(self) -> None:
+ """Test case for get_time_bucket
+
+ """
+ pass
+
+ def test_get_time_buckets(self) -> None:
+ """Test case for get_time_buckets
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_tone_mapping.py b/generated/immich/openapi_client/test/test_tone_mapping.py
new file mode 100644
index 0000000..ca9f80e
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_tone_mapping.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.tone_mapping import ToneMapping
+
+class TestToneMapping(unittest.TestCase):
+ """ToneMapping unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testToneMapping(self):
+ """Test ToneMapping"""
+ # inst = ToneMapping()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_transcode_hw_accel.py b/generated/immich/openapi_client/test/test_transcode_hw_accel.py
new file mode 100644
index 0000000..a7c7503
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_transcode_hw_accel.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.transcode_hw_accel import TranscodeHWAccel
+
+class TestTranscodeHWAccel(unittest.TestCase):
+ """TranscodeHWAccel unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTranscodeHWAccel(self):
+ """Test TranscodeHWAccel"""
+ # inst = TranscodeHWAccel()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_transcode_policy.py b/generated/immich/openapi_client/test/test_transcode_policy.py
new file mode 100644
index 0000000..0337eec
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_transcode_policy.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.transcode_policy import TranscodePolicy
+
+class TestTranscodePolicy(unittest.TestCase):
+ """TranscodePolicy unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testTranscodePolicy(self):
+ """Test TranscodePolicy"""
+ # inst = TranscodePolicy()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_trash_api.py b/generated/immich/openapi_client/test/test_trash_api.py
new file mode 100644
index 0000000..6b8e7c7
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_trash_api.py
@@ -0,0 +1,49 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.trash_api import TrashApi
+
+
+class TestTrashApi(unittest.TestCase):
+ """TrashApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = TrashApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_empty_trash(self) -> None:
+ """Test case for empty_trash
+
+ """
+ pass
+
+ def test_restore_assets(self) -> None:
+ """Test case for restore_assets
+
+ """
+ pass
+
+ def test_restore_trash(self) -> None:
+ """Test case for restore_trash
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_trash_response_dto.py b/generated/immich/openapi_client/test/test_trash_response_dto.py
new file mode 100644
index 0000000..d92f8e0
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_trash_response_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.trash_response_dto import TrashResponseDto
+
+class TestTrashResponseDto(unittest.TestCase):
+ """TrashResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> TrashResponseDto:
+ """Test TrashResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `TrashResponseDto`
+ """
+ model = TrashResponseDto()
+ if include_optional:
+ return TrashResponseDto(
+ count = 56
+ )
+ else:
+ return TrashResponseDto(
+ count = 56,
+ )
+ """
+
+ def testTrashResponseDto(self):
+ """Test TrashResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_update_album_dto.py b/generated/immich/openapi_client/test/test_update_album_dto.py
new file mode 100644
index 0000000..93a808a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_update_album_dto.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.update_album_dto import UpdateAlbumDto
+
+class TestUpdateAlbumDto(unittest.TestCase):
+ """UpdateAlbumDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UpdateAlbumDto:
+ """Test UpdateAlbumDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UpdateAlbumDto`
+ """
+ model = UpdateAlbumDto()
+ if include_optional:
+ return UpdateAlbumDto(
+ album_name = '',
+ album_thumbnail_asset_id = '',
+ description = '',
+ is_activity_enabled = True,
+ order = 'asc'
+ )
+ else:
+ return UpdateAlbumDto(
+ )
+ """
+
+ def testUpdateAlbumDto(self):
+ """Test UpdateAlbumDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_update_album_user_dto.py b/generated/immich/openapi_client/test/test_update_album_user_dto.py
new file mode 100644
index 0000000..6baf083
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_update_album_user_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.update_album_user_dto import UpdateAlbumUserDto
+
+class TestUpdateAlbumUserDto(unittest.TestCase):
+ """UpdateAlbumUserDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UpdateAlbumUserDto:
+ """Test UpdateAlbumUserDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UpdateAlbumUserDto`
+ """
+ model = UpdateAlbumUserDto()
+ if include_optional:
+ return UpdateAlbumUserDto(
+ role = 'editor'
+ )
+ else:
+ return UpdateAlbumUserDto(
+ role = 'editor',
+ )
+ """
+
+ def testUpdateAlbumUserDto(self):
+ """Test UpdateAlbumUserDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_update_asset_dto.py b/generated/immich/openapi_client/test/test_update_asset_dto.py
new file mode 100644
index 0000000..ffe2582
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_update_asset_dto.py
@@ -0,0 +1,58 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.update_asset_dto import UpdateAssetDto
+
+class TestUpdateAssetDto(unittest.TestCase):
+ """UpdateAssetDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UpdateAssetDto:
+ """Test UpdateAssetDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UpdateAssetDto`
+ """
+ model = UpdateAssetDto()
+ if include_optional:
+ return UpdateAssetDto(
+ date_time_original = '',
+ description = '',
+ is_archived = True,
+ is_favorite = True,
+ latitude = 1.337,
+ live_photo_video_id = '',
+ longitude = 1.337,
+ rating = -1
+ )
+ else:
+ return UpdateAssetDto(
+ )
+ """
+
+ def testUpdateAssetDto(self):
+ """Test UpdateAssetDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_update_library_dto.py b/generated/immich/openapi_client/test/test_update_library_dto.py
new file mode 100644
index 0000000..0237baa
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_update_library_dto.py
@@ -0,0 +1,57 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.update_library_dto import UpdateLibraryDto
+
+class TestUpdateLibraryDto(unittest.TestCase):
+ """UpdateLibraryDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UpdateLibraryDto:
+ """Test UpdateLibraryDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UpdateLibraryDto`
+ """
+ model = UpdateLibraryDto()
+ if include_optional:
+ return UpdateLibraryDto(
+ exclusion_patterns = [
+ ''
+ ],
+ import_paths = [
+ ''
+ ],
+ name = ''
+ )
+ else:
+ return UpdateLibraryDto(
+ )
+ """
+
+ def testUpdateLibraryDto(self):
+ """Test UpdateLibraryDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_update_partner_dto.py b/generated/immich/openapi_client/test/test_update_partner_dto.py
new file mode 100644
index 0000000..6d79459
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_update_partner_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.update_partner_dto import UpdatePartnerDto
+
+class TestUpdatePartnerDto(unittest.TestCase):
+ """UpdatePartnerDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UpdatePartnerDto:
+ """Test UpdatePartnerDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UpdatePartnerDto`
+ """
+ model = UpdatePartnerDto()
+ if include_optional:
+ return UpdatePartnerDto(
+ in_timeline = True
+ )
+ else:
+ return UpdatePartnerDto(
+ in_timeline = True,
+ )
+ """
+
+ def testUpdatePartnerDto(self):
+ """Test UpdatePartnerDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_usage_by_user_dto.py b/generated/immich/openapi_client/test/test_usage_by_user_dto.py
new file mode 100644
index 0000000..0e1e5a7
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_usage_by_user_dto.py
@@ -0,0 +1,66 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.usage_by_user_dto import UsageByUserDto
+
+class TestUsageByUserDto(unittest.TestCase):
+ """UsageByUserDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UsageByUserDto:
+ """Test UsageByUserDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UsageByUserDto`
+ """
+ model = UsageByUserDto()
+ if include_optional:
+ return UsageByUserDto(
+ photos = 56,
+ quota_size_in_bytes = 56,
+ usage = 56,
+ usage_photos = 56,
+ usage_videos = 56,
+ user_id = '',
+ user_name = '',
+ videos = 56
+ )
+ else:
+ return UsageByUserDto(
+ photos = 56,
+ quota_size_in_bytes = 56,
+ usage = 56,
+ usage_photos = 56,
+ usage_videos = 56,
+ user_id = '',
+ user_name = '',
+ videos = 56,
+ )
+ """
+
+ def testUsageByUserDto(self):
+ """Test UsageByUserDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_admin_create_dto.py b/generated/immich/openapi_client/test/test_user_admin_create_dto.py
new file mode 100644
index 0000000..499d851
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_admin_create_dto.py
@@ -0,0 +1,60 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_admin_create_dto import UserAdminCreateDto
+
+class TestUserAdminCreateDto(unittest.TestCase):
+ """UserAdminCreateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserAdminCreateDto:
+ """Test UserAdminCreateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserAdminCreateDto`
+ """
+ model = UserAdminCreateDto()
+ if include_optional:
+ return UserAdminCreateDto(
+ email = '',
+ name = '',
+ notify = True,
+ password = '',
+ quota_size_in_bytes = 0,
+ should_change_password = True,
+ storage_label = ''
+ )
+ else:
+ return UserAdminCreateDto(
+ email = '',
+ name = '',
+ password = '',
+ )
+ """
+
+ def testUserAdminCreateDto(self):
+ """Test UserAdminCreateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_admin_delete_dto.py b/generated/immich/openapi_client/test/test_user_admin_delete_dto.py
new file mode 100644
index 0000000..5423b1f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_admin_delete_dto.py
@@ -0,0 +1,51 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_admin_delete_dto import UserAdminDeleteDto
+
+class TestUserAdminDeleteDto(unittest.TestCase):
+ """UserAdminDeleteDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserAdminDeleteDto:
+ """Test UserAdminDeleteDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserAdminDeleteDto`
+ """
+ model = UserAdminDeleteDto()
+ if include_optional:
+ return UserAdminDeleteDto(
+ force = True
+ )
+ else:
+ return UserAdminDeleteDto(
+ )
+ """
+
+ def testUserAdminDeleteDto(self):
+ """Test UserAdminDeleteDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_admin_response_dto.py b/generated/immich/openapi_client/test/test_user_admin_response_dto.py
new file mode 100644
index 0000000..9526399
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_admin_response_dto.py
@@ -0,0 +1,90 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_admin_response_dto import UserAdminResponseDto
+
+class TestUserAdminResponseDto(unittest.TestCase):
+ """UserAdminResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserAdminResponseDto:
+ """Test UserAdminResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserAdminResponseDto`
+ """
+ model = UserAdminResponseDto()
+ if include_optional:
+ return UserAdminResponseDto(
+ avatar_color = 'primary',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deleted_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ email = '',
+ id = '',
+ is_admin = True,
+ license = generated.immich.openapi_client.models.user_license.UserLicense(
+ activated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ activation_key = '',
+ license_key = '', ),
+ name = '',
+ oauth_id = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '',
+ quota_size_in_bytes = 56,
+ quota_usage_in_bytes = 56,
+ should_change_password = True,
+ status = 'active',
+ storage_label = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
+ )
+ else:
+ return UserAdminResponseDto(
+ avatar_color = 'primary',
+ created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ deleted_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ email = '',
+ id = '',
+ is_admin = True,
+ license = generated.immich.openapi_client.models.user_license.UserLicense(
+ activated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ activation_key = '',
+ license_key = '', ),
+ name = '',
+ oauth_id = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '',
+ quota_size_in_bytes = 56,
+ quota_usage_in_bytes = 56,
+ should_change_password = True,
+ status = 'active',
+ storage_label = '',
+ updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ )
+ """
+
+ def testUserAdminResponseDto(self):
+ """Test UserAdminResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_admin_update_dto.py b/generated/immich/openapi_client/test/test_user_admin_update_dto.py
new file mode 100644
index 0000000..a11911a
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_admin_update_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_admin_update_dto import UserAdminUpdateDto
+
+class TestUserAdminUpdateDto(unittest.TestCase):
+ """UserAdminUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserAdminUpdateDto:
+ """Test UserAdminUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserAdminUpdateDto`
+ """
+ model = UserAdminUpdateDto()
+ if include_optional:
+ return UserAdminUpdateDto(
+ email = '',
+ name = '',
+ password = '',
+ quota_size_in_bytes = 0,
+ should_change_password = True,
+ storage_label = ''
+ )
+ else:
+ return UserAdminUpdateDto(
+ )
+ """
+
+ def testUserAdminUpdateDto(self):
+ """Test UserAdminUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_avatar_color.py b/generated/immich/openapi_client/test/test_user_avatar_color.py
new file mode 100644
index 0000000..e1299d6
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_avatar_color.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_avatar_color import UserAvatarColor
+
+class TestUserAvatarColor(unittest.TestCase):
+ """UserAvatarColor unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testUserAvatarColor(self):
+ """Test UserAvatarColor"""
+ # inst = UserAvatarColor()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_license.py b/generated/immich/openapi_client/test/test_user_license.py
new file mode 100644
index 0000000..6d8bf00
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_license.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_license import UserLicense
+
+class TestUserLicense(unittest.TestCase):
+ """UserLicense unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserLicense:
+ """Test UserLicense
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserLicense`
+ """
+ model = UserLicense()
+ if include_optional:
+ return UserLicense(
+ activated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ activation_key = '',
+ license_key = ''
+ )
+ else:
+ return UserLicense(
+ activated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ activation_key = '',
+ license_key = '',
+ )
+ """
+
+ def testUserLicense(self):
+ """Test UserLicense"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_preferences_response_dto.py b/generated/immich/openapi_client/test/test_user_preferences_response_dto.py
new file mode 100644
index 0000000..843c213
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_preferences_response_dto.py
@@ -0,0 +1,106 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_preferences_response_dto import UserPreferencesResponseDto
+
+class TestUserPreferencesResponseDto(unittest.TestCase):
+ """UserPreferencesResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserPreferencesResponseDto:
+ """Test UserPreferencesResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserPreferencesResponseDto`
+ """
+ model = UserPreferencesResponseDto()
+ if include_optional:
+ return UserPreferencesResponseDto(
+ avatar = generated.immich.openapi_client.models.avatar_response.AvatarResponse(
+ color = null, ),
+ download = generated.immich.openapi_client.models.download_response.DownloadResponse(
+ archive_size = 56,
+ include_embedded_videos = True, ),
+ email_notifications = generated.immich.openapi_client.models.email_notifications_response.EmailNotificationsResponse(
+ album_invite = True,
+ album_update = True,
+ enabled = True, ),
+ folders = generated.immich.openapi_client.models.folders_response.FoldersResponse(
+ enabled = True,
+ sidebar_web = True, ),
+ memories = generated.immich.openapi_client.models.memories_response.MemoriesResponse(
+ enabled = True, ),
+ people = generated.immich.openapi_client.models.people_response.PeopleResponse(
+ enabled = True,
+ sidebar_web = True, ),
+ purchase = generated.immich.openapi_client.models.purchase_response.PurchaseResponse(
+ hide_buy_button_until = '',
+ show_support_badge = True, ),
+ ratings = generated.immich.openapi_client.models.ratings_response.RatingsResponse(
+ enabled = True, ),
+ shared_links = generated.immich.openapi_client.models.shared_links_response.SharedLinksResponse(
+ enabled = True,
+ sidebar_web = True, ),
+ tags = generated.immich.openapi_client.models.tags_response.TagsResponse(
+ enabled = True,
+ sidebar_web = True, )
+ )
+ else:
+ return UserPreferencesResponseDto(
+ avatar = generated.immich.openapi_client.models.avatar_response.AvatarResponse(
+ color = null, ),
+ download = generated.immich.openapi_client.models.download_response.DownloadResponse(
+ archive_size = 56,
+ include_embedded_videos = True, ),
+ email_notifications = generated.immich.openapi_client.models.email_notifications_response.EmailNotificationsResponse(
+ album_invite = True,
+ album_update = True,
+ enabled = True, ),
+ folders = generated.immich.openapi_client.models.folders_response.FoldersResponse(
+ enabled = True,
+ sidebar_web = True, ),
+ memories = generated.immich.openapi_client.models.memories_response.MemoriesResponse(
+ enabled = True, ),
+ people = generated.immich.openapi_client.models.people_response.PeopleResponse(
+ enabled = True,
+ sidebar_web = True, ),
+ purchase = generated.immich.openapi_client.models.purchase_response.PurchaseResponse(
+ hide_buy_button_until = '',
+ show_support_badge = True, ),
+ ratings = generated.immich.openapi_client.models.ratings_response.RatingsResponse(
+ enabled = True, ),
+ shared_links = generated.immich.openapi_client.models.shared_links_response.SharedLinksResponse(
+ enabled = True,
+ sidebar_web = True, ),
+ tags = generated.immich.openapi_client.models.tags_response.TagsResponse(
+ enabled = True,
+ sidebar_web = True, ),
+ )
+ """
+
+ def testUserPreferencesResponseDto(self):
+ """Test UserPreferencesResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_preferences_update_dto.py b/generated/immich/openapi_client/test/test_user_preferences_update_dto.py
new file mode 100644
index 0000000..6cb4305
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_preferences_update_dto.py
@@ -0,0 +1,78 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_preferences_update_dto import UserPreferencesUpdateDto
+
+class TestUserPreferencesUpdateDto(unittest.TestCase):
+ """UserPreferencesUpdateDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserPreferencesUpdateDto:
+ """Test UserPreferencesUpdateDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserPreferencesUpdateDto`
+ """
+ model = UserPreferencesUpdateDto()
+ if include_optional:
+ return UserPreferencesUpdateDto(
+ avatar = generated.immich.openapi_client.models.avatar_update.AvatarUpdate(
+ color = null, ),
+ download = generated.immich.openapi_client.models.download_update.DownloadUpdate(
+ archive_size = 1,
+ include_embedded_videos = True, ),
+ email_notifications = generated.immich.openapi_client.models.email_notifications_update.EmailNotificationsUpdate(
+ album_invite = True,
+ album_update = True,
+ enabled = True, ),
+ folders = generated.immich.openapi_client.models.folders_update.FoldersUpdate(
+ enabled = True,
+ sidebar_web = True, ),
+ memories = generated.immich.openapi_client.models.memories_update.MemoriesUpdate(
+ enabled = True, ),
+ people = generated.immich.openapi_client.models.people_update.PeopleUpdate(
+ enabled = True,
+ sidebar_web = True, ),
+ purchase = generated.immich.openapi_client.models.purchase_update.PurchaseUpdate(
+ hide_buy_button_until = '',
+ show_support_badge = True, ),
+ ratings = generated.immich.openapi_client.models.ratings_update.RatingsUpdate(
+ enabled = True, ),
+ shared_links = generated.immich.openapi_client.models.shared_links_update.SharedLinksUpdate(
+ enabled = True,
+ sidebar_web = True, ),
+ tags = generated.immich.openapi_client.models.tags_update.TagsUpdate(
+ enabled = True,
+ sidebar_web = True, )
+ )
+ else:
+ return UserPreferencesUpdateDto(
+ )
+ """
+
+ def testUserPreferencesUpdateDto(self):
+ """Test UserPreferencesUpdateDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_response_dto.py b/generated/immich/openapi_client/test/test_user_response_dto.py
new file mode 100644
index 0000000..2a31fd2
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_response_dto.py
@@ -0,0 +1,62 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_response_dto import UserResponseDto
+
+class TestUserResponseDto(unittest.TestCase):
+ """UserResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserResponseDto:
+ """Test UserResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserResponseDto`
+ """
+ model = UserResponseDto()
+ if include_optional:
+ return UserResponseDto(
+ avatar_color = 'primary',
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = ''
+ )
+ else:
+ return UserResponseDto(
+ avatar_color = 'primary',
+ email = '',
+ id = '',
+ name = '',
+ profile_changed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
+ profile_image_path = '',
+ )
+ """
+
+ def testUserResponseDto(self):
+ """Test UserResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_status.py b/generated/immich/openapi_client/test/test_user_status.py
new file mode 100644
index 0000000..25c7385
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_status.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_status import UserStatus
+
+class TestUserStatus(unittest.TestCase):
+ """UserStatus unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testUserStatus(self):
+ """Test UserStatus"""
+ # inst = UserStatus()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_user_update_me_dto.py b/generated/immich/openapi_client/test/test_user_update_me_dto.py
new file mode 100644
index 0000000..4152c1f
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_user_update_me_dto.py
@@ -0,0 +1,53 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.user_update_me_dto import UserUpdateMeDto
+
+class TestUserUpdateMeDto(unittest.TestCase):
+ """UserUpdateMeDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> UserUpdateMeDto:
+ """Test UserUpdateMeDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `UserUpdateMeDto`
+ """
+ model = UserUpdateMeDto()
+ if include_optional:
+ return UserUpdateMeDto(
+ email = '',
+ name = '',
+ password = ''
+ )
+ else:
+ return UserUpdateMeDto(
+ )
+ """
+
+ def testUserUpdateMeDto(self):
+ """Test UserUpdateMeDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_users_admin_api.py b/generated/immich/openapi_client/test/test_users_admin_api.py
new file mode 100644
index 0000000..75db363
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_users_admin_api.py
@@ -0,0 +1,79 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.users_admin_api import UsersAdminApi
+
+
+class TestUsersAdminApi(unittest.TestCase):
+ """UsersAdminApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = UsersAdminApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_user_admin(self) -> None:
+ """Test case for create_user_admin
+
+ """
+ pass
+
+ def test_delete_user_admin(self) -> None:
+ """Test case for delete_user_admin
+
+ """
+ pass
+
+ def test_get_user_admin(self) -> None:
+ """Test case for get_user_admin
+
+ """
+ pass
+
+ def test_get_user_preferences_admin(self) -> None:
+ """Test case for get_user_preferences_admin
+
+ """
+ pass
+
+ def test_restore_user_admin(self) -> None:
+ """Test case for restore_user_admin
+
+ """
+ pass
+
+ def test_search_users_admin(self) -> None:
+ """Test case for search_users_admin
+
+ """
+ pass
+
+ def test_update_user_admin(self) -> None:
+ """Test case for update_user_admin
+
+ """
+ pass
+
+ def test_update_user_preferences_admin(self) -> None:
+ """Test case for update_user_preferences_admin
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_users_api.py b/generated/immich/openapi_client/test/test_users_api.py
new file mode 100644
index 0000000..1dd617d
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_users_api.py
@@ -0,0 +1,103 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.users_api import UsersApi
+
+
+class TestUsersApi(unittest.TestCase):
+ """UsersApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = UsersApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_create_profile_image(self) -> None:
+ """Test case for create_profile_image
+
+ """
+ pass
+
+ def test_delete_profile_image(self) -> None:
+ """Test case for delete_profile_image
+
+ """
+ pass
+
+ def test_delete_user_license(self) -> None:
+ """Test case for delete_user_license
+
+ """
+ pass
+
+ def test_get_my_preferences(self) -> None:
+ """Test case for get_my_preferences
+
+ """
+ pass
+
+ def test_get_my_user(self) -> None:
+ """Test case for get_my_user
+
+ """
+ pass
+
+ def test_get_profile_image(self) -> None:
+ """Test case for get_profile_image
+
+ """
+ pass
+
+ def test_get_user(self) -> None:
+ """Test case for get_user
+
+ """
+ pass
+
+ def test_get_user_license(self) -> None:
+ """Test case for get_user_license
+
+ """
+ pass
+
+ def test_search_users(self) -> None:
+ """Test case for search_users
+
+ """
+ pass
+
+ def test_set_user_license(self) -> None:
+ """Test case for set_user_license
+
+ """
+ pass
+
+ def test_update_my_preferences(self) -> None:
+ """Test case for update_my_preferences
+
+ """
+ pass
+
+ def test_update_my_user(self) -> None:
+ """Test case for update_my_user
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_validate_access_token_response_dto.py b/generated/immich/openapi_client/test/test_validate_access_token_response_dto.py
new file mode 100644
index 0000000..f2805f2
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_validate_access_token_response_dto.py
@@ -0,0 +1,52 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.validate_access_token_response_dto import ValidateAccessTokenResponseDto
+
+class TestValidateAccessTokenResponseDto(unittest.TestCase):
+ """ValidateAccessTokenResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ValidateAccessTokenResponseDto:
+ """Test ValidateAccessTokenResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ValidateAccessTokenResponseDto`
+ """
+ model = ValidateAccessTokenResponseDto()
+ if include_optional:
+ return ValidateAccessTokenResponseDto(
+ auth_status = True
+ )
+ else:
+ return ValidateAccessTokenResponseDto(
+ auth_status = True,
+ )
+ """
+
+ def testValidateAccessTokenResponseDto(self):
+ """Test ValidateAccessTokenResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_validate_library_dto.py b/generated/immich/openapi_client/test/test_validate_library_dto.py
new file mode 100644
index 0000000..a01a0f7
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_validate_library_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.validate_library_dto import ValidateLibraryDto
+
+class TestValidateLibraryDto(unittest.TestCase):
+ """ValidateLibraryDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ValidateLibraryDto:
+ """Test ValidateLibraryDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ValidateLibraryDto`
+ """
+ model = ValidateLibraryDto()
+ if include_optional:
+ return ValidateLibraryDto(
+ exclusion_patterns = [
+ ''
+ ],
+ import_paths = [
+ ''
+ ]
+ )
+ else:
+ return ValidateLibraryDto(
+ )
+ """
+
+ def testValidateLibraryDto(self):
+ """Test ValidateLibraryDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_validate_library_import_path_response_dto.py b/generated/immich/openapi_client/test/test_validate_library_import_path_response_dto.py
new file mode 100644
index 0000000..c7109a2
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_validate_library_import_path_response_dto.py
@@ -0,0 +1,55 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.validate_library_import_path_response_dto import ValidateLibraryImportPathResponseDto
+
+class TestValidateLibraryImportPathResponseDto(unittest.TestCase):
+ """ValidateLibraryImportPathResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ValidateLibraryImportPathResponseDto:
+ """Test ValidateLibraryImportPathResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ValidateLibraryImportPathResponseDto`
+ """
+ model = ValidateLibraryImportPathResponseDto()
+ if include_optional:
+ return ValidateLibraryImportPathResponseDto(
+ import_path = '',
+ is_valid = True,
+ message = ''
+ )
+ else:
+ return ValidateLibraryImportPathResponseDto(
+ import_path = '',
+ is_valid = True,
+ )
+ """
+
+ def testValidateLibraryImportPathResponseDto(self):
+ """Test ValidateLibraryImportPathResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_validate_library_response_dto.py b/generated/immich/openapi_client/test/test_validate_library_response_dto.py
new file mode 100644
index 0000000..b924f05
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_validate_library_response_dto.py
@@ -0,0 +1,56 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.validate_library_response_dto import ValidateLibraryResponseDto
+
+class TestValidateLibraryResponseDto(unittest.TestCase):
+ """ValidateLibraryResponseDto unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ValidateLibraryResponseDto:
+ """Test ValidateLibraryResponseDto
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ValidateLibraryResponseDto`
+ """
+ model = ValidateLibraryResponseDto()
+ if include_optional:
+ return ValidateLibraryResponseDto(
+ import_paths = [
+ generated.immich.openapi_client.models.validate_library_import_path_response_dto.ValidateLibraryImportPathResponseDto(
+ import_path = '',
+ is_valid = True,
+ message = '', )
+ ]
+ )
+ else:
+ return ValidateLibraryResponseDto(
+ )
+ """
+
+ def testValidateLibraryResponseDto(self):
+ """Test ValidateLibraryResponseDto"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_video_codec.py b/generated/immich/openapi_client/test/test_video_codec.py
new file mode 100644
index 0000000..79e2093
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_video_codec.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.video_codec import VideoCodec
+
+class TestVideoCodec(unittest.TestCase):
+ """VideoCodec unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testVideoCodec(self):
+ """Test VideoCodec"""
+ # inst = VideoCodec()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_video_container.py b/generated/immich/openapi_client/test/test_video_container.py
new file mode 100644
index 0000000..1ead534
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_video_container.py
@@ -0,0 +1,33 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.models.video_container import VideoContainer
+
+class TestVideoContainer(unittest.TestCase):
+ """VideoContainer unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testVideoContainer(self):
+ """Test VideoContainer"""
+ # inst = VideoContainer()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client/test/test_view_api.py b/generated/immich/openapi_client/test/test_view_api.py
new file mode 100644
index 0000000..dfe6221
--- /dev/null
+++ b/generated/immich/openapi_client/test/test_view_api.py
@@ -0,0 +1,43 @@
+# 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
+
+
+import unittest
+
+from generated.immich.openapi_client.api.view_api import ViewApi
+
+
+class TestViewApi(unittest.TestCase):
+ """ViewApi unit test stubs"""
+
+ def setUp(self) -> None:
+ self.api = ViewApi()
+
+ def tearDown(self) -> None:
+ pass
+
+ def test_get_assets_by_original_path(self) -> None:
+ """Test case for get_assets_by_original_path
+
+ """
+ pass
+
+ def test_get_unique_original_paths(self) -> None:
+ """Test case for get_unique_original_paths
+
+ """
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/generated/immich/openapi_client_README.md b/generated/immich/openapi_client_README.md
new file mode 100644
index 0000000..8f73ecd
--- /dev/null
+++ b/generated/immich/openapi_client_README.md
@@ -0,0 +1,549 @@
+# generated.immich.openapi-client
+Immich API
+
+The `generated.immich.openapi_client` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 1.131.3
+- Package version: 1.0.0
+- Generator version: 7.13.0-SNAPSHOT
+- Build package: org.openapitools.codegen.languages.PythonClientCodegen
+
+## Requirements.
+
+Python 3.8+
+
+## Installation & Usage
+
+This python library package is generated without supporting files like setup.py or requirements files
+
+To be able to use it, you will need these dependencies in your own package that uses this library:
+
+* urllib3 >= 1.25.3, < 3.0.0
+* python-dateutil >= 2.8.2
+* pydantic >= 2
+* typing-extensions >= 4.7.1
+
+## Getting Started
+
+In your own code, to use this library to connect and interact with generated.immich.openapi-client,
+you can run the following:
+
+```python
+
+import generated.immich.openapi_client
+from generated.immich.openapi_client.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://github.com/api
+# See configuration.py for a list of all supported configuration parameters.
+configuration = generated.immich.openapi_client.Configuration(
+ host = "https://github.com/api"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure API key authorization: cookie
+configuration.api_key['cookie'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['cookie'] = 'Bearer'
+
+# Configure API key authorization: api_key
+configuration.api_key['api_key'] = os.environ["API_KEY"]
+
+# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+# configuration.api_key_prefix['api_key'] = 'Bearer'
+
+# Configure Bearer authorization (JWT): bearer
+configuration = generated.immich.openapi_client.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+
+# Enter a context with an instance of the API client
+with generated.immich.openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = generated.immich.openapi_client.APIKeysApi(api_client)
+ api_key_create_dto = generated.immich.openapi_client.APIKeyCreateDto() # APIKeyCreateDto |
+
+ try:
+ api_response = api_instance.create_api_key(api_key_create_dto)
+ print("The response of APIKeysApi->create_api_key:\n")
+ pprint(api_response)
+ except ApiException as e:
+ print("Exception when calling APIKeysApi->create_api_key: %s\n" % e)
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *https://github.com/api*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*APIKeysApi* | [**create_api_key**](generated/immich/openapi_client/docs/APIKeysApi.md#create_api_key) | **POST** /api-keys |
+*APIKeysApi* | [**delete_api_key**](generated/immich/openapi_client/docs/APIKeysApi.md#delete_api_key) | **DELETE** /api-keys/{id} |
+*APIKeysApi* | [**get_api_key**](generated/immich/openapi_client/docs/APIKeysApi.md#get_api_key) | **GET** /api-keys/{id} |
+*APIKeysApi* | [**get_api_keys**](generated/immich/openapi_client/docs/APIKeysApi.md#get_api_keys) | **GET** /api-keys |
+*APIKeysApi* | [**update_api_key**](generated/immich/openapi_client/docs/APIKeysApi.md#update_api_key) | **PUT** /api-keys/{id} |
+*ActivitiesApi* | [**create_activity**](generated/immich/openapi_client/docs/ActivitiesApi.md#create_activity) | **POST** /activities |
+*ActivitiesApi* | [**delete_activity**](generated/immich/openapi_client/docs/ActivitiesApi.md#delete_activity) | **DELETE** /activities/{id} |
+*ActivitiesApi* | [**get_activities**](generated/immich/openapi_client/docs/ActivitiesApi.md#get_activities) | **GET** /activities |
+*ActivitiesApi* | [**get_activity_statistics**](generated/immich/openapi_client/docs/ActivitiesApi.md#get_activity_statistics) | **GET** /activities/statistics |
+*AlbumsApi* | [**add_assets_to_album**](generated/immich/openapi_client/docs/AlbumsApi.md#add_assets_to_album) | **PUT** /albums/{id}/assets |
+*AlbumsApi* | [**add_users_to_album**](generated/immich/openapi_client/docs/AlbumsApi.md#add_users_to_album) | **PUT** /albums/{id}/users |
+*AlbumsApi* | [**create_album**](generated/immich/openapi_client/docs/AlbumsApi.md#create_album) | **POST** /albums |
+*AlbumsApi* | [**delete_album**](generated/immich/openapi_client/docs/AlbumsApi.md#delete_album) | **DELETE** /albums/{id} |
+*AlbumsApi* | [**get_album_info**](generated/immich/openapi_client/docs/AlbumsApi.md#get_album_info) | **GET** /albums/{id} |
+*AlbumsApi* | [**get_album_statistics**](generated/immich/openapi_client/docs/AlbumsApi.md#get_album_statistics) | **GET** /albums/statistics |
+*AlbumsApi* | [**get_all_albums**](generated/immich/openapi_client/docs/AlbumsApi.md#get_all_albums) | **GET** /albums |
+*AlbumsApi* | [**remove_asset_from_album**](generated/immich/openapi_client/docs/AlbumsApi.md#remove_asset_from_album) | **DELETE** /albums/{id}/assets |
+*AlbumsApi* | [**remove_user_from_album**](generated/immich/openapi_client/docs/AlbumsApi.md#remove_user_from_album) | **DELETE** /albums/{id}/user/{userId} |
+*AlbumsApi* | [**update_album_info**](generated/immich/openapi_client/docs/AlbumsApi.md#update_album_info) | **PATCH** /albums/{id} |
+*AlbumsApi* | [**update_album_user**](generated/immich/openapi_client/docs/AlbumsApi.md#update_album_user) | **PUT** /albums/{id}/user/{userId} |
+*AssetsApi* | [**check_bulk_upload**](generated/immich/openapi_client/docs/AssetsApi.md#check_bulk_upload) | **POST** /assets/bulk-upload-check | checkBulkUpload
+*AssetsApi* | [**check_existing_assets**](generated/immich/openapi_client/docs/AssetsApi.md#check_existing_assets) | **POST** /assets/exist | checkExistingAssets
+*AssetsApi* | [**delete_assets**](generated/immich/openapi_client/docs/AssetsApi.md#delete_assets) | **DELETE** /assets |
+*AssetsApi* | [**download_asset**](generated/immich/openapi_client/docs/AssetsApi.md#download_asset) | **GET** /assets/{id}/original |
+*AssetsApi* | [**get_all_user_assets_by_device_id**](generated/immich/openapi_client/docs/AssetsApi.md#get_all_user_assets_by_device_id) | **GET** /assets/device/{deviceId} | getAllUserAssetsByDeviceId
+*AssetsApi* | [**get_asset_info**](generated/immich/openapi_client/docs/AssetsApi.md#get_asset_info) | **GET** /assets/{id} |
+*AssetsApi* | [**get_asset_statistics**](generated/immich/openapi_client/docs/AssetsApi.md#get_asset_statistics) | **GET** /assets/statistics |
+*AssetsApi* | [**get_memory_lane**](generated/immich/openapi_client/docs/AssetsApi.md#get_memory_lane) | **GET** /assets/memory-lane |
+*AssetsApi* | [**get_random**](generated/immich/openapi_client/docs/AssetsApi.md#get_random) | **GET** /assets/random |
+*AssetsApi* | [**play_asset_video**](generated/immich/openapi_client/docs/AssetsApi.md#play_asset_video) | **GET** /assets/{id}/video/playback |
+*AssetsApi* | [**replace_asset**](generated/immich/openapi_client/docs/AssetsApi.md#replace_asset) | **PUT** /assets/{id}/original | replaceAsset
+*AssetsApi* | [**run_asset_jobs**](generated/immich/openapi_client/docs/AssetsApi.md#run_asset_jobs) | **POST** /assets/jobs |
+*AssetsApi* | [**update_asset**](generated/immich/openapi_client/docs/AssetsApi.md#update_asset) | **PUT** /assets/{id} |
+*AssetsApi* | [**update_assets**](generated/immich/openapi_client/docs/AssetsApi.md#update_assets) | **PUT** /assets |
+*AssetsApi* | [**upload_asset**](generated/immich/openapi_client/docs/AssetsApi.md#upload_asset) | **POST** /assets |
+*AssetsApi* | [**view_asset**](generated/immich/openapi_client/docs/AssetsApi.md#view_asset) | **GET** /assets/{id}/thumbnail |
+*AuthenticationApi* | [**change_password**](generated/immich/openapi_client/docs/AuthenticationApi.md#change_password) | **POST** /auth/change-password |
+*AuthenticationApi* | [**login**](generated/immich/openapi_client/docs/AuthenticationApi.md#login) | **POST** /auth/login |
+*AuthenticationApi* | [**logout**](generated/immich/openapi_client/docs/AuthenticationApi.md#logout) | **POST** /auth/logout |
+*AuthenticationApi* | [**sign_up_admin**](generated/immich/openapi_client/docs/AuthenticationApi.md#sign_up_admin) | **POST** /auth/admin-sign-up |
+*AuthenticationApi* | [**validate_access_token**](generated/immich/openapi_client/docs/AuthenticationApi.md#validate_access_token) | **POST** /auth/validateToken |
+*DeprecatedApi* | [**get_random**](generated/immich/openapi_client/docs/DeprecatedApi.md#get_random) | **GET** /assets/random |
+*DownloadApi* | [**download_archive**](generated/immich/openapi_client/docs/DownloadApi.md#download_archive) | **POST** /download/archive |
+*DownloadApi* | [**get_download_info**](generated/immich/openapi_client/docs/DownloadApi.md#get_download_info) | **POST** /download/info |
+*DuplicatesApi* | [**get_asset_duplicates**](generated/immich/openapi_client/docs/DuplicatesApi.md#get_asset_duplicates) | **GET** /duplicates |
+*FacesApi* | [**create_face**](generated/immich/openapi_client/docs/FacesApi.md#create_face) | **POST** /faces |
+*FacesApi* | [**delete_face**](generated/immich/openapi_client/docs/FacesApi.md#delete_face) | **DELETE** /faces/{id} |
+*FacesApi* | [**get_faces**](generated/immich/openapi_client/docs/FacesApi.md#get_faces) | **GET** /faces |
+*FacesApi* | [**reassign_faces_by_id**](generated/immich/openapi_client/docs/FacesApi.md#reassign_faces_by_id) | **PUT** /faces/{id} |
+*FileReportsApi* | [**fix_audit_files**](generated/immich/openapi_client/docs/FileReportsApi.md#fix_audit_files) | **POST** /reports/fix |
+*FileReportsApi* | [**get_audit_files**](generated/immich/openapi_client/docs/FileReportsApi.md#get_audit_files) | **GET** /reports |
+*FileReportsApi* | [**get_file_checksums**](generated/immich/openapi_client/docs/FileReportsApi.md#get_file_checksums) | **POST** /reports/checksum |
+*JobsApi* | [**create_job**](generated/immich/openapi_client/docs/JobsApi.md#create_job) | **POST** /jobs |
+*JobsApi* | [**get_all_jobs_status**](generated/immich/openapi_client/docs/JobsApi.md#get_all_jobs_status) | **GET** /jobs |
+*JobsApi* | [**send_job_command**](generated/immich/openapi_client/docs/JobsApi.md#send_job_command) | **PUT** /jobs/{id} |
+*LibrariesApi* | [**create_library**](generated/immich/openapi_client/docs/LibrariesApi.md#create_library) | **POST** /libraries |
+*LibrariesApi* | [**delete_library**](generated/immich/openapi_client/docs/LibrariesApi.md#delete_library) | **DELETE** /libraries/{id} |
+*LibrariesApi* | [**get_all_libraries**](generated/immich/openapi_client/docs/LibrariesApi.md#get_all_libraries) | **GET** /libraries |
+*LibrariesApi* | [**get_library**](generated/immich/openapi_client/docs/LibrariesApi.md#get_library) | **GET** /libraries/{id} |
+*LibrariesApi* | [**get_library_statistics**](generated/immich/openapi_client/docs/LibrariesApi.md#get_library_statistics) | **GET** /libraries/{id}/statistics |
+*LibrariesApi* | [**scan_library**](generated/immich/openapi_client/docs/LibrariesApi.md#scan_library) | **POST** /libraries/{id}/scan |
+*LibrariesApi* | [**update_library**](generated/immich/openapi_client/docs/LibrariesApi.md#update_library) | **PUT** /libraries/{id} |
+*LibrariesApi* | [**validate**](generated/immich/openapi_client/docs/LibrariesApi.md#validate) | **POST** /libraries/{id}/validate |
+*MapApi* | [**get_map_markers**](generated/immich/openapi_client/docs/MapApi.md#get_map_markers) | **GET** /map/markers |
+*MapApi* | [**reverse_geocode**](generated/immich/openapi_client/docs/MapApi.md#reverse_geocode) | **GET** /map/reverse-geocode |
+*MemoriesApi* | [**add_memory_assets**](generated/immich/openapi_client/docs/MemoriesApi.md#add_memory_assets) | **PUT** /memories/{id}/assets |
+*MemoriesApi* | [**create_memory**](generated/immich/openapi_client/docs/MemoriesApi.md#create_memory) | **POST** /memories |
+*MemoriesApi* | [**delete_memory**](generated/immich/openapi_client/docs/MemoriesApi.md#delete_memory) | **DELETE** /memories/{id} |
+*MemoriesApi* | [**get_memory**](generated/immich/openapi_client/docs/MemoriesApi.md#get_memory) | **GET** /memories/{id} |
+*MemoriesApi* | [**remove_memory_assets**](generated/immich/openapi_client/docs/MemoriesApi.md#remove_memory_assets) | **DELETE** /memories/{id}/assets |
+*MemoriesApi* | [**search_memories**](generated/immich/openapi_client/docs/MemoriesApi.md#search_memories) | **GET** /memories |
+*MemoriesApi* | [**update_memory**](generated/immich/openapi_client/docs/MemoriesApi.md#update_memory) | **PUT** /memories/{id} |
+*NotificationsApi* | [**get_notification_template**](generated/immich/openapi_client/docs/NotificationsApi.md#get_notification_template) | **POST** /notifications/templates/{name} |
+*NotificationsApi* | [**send_test_email**](generated/immich/openapi_client/docs/NotificationsApi.md#send_test_email) | **POST** /notifications/test-email |
+*OAuthApi* | [**finish_o_auth**](generated/immich/openapi_client/docs/OAuthApi.md#finish_o_auth) | **POST** /oauth/callback |
+*OAuthApi* | [**link_o_auth_account**](generated/immich/openapi_client/docs/OAuthApi.md#link_o_auth_account) | **POST** /oauth/link |
+*OAuthApi* | [**redirect_o_auth_to_mobile**](generated/immich/openapi_client/docs/OAuthApi.md#redirect_o_auth_to_mobile) | **GET** /oauth/mobile-redirect |
+*OAuthApi* | [**start_o_auth**](generated/immich/openapi_client/docs/OAuthApi.md#start_o_auth) | **POST** /oauth/authorize |
+*OAuthApi* | [**unlink_o_auth_account**](generated/immich/openapi_client/docs/OAuthApi.md#unlink_o_auth_account) | **POST** /oauth/unlink |
+*PartnersApi* | [**create_partner**](generated/immich/openapi_client/docs/PartnersApi.md#create_partner) | **POST** /partners/{id} |
+*PartnersApi* | [**get_partners**](generated/immich/openapi_client/docs/PartnersApi.md#get_partners) | **GET** /partners |
+*PartnersApi* | [**remove_partner**](generated/immich/openapi_client/docs/PartnersApi.md#remove_partner) | **DELETE** /partners/{id} |
+*PartnersApi* | [**update_partner**](generated/immich/openapi_client/docs/PartnersApi.md#update_partner) | **PUT** /partners/{id} |
+*PeopleApi* | [**create_person**](generated/immich/openapi_client/docs/PeopleApi.md#create_person) | **POST** /people |
+*PeopleApi* | [**get_all_people**](generated/immich/openapi_client/docs/PeopleApi.md#get_all_people) | **GET** /people |
+*PeopleApi* | [**get_person**](generated/immich/openapi_client/docs/PeopleApi.md#get_person) | **GET** /people/{id} |
+*PeopleApi* | [**get_person_statistics**](generated/immich/openapi_client/docs/PeopleApi.md#get_person_statistics) | **GET** /people/{id}/statistics |
+*PeopleApi* | [**get_person_thumbnail**](generated/immich/openapi_client/docs/PeopleApi.md#get_person_thumbnail) | **GET** /people/{id}/thumbnail |
+*PeopleApi* | [**merge_person**](generated/immich/openapi_client/docs/PeopleApi.md#merge_person) | **POST** /people/{id}/merge |
+*PeopleApi* | [**reassign_faces**](generated/immich/openapi_client/docs/PeopleApi.md#reassign_faces) | **PUT** /people/{id}/reassign |
+*PeopleApi* | [**update_people**](generated/immich/openapi_client/docs/PeopleApi.md#update_people) | **PUT** /people |
+*PeopleApi* | [**update_person**](generated/immich/openapi_client/docs/PeopleApi.md#update_person) | **PUT** /people/{id} |
+*SearchApi* | [**get_assets_by_city**](generated/immich/openapi_client/docs/SearchApi.md#get_assets_by_city) | **GET** /search/cities |
+*SearchApi* | [**get_explore_data**](generated/immich/openapi_client/docs/SearchApi.md#get_explore_data) | **GET** /search/explore |
+*SearchApi* | [**get_search_suggestions**](generated/immich/openapi_client/docs/SearchApi.md#get_search_suggestions) | **GET** /search/suggestions |
+*SearchApi* | [**search_assets**](generated/immich/openapi_client/docs/SearchApi.md#search_assets) | **POST** /search/metadata |
+*SearchApi* | [**search_person**](generated/immich/openapi_client/docs/SearchApi.md#search_person) | **GET** /search/person |
+*SearchApi* | [**search_places**](generated/immich/openapi_client/docs/SearchApi.md#search_places) | **GET** /search/places |
+*SearchApi* | [**search_random**](generated/immich/openapi_client/docs/SearchApi.md#search_random) | **POST** /search/random |
+*SearchApi* | [**search_smart**](generated/immich/openapi_client/docs/SearchApi.md#search_smart) | **POST** /search/smart |
+*ServerApi* | [**delete_server_license**](generated/immich/openapi_client/docs/ServerApi.md#delete_server_license) | **DELETE** /server/license |
+*ServerApi* | [**get_about_info**](generated/immich/openapi_client/docs/ServerApi.md#get_about_info) | **GET** /server/about |
+*ServerApi* | [**get_server_config**](generated/immich/openapi_client/docs/ServerApi.md#get_server_config) | **GET** /server/config |
+*ServerApi* | [**get_server_features**](generated/immich/openapi_client/docs/ServerApi.md#get_server_features) | **GET** /server/features |
+*ServerApi* | [**get_server_license**](generated/immich/openapi_client/docs/ServerApi.md#get_server_license) | **GET** /server/license |
+*ServerApi* | [**get_server_statistics**](generated/immich/openapi_client/docs/ServerApi.md#get_server_statistics) | **GET** /server/statistics |
+*ServerApi* | [**get_server_version**](generated/immich/openapi_client/docs/ServerApi.md#get_server_version) | **GET** /server/version |
+*ServerApi* | [**get_storage**](generated/immich/openapi_client/docs/ServerApi.md#get_storage) | **GET** /server/storage |
+*ServerApi* | [**get_supported_media_types**](generated/immich/openapi_client/docs/ServerApi.md#get_supported_media_types) | **GET** /server/media-types |
+*ServerApi* | [**get_theme**](generated/immich/openapi_client/docs/ServerApi.md#get_theme) | **GET** /server/theme |
+*ServerApi* | [**get_version_history**](generated/immich/openapi_client/docs/ServerApi.md#get_version_history) | **GET** /server/version-history |
+*ServerApi* | [**ping_server**](generated/immich/openapi_client/docs/ServerApi.md#ping_server) | **GET** /server/ping |
+*ServerApi* | [**set_server_license**](generated/immich/openapi_client/docs/ServerApi.md#set_server_license) | **PUT** /server/license |
+*SessionsApi* | [**delete_all_sessions**](generated/immich/openapi_client/docs/SessionsApi.md#delete_all_sessions) | **DELETE** /sessions |
+*SessionsApi* | [**delete_session**](generated/immich/openapi_client/docs/SessionsApi.md#delete_session) | **DELETE** /sessions/{id} |
+*SessionsApi* | [**get_sessions**](generated/immich/openapi_client/docs/SessionsApi.md#get_sessions) | **GET** /sessions |
+*SharedLinksApi* | [**add_shared_link_assets**](generated/immich/openapi_client/docs/SharedLinksApi.md#add_shared_link_assets) | **PUT** /shared-links/{id}/assets |
+*SharedLinksApi* | [**create_shared_link**](generated/immich/openapi_client/docs/SharedLinksApi.md#create_shared_link) | **POST** /shared-links |
+*SharedLinksApi* | [**get_all_shared_links**](generated/immich/openapi_client/docs/SharedLinksApi.md#get_all_shared_links) | **GET** /shared-links |
+*SharedLinksApi* | [**get_my_shared_link**](generated/immich/openapi_client/docs/SharedLinksApi.md#get_my_shared_link) | **GET** /shared-links/me |
+*SharedLinksApi* | [**get_shared_link_by_id**](generated/immich/openapi_client/docs/SharedLinksApi.md#get_shared_link_by_id) | **GET** /shared-links/{id} |
+*SharedLinksApi* | [**remove_shared_link**](generated/immich/openapi_client/docs/SharedLinksApi.md#remove_shared_link) | **DELETE** /shared-links/{id} |
+*SharedLinksApi* | [**remove_shared_link_assets**](generated/immich/openapi_client/docs/SharedLinksApi.md#remove_shared_link_assets) | **DELETE** /shared-links/{id}/assets |
+*SharedLinksApi* | [**update_shared_link**](generated/immich/openapi_client/docs/SharedLinksApi.md#update_shared_link) | **PATCH** /shared-links/{id} |
+*StacksApi* | [**create_stack**](generated/immich/openapi_client/docs/StacksApi.md#create_stack) | **POST** /stacks |
+*StacksApi* | [**delete_stack**](generated/immich/openapi_client/docs/StacksApi.md#delete_stack) | **DELETE** /stacks/{id} |
+*StacksApi* | [**delete_stacks**](generated/immich/openapi_client/docs/StacksApi.md#delete_stacks) | **DELETE** /stacks |
+*StacksApi* | [**get_stack**](generated/immich/openapi_client/docs/StacksApi.md#get_stack) | **GET** /stacks/{id} |
+*StacksApi* | [**search_stacks**](generated/immich/openapi_client/docs/StacksApi.md#search_stacks) | **GET** /stacks |
+*StacksApi* | [**update_stack**](generated/immich/openapi_client/docs/StacksApi.md#update_stack) | **PUT** /stacks/{id} |
+*SyncApi* | [**delete_sync_ack**](generated/immich/openapi_client/docs/SyncApi.md#delete_sync_ack) | **DELETE** /sync/ack |
+*SyncApi* | [**get_delta_sync**](generated/immich/openapi_client/docs/SyncApi.md#get_delta_sync) | **POST** /sync/delta-sync |
+*SyncApi* | [**get_full_sync_for_user**](generated/immich/openapi_client/docs/SyncApi.md#get_full_sync_for_user) | **POST** /sync/full-sync |
+*SyncApi* | [**get_sync_ack**](generated/immich/openapi_client/docs/SyncApi.md#get_sync_ack) | **GET** /sync/ack |
+*SyncApi* | [**get_sync_stream**](generated/immich/openapi_client/docs/SyncApi.md#get_sync_stream) | **POST** /sync/stream |
+*SyncApi* | [**send_sync_ack**](generated/immich/openapi_client/docs/SyncApi.md#send_sync_ack) | **POST** /sync/ack |
+*SystemConfigApi* | [**get_config**](generated/immich/openapi_client/docs/SystemConfigApi.md#get_config) | **GET** /system-config |
+*SystemConfigApi* | [**get_config_defaults**](generated/immich/openapi_client/docs/SystemConfigApi.md#get_config_defaults) | **GET** /system-config/defaults |
+*SystemConfigApi* | [**get_storage_template_options**](generated/immich/openapi_client/docs/SystemConfigApi.md#get_storage_template_options) | **GET** /system-config/storage-template-options |
+*SystemConfigApi* | [**update_config**](generated/immich/openapi_client/docs/SystemConfigApi.md#update_config) | **PUT** /system-config |
+*SystemMetadataApi* | [**get_admin_onboarding**](generated/immich/openapi_client/docs/SystemMetadataApi.md#get_admin_onboarding) | **GET** /system-metadata/admin-onboarding |
+*SystemMetadataApi* | [**get_reverse_geocoding_state**](generated/immich/openapi_client/docs/SystemMetadataApi.md#get_reverse_geocoding_state) | **GET** /system-metadata/reverse-geocoding-state |
+*SystemMetadataApi* | [**update_admin_onboarding**](generated/immich/openapi_client/docs/SystemMetadataApi.md#update_admin_onboarding) | **POST** /system-metadata/admin-onboarding |
+*TagsApi* | [**bulk_tag_assets**](generated/immich/openapi_client/docs/TagsApi.md#bulk_tag_assets) | **PUT** /tags/assets |
+*TagsApi* | [**create_tag**](generated/immich/openapi_client/docs/TagsApi.md#create_tag) | **POST** /tags |
+*TagsApi* | [**delete_tag**](generated/immich/openapi_client/docs/TagsApi.md#delete_tag) | **DELETE** /tags/{id} |
+*TagsApi* | [**get_all_tags**](generated/immich/openapi_client/docs/TagsApi.md#get_all_tags) | **GET** /tags |
+*TagsApi* | [**get_tag_by_id**](generated/immich/openapi_client/docs/TagsApi.md#get_tag_by_id) | **GET** /tags/{id} |
+*TagsApi* | [**tag_assets**](generated/immich/openapi_client/docs/TagsApi.md#tag_assets) | **PUT** /tags/{id}/assets |
+*TagsApi* | [**untag_assets**](generated/immich/openapi_client/docs/TagsApi.md#untag_assets) | **DELETE** /tags/{id}/assets |
+*TagsApi* | [**update_tag**](generated/immich/openapi_client/docs/TagsApi.md#update_tag) | **PUT** /tags/{id} |
+*TagsApi* | [**upsert_tags**](generated/immich/openapi_client/docs/TagsApi.md#upsert_tags) | **PUT** /tags |
+*TimelineApi* | [**get_time_bucket**](generated/immich/openapi_client/docs/TimelineApi.md#get_time_bucket) | **GET** /timeline/bucket |
+*TimelineApi* | [**get_time_buckets**](generated/immich/openapi_client/docs/TimelineApi.md#get_time_buckets) | **GET** /timeline/buckets |
+*TrashApi* | [**empty_trash**](generated/immich/openapi_client/docs/TrashApi.md#empty_trash) | **POST** /trash/empty |
+*TrashApi* | [**restore_assets**](generated/immich/openapi_client/docs/TrashApi.md#restore_assets) | **POST** /trash/restore/assets |
+*TrashApi* | [**restore_trash**](generated/immich/openapi_client/docs/TrashApi.md#restore_trash) | **POST** /trash/restore |
+*UsersApi* | [**create_profile_image**](generated/immich/openapi_client/docs/UsersApi.md#create_profile_image) | **POST** /users/profile-image |
+*UsersApi* | [**delete_profile_image**](generated/immich/openapi_client/docs/UsersApi.md#delete_profile_image) | **DELETE** /users/profile-image |
+*UsersApi* | [**delete_user_license**](generated/immich/openapi_client/docs/UsersApi.md#delete_user_license) | **DELETE** /users/me/license |
+*UsersApi* | [**get_my_preferences**](generated/immich/openapi_client/docs/UsersApi.md#get_my_preferences) | **GET** /users/me/preferences |
+*UsersApi* | [**get_my_user**](generated/immich/openapi_client/docs/UsersApi.md#get_my_user) | **GET** /users/me |
+*UsersApi* | [**get_profile_image**](generated/immich/openapi_client/docs/UsersApi.md#get_profile_image) | **GET** /users/{id}/profile-image |
+*UsersApi* | [**get_user**](generated/immich/openapi_client/docs/UsersApi.md#get_user) | **GET** /users/{id} |
+*UsersApi* | [**get_user_license**](generated/immich/openapi_client/docs/UsersApi.md#get_user_license) | **GET** /users/me/license |
+*UsersApi* | [**search_users**](generated/immich/openapi_client/docs/UsersApi.md#search_users) | **GET** /users |
+*UsersApi* | [**set_user_license**](generated/immich/openapi_client/docs/UsersApi.md#set_user_license) | **PUT** /users/me/license |
+*UsersApi* | [**update_my_preferences**](generated/immich/openapi_client/docs/UsersApi.md#update_my_preferences) | **PUT** /users/me/preferences |
+*UsersApi* | [**update_my_user**](generated/immich/openapi_client/docs/UsersApi.md#update_my_user) | **PUT** /users/me |
+*UsersAdminApi* | [**create_user_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#create_user_admin) | **POST** /admin/users |
+*UsersAdminApi* | [**delete_user_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#delete_user_admin) | **DELETE** /admin/users/{id} |
+*UsersAdminApi* | [**get_user_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#get_user_admin) | **GET** /admin/users/{id} |
+*UsersAdminApi* | [**get_user_preferences_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#get_user_preferences_admin) | **GET** /admin/users/{id}/preferences |
+*UsersAdminApi* | [**restore_user_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#restore_user_admin) | **POST** /admin/users/{id}/restore |
+*UsersAdminApi* | [**search_users_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#search_users_admin) | **GET** /admin/users |
+*UsersAdminApi* | [**update_user_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#update_user_admin) | **PUT** /admin/users/{id} |
+*UsersAdminApi* | [**update_user_preferences_admin**](generated/immich/openapi_client/docs/UsersAdminApi.md#update_user_preferences_admin) | **PUT** /admin/users/{id}/preferences |
+*ViewApi* | [**get_assets_by_original_path**](generated/immich/openapi_client/docs/ViewApi.md#get_assets_by_original_path) | **GET** /view/folder |
+*ViewApi* | [**get_unique_original_paths**](generated/immich/openapi_client/docs/ViewApi.md#get_unique_original_paths) | **GET** /view/folder/unique-paths |
+
+
+## Documentation For Models
+
+ - [APIKeyCreateDto](generated/immich/openapi_client/docs/APIKeyCreateDto.md)
+ - [APIKeyCreateResponseDto](generated/immich/openapi_client/docs/APIKeyCreateResponseDto.md)
+ - [APIKeyResponseDto](generated/immich/openapi_client/docs/APIKeyResponseDto.md)
+ - [APIKeyUpdateDto](generated/immich/openapi_client/docs/APIKeyUpdateDto.md)
+ - [ActivityCreateDto](generated/immich/openapi_client/docs/ActivityCreateDto.md)
+ - [ActivityResponseDto](generated/immich/openapi_client/docs/ActivityResponseDto.md)
+ - [ActivityStatisticsResponseDto](generated/immich/openapi_client/docs/ActivityStatisticsResponseDto.md)
+ - [AddUsersDto](generated/immich/openapi_client/docs/AddUsersDto.md)
+ - [AdminOnboardingUpdateDto](generated/immich/openapi_client/docs/AdminOnboardingUpdateDto.md)
+ - [AlbumResponseDto](generated/immich/openapi_client/docs/AlbumResponseDto.md)
+ - [AlbumStatisticsResponseDto](generated/immich/openapi_client/docs/AlbumStatisticsResponseDto.md)
+ - [AlbumUserAddDto](generated/immich/openapi_client/docs/AlbumUserAddDto.md)
+ - [AlbumUserCreateDto](generated/immich/openapi_client/docs/AlbumUserCreateDto.md)
+ - [AlbumUserResponseDto](generated/immich/openapi_client/docs/AlbumUserResponseDto.md)
+ - [AlbumUserRole](generated/immich/openapi_client/docs/AlbumUserRole.md)
+ - [AllJobStatusResponseDto](generated/immich/openapi_client/docs/AllJobStatusResponseDto.md)
+ - [AssetBulkDeleteDto](generated/immich/openapi_client/docs/AssetBulkDeleteDto.md)
+ - [AssetBulkUpdateDto](generated/immich/openapi_client/docs/AssetBulkUpdateDto.md)
+ - [AssetBulkUploadCheckDto](generated/immich/openapi_client/docs/AssetBulkUploadCheckDto.md)
+ - [AssetBulkUploadCheckItem](generated/immich/openapi_client/docs/AssetBulkUploadCheckItem.md)
+ - [AssetBulkUploadCheckResponseDto](generated/immich/openapi_client/docs/AssetBulkUploadCheckResponseDto.md)
+ - [AssetBulkUploadCheckResult](generated/immich/openapi_client/docs/AssetBulkUploadCheckResult.md)
+ - [AssetDeltaSyncDto](generated/immich/openapi_client/docs/AssetDeltaSyncDto.md)
+ - [AssetDeltaSyncResponseDto](generated/immich/openapi_client/docs/AssetDeltaSyncResponseDto.md)
+ - [AssetFaceCreateDto](generated/immich/openapi_client/docs/AssetFaceCreateDto.md)
+ - [AssetFaceDeleteDto](generated/immich/openapi_client/docs/AssetFaceDeleteDto.md)
+ - [AssetFaceResponseDto](generated/immich/openapi_client/docs/AssetFaceResponseDto.md)
+ - [AssetFaceUpdateDto](generated/immich/openapi_client/docs/AssetFaceUpdateDto.md)
+ - [AssetFaceUpdateItem](generated/immich/openapi_client/docs/AssetFaceUpdateItem.md)
+ - [AssetFaceWithoutPersonResponseDto](generated/immich/openapi_client/docs/AssetFaceWithoutPersonResponseDto.md)
+ - [AssetFullSyncDto](generated/immich/openapi_client/docs/AssetFullSyncDto.md)
+ - [AssetIdsDto](generated/immich/openapi_client/docs/AssetIdsDto.md)
+ - [AssetIdsResponseDto](generated/immich/openapi_client/docs/AssetIdsResponseDto.md)
+ - [AssetJobName](generated/immich/openapi_client/docs/AssetJobName.md)
+ - [AssetJobsDto](generated/immich/openapi_client/docs/AssetJobsDto.md)
+ - [AssetMediaResponseDto](generated/immich/openapi_client/docs/AssetMediaResponseDto.md)
+ - [AssetMediaSize](generated/immich/openapi_client/docs/AssetMediaSize.md)
+ - [AssetMediaStatus](generated/immich/openapi_client/docs/AssetMediaStatus.md)
+ - [AssetOrder](generated/immich/openapi_client/docs/AssetOrder.md)
+ - [AssetResponseDto](generated/immich/openapi_client/docs/AssetResponseDto.md)
+ - [AssetStackResponseDto](generated/immich/openapi_client/docs/AssetStackResponseDto.md)
+ - [AssetStatsResponseDto](generated/immich/openapi_client/docs/AssetStatsResponseDto.md)
+ - [AssetTypeEnum](generated/immich/openapi_client/docs/AssetTypeEnum.md)
+ - [AudioCodec](generated/immich/openapi_client/docs/AudioCodec.md)
+ - [AvatarResponse](generated/immich/openapi_client/docs/AvatarResponse.md)
+ - [AvatarUpdate](generated/immich/openapi_client/docs/AvatarUpdate.md)
+ - [BulkIdResponseDto](generated/immich/openapi_client/docs/BulkIdResponseDto.md)
+ - [BulkIdsDto](generated/immich/openapi_client/docs/BulkIdsDto.md)
+ - [CLIPConfig](generated/immich/openapi_client/docs/CLIPConfig.md)
+ - [CQMode](generated/immich/openapi_client/docs/CQMode.md)
+ - [ChangePasswordDto](generated/immich/openapi_client/docs/ChangePasswordDto.md)
+ - [CheckExistingAssetsDto](generated/immich/openapi_client/docs/CheckExistingAssetsDto.md)
+ - [CheckExistingAssetsResponseDto](generated/immich/openapi_client/docs/CheckExistingAssetsResponseDto.md)
+ - [Colorspace](generated/immich/openapi_client/docs/Colorspace.md)
+ - [CreateAlbumDto](generated/immich/openapi_client/docs/CreateAlbumDto.md)
+ - [CreateLibraryDto](generated/immich/openapi_client/docs/CreateLibraryDto.md)
+ - [CreateProfileImageResponseDto](generated/immich/openapi_client/docs/CreateProfileImageResponseDto.md)
+ - [DatabaseBackupConfig](generated/immich/openapi_client/docs/DatabaseBackupConfig.md)
+ - [DownloadArchiveInfo](generated/immich/openapi_client/docs/DownloadArchiveInfo.md)
+ - [DownloadInfoDto](generated/immich/openapi_client/docs/DownloadInfoDto.md)
+ - [DownloadResponse](generated/immich/openapi_client/docs/DownloadResponse.md)
+ - [DownloadResponseDto](generated/immich/openapi_client/docs/DownloadResponseDto.md)
+ - [DownloadUpdate](generated/immich/openapi_client/docs/DownloadUpdate.md)
+ - [DuplicateDetectionConfig](generated/immich/openapi_client/docs/DuplicateDetectionConfig.md)
+ - [DuplicateResponseDto](generated/immich/openapi_client/docs/DuplicateResponseDto.md)
+ - [EmailNotificationsResponse](generated/immich/openapi_client/docs/EmailNotificationsResponse.md)
+ - [EmailNotificationsUpdate](generated/immich/openapi_client/docs/EmailNotificationsUpdate.md)
+ - [ExifResponseDto](generated/immich/openapi_client/docs/ExifResponseDto.md)
+ - [FaceDto](generated/immich/openapi_client/docs/FaceDto.md)
+ - [FacialRecognitionConfig](generated/immich/openapi_client/docs/FacialRecognitionConfig.md)
+ - [FileChecksumDto](generated/immich/openapi_client/docs/FileChecksumDto.md)
+ - [FileChecksumResponseDto](generated/immich/openapi_client/docs/FileChecksumResponseDto.md)
+ - [FileReportDto](generated/immich/openapi_client/docs/FileReportDto.md)
+ - [FileReportFixDto](generated/immich/openapi_client/docs/FileReportFixDto.md)
+ - [FileReportItemDto](generated/immich/openapi_client/docs/FileReportItemDto.md)
+ - [FoldersResponse](generated/immich/openapi_client/docs/FoldersResponse.md)
+ - [FoldersUpdate](generated/immich/openapi_client/docs/FoldersUpdate.md)
+ - [ImageFormat](generated/immich/openapi_client/docs/ImageFormat.md)
+ - [JobCommand](generated/immich/openapi_client/docs/JobCommand.md)
+ - [JobCommandDto](generated/immich/openapi_client/docs/JobCommandDto.md)
+ - [JobCountsDto](generated/immich/openapi_client/docs/JobCountsDto.md)
+ - [JobCreateDto](generated/immich/openapi_client/docs/JobCreateDto.md)
+ - [JobName](generated/immich/openapi_client/docs/JobName.md)
+ - [JobSettingsDto](generated/immich/openapi_client/docs/JobSettingsDto.md)
+ - [JobStatusDto](generated/immich/openapi_client/docs/JobStatusDto.md)
+ - [LibraryResponseDto](generated/immich/openapi_client/docs/LibraryResponseDto.md)
+ - [LibraryStatsResponseDto](generated/immich/openapi_client/docs/LibraryStatsResponseDto.md)
+ - [LicenseKeyDto](generated/immich/openapi_client/docs/LicenseKeyDto.md)
+ - [LicenseResponseDto](generated/immich/openapi_client/docs/LicenseResponseDto.md)
+ - [LogLevel](generated/immich/openapi_client/docs/LogLevel.md)
+ - [LoginCredentialDto](generated/immich/openapi_client/docs/LoginCredentialDto.md)
+ - [LoginResponseDto](generated/immich/openapi_client/docs/LoginResponseDto.md)
+ - [LogoutResponseDto](generated/immich/openapi_client/docs/LogoutResponseDto.md)
+ - [ManualJobName](generated/immich/openapi_client/docs/ManualJobName.md)
+ - [MapMarkerResponseDto](generated/immich/openapi_client/docs/MapMarkerResponseDto.md)
+ - [MapReverseGeocodeResponseDto](generated/immich/openapi_client/docs/MapReverseGeocodeResponseDto.md)
+ - [MemoriesResponse](generated/immich/openapi_client/docs/MemoriesResponse.md)
+ - [MemoriesUpdate](generated/immich/openapi_client/docs/MemoriesUpdate.md)
+ - [MemoryCreateDto](generated/immich/openapi_client/docs/MemoryCreateDto.md)
+ - [MemoryLaneResponseDto](generated/immich/openapi_client/docs/MemoryLaneResponseDto.md)
+ - [MemoryResponseDto](generated/immich/openapi_client/docs/MemoryResponseDto.md)
+ - [MemoryType](generated/immich/openapi_client/docs/MemoryType.md)
+ - [MemoryUpdateDto](generated/immich/openapi_client/docs/MemoryUpdateDto.md)
+ - [MergePersonDto](generated/immich/openapi_client/docs/MergePersonDto.md)
+ - [MetadataSearchDto](generated/immich/openapi_client/docs/MetadataSearchDto.md)
+ - [OAuthAuthorizeResponseDto](generated/immich/openapi_client/docs/OAuthAuthorizeResponseDto.md)
+ - [OAuthCallbackDto](generated/immich/openapi_client/docs/OAuthCallbackDto.md)
+ - [OAuthConfigDto](generated/immich/openapi_client/docs/OAuthConfigDto.md)
+ - [OnThisDayDto](generated/immich/openapi_client/docs/OnThisDayDto.md)
+ - [PartnerDirection](generated/immich/openapi_client/docs/PartnerDirection.md)
+ - [PartnerResponseDto](generated/immich/openapi_client/docs/PartnerResponseDto.md)
+ - [PathEntityType](generated/immich/openapi_client/docs/PathEntityType.md)
+ - [PathType](generated/immich/openapi_client/docs/PathType.md)
+ - [PeopleResponse](generated/immich/openapi_client/docs/PeopleResponse.md)
+ - [PeopleResponseDto](generated/immich/openapi_client/docs/PeopleResponseDto.md)
+ - [PeopleUpdate](generated/immich/openapi_client/docs/PeopleUpdate.md)
+ - [PeopleUpdateDto](generated/immich/openapi_client/docs/PeopleUpdateDto.md)
+ - [PeopleUpdateItem](generated/immich/openapi_client/docs/PeopleUpdateItem.md)
+ - [Permission](generated/immich/openapi_client/docs/Permission.md)
+ - [PersonCreateDto](generated/immich/openapi_client/docs/PersonCreateDto.md)
+ - [PersonResponseDto](generated/immich/openapi_client/docs/PersonResponseDto.md)
+ - [PersonStatisticsResponseDto](generated/immich/openapi_client/docs/PersonStatisticsResponseDto.md)
+ - [PersonUpdateDto](generated/immich/openapi_client/docs/PersonUpdateDto.md)
+ - [PersonWithFacesResponseDto](generated/immich/openapi_client/docs/PersonWithFacesResponseDto.md)
+ - [PlacesResponseDto](generated/immich/openapi_client/docs/PlacesResponseDto.md)
+ - [PurchaseResponse](generated/immich/openapi_client/docs/PurchaseResponse.md)
+ - [PurchaseUpdate](generated/immich/openapi_client/docs/PurchaseUpdate.md)
+ - [QueueStatusDto](generated/immich/openapi_client/docs/QueueStatusDto.md)
+ - [RandomSearchDto](generated/immich/openapi_client/docs/RandomSearchDto.md)
+ - [RatingsResponse](generated/immich/openapi_client/docs/RatingsResponse.md)
+ - [RatingsUpdate](generated/immich/openapi_client/docs/RatingsUpdate.md)
+ - [ReactionLevel](generated/immich/openapi_client/docs/ReactionLevel.md)
+ - [ReactionType](generated/immich/openapi_client/docs/ReactionType.md)
+ - [ReverseGeocodingStateResponseDto](generated/immich/openapi_client/docs/ReverseGeocodingStateResponseDto.md)
+ - [SearchAlbumResponseDto](generated/immich/openapi_client/docs/SearchAlbumResponseDto.md)
+ - [SearchAssetResponseDto](generated/immich/openapi_client/docs/SearchAssetResponseDto.md)
+ - [SearchExploreItem](generated/immich/openapi_client/docs/SearchExploreItem.md)
+ - [SearchExploreResponseDto](generated/immich/openapi_client/docs/SearchExploreResponseDto.md)
+ - [SearchFacetCountResponseDto](generated/immich/openapi_client/docs/SearchFacetCountResponseDto.md)
+ - [SearchFacetResponseDto](generated/immich/openapi_client/docs/SearchFacetResponseDto.md)
+ - [SearchResponseDto](generated/immich/openapi_client/docs/SearchResponseDto.md)
+ - [SearchSuggestionType](generated/immich/openapi_client/docs/SearchSuggestionType.md)
+ - [ServerAboutResponseDto](generated/immich/openapi_client/docs/ServerAboutResponseDto.md)
+ - [ServerConfigDto](generated/immich/openapi_client/docs/ServerConfigDto.md)
+ - [ServerFeaturesDto](generated/immich/openapi_client/docs/ServerFeaturesDto.md)
+ - [ServerMediaTypesResponseDto](generated/immich/openapi_client/docs/ServerMediaTypesResponseDto.md)
+ - [ServerPingResponse](generated/immich/openapi_client/docs/ServerPingResponse.md)
+ - [ServerStatsResponseDto](generated/immich/openapi_client/docs/ServerStatsResponseDto.md)
+ - [ServerStorageResponseDto](generated/immich/openapi_client/docs/ServerStorageResponseDto.md)
+ - [ServerThemeDto](generated/immich/openapi_client/docs/ServerThemeDto.md)
+ - [ServerVersionHistoryResponseDto](generated/immich/openapi_client/docs/ServerVersionHistoryResponseDto.md)
+ - [ServerVersionResponseDto](generated/immich/openapi_client/docs/ServerVersionResponseDto.md)
+ - [SessionResponseDto](generated/immich/openapi_client/docs/SessionResponseDto.md)
+ - [SharedLinkCreateDto](generated/immich/openapi_client/docs/SharedLinkCreateDto.md)
+ - [SharedLinkEditDto](generated/immich/openapi_client/docs/SharedLinkEditDto.md)
+ - [SharedLinkResponseDto](generated/immich/openapi_client/docs/SharedLinkResponseDto.md)
+ - [SharedLinkType](generated/immich/openapi_client/docs/SharedLinkType.md)
+ - [SharedLinksResponse](generated/immich/openapi_client/docs/SharedLinksResponse.md)
+ - [SharedLinksUpdate](generated/immich/openapi_client/docs/SharedLinksUpdate.md)
+ - [SignUpDto](generated/immich/openapi_client/docs/SignUpDto.md)
+ - [SmartSearchDto](generated/immich/openapi_client/docs/SmartSearchDto.md)
+ - [SourceType](generated/immich/openapi_client/docs/SourceType.md)
+ - [StackCreateDto](generated/immich/openapi_client/docs/StackCreateDto.md)
+ - [StackResponseDto](generated/immich/openapi_client/docs/StackResponseDto.md)
+ - [StackUpdateDto](generated/immich/openapi_client/docs/StackUpdateDto.md)
+ - [SyncAckDeleteDto](generated/immich/openapi_client/docs/SyncAckDeleteDto.md)
+ - [SyncAckDto](generated/immich/openapi_client/docs/SyncAckDto.md)
+ - [SyncAckSetDto](generated/immich/openapi_client/docs/SyncAckSetDto.md)
+ - [SyncAssetDeleteV1](generated/immich/openapi_client/docs/SyncAssetDeleteV1.md)
+ - [SyncAssetExifV1](generated/immich/openapi_client/docs/SyncAssetExifV1.md)
+ - [SyncAssetV1](generated/immich/openapi_client/docs/SyncAssetV1.md)
+ - [SyncEntityType](generated/immich/openapi_client/docs/SyncEntityType.md)
+ - [SyncPartnerDeleteV1](generated/immich/openapi_client/docs/SyncPartnerDeleteV1.md)
+ - [SyncPartnerV1](generated/immich/openapi_client/docs/SyncPartnerV1.md)
+ - [SyncRequestType](generated/immich/openapi_client/docs/SyncRequestType.md)
+ - [SyncStreamDto](generated/immich/openapi_client/docs/SyncStreamDto.md)
+ - [SyncUserDeleteV1](generated/immich/openapi_client/docs/SyncUserDeleteV1.md)
+ - [SyncUserV1](generated/immich/openapi_client/docs/SyncUserV1.md)
+ - [SystemConfigBackupsDto](generated/immich/openapi_client/docs/SystemConfigBackupsDto.md)
+ - [SystemConfigDto](generated/immich/openapi_client/docs/SystemConfigDto.md)
+ - [SystemConfigFFmpegDto](generated/immich/openapi_client/docs/SystemConfigFFmpegDto.md)
+ - [SystemConfigFacesDto](generated/immich/openapi_client/docs/SystemConfigFacesDto.md)
+ - [SystemConfigGeneratedFullsizeImageDto](generated/immich/openapi_client/docs/SystemConfigGeneratedFullsizeImageDto.md)
+ - [SystemConfigGeneratedImageDto](generated/immich/openapi_client/docs/SystemConfigGeneratedImageDto.md)
+ - [SystemConfigImageDto](generated/immich/openapi_client/docs/SystemConfigImageDto.md)
+ - [SystemConfigJobDto](generated/immich/openapi_client/docs/SystemConfigJobDto.md)
+ - [SystemConfigLibraryDto](generated/immich/openapi_client/docs/SystemConfigLibraryDto.md)
+ - [SystemConfigLibraryScanDto](generated/immich/openapi_client/docs/SystemConfigLibraryScanDto.md)
+ - [SystemConfigLibraryWatchDto](generated/immich/openapi_client/docs/SystemConfigLibraryWatchDto.md)
+ - [SystemConfigLoggingDto](generated/immich/openapi_client/docs/SystemConfigLoggingDto.md)
+ - [SystemConfigMachineLearningDto](generated/immich/openapi_client/docs/SystemConfigMachineLearningDto.md)
+ - [SystemConfigMapDto](generated/immich/openapi_client/docs/SystemConfigMapDto.md)
+ - [SystemConfigMetadataDto](generated/immich/openapi_client/docs/SystemConfigMetadataDto.md)
+ - [SystemConfigNewVersionCheckDto](generated/immich/openapi_client/docs/SystemConfigNewVersionCheckDto.md)
+ - [SystemConfigNotificationsDto](generated/immich/openapi_client/docs/SystemConfigNotificationsDto.md)
+ - [SystemConfigOAuthDto](generated/immich/openapi_client/docs/SystemConfigOAuthDto.md)
+ - [SystemConfigPasswordLoginDto](generated/immich/openapi_client/docs/SystemConfigPasswordLoginDto.md)
+ - [SystemConfigReverseGeocodingDto](generated/immich/openapi_client/docs/SystemConfigReverseGeocodingDto.md)
+ - [SystemConfigServerDto](generated/immich/openapi_client/docs/SystemConfigServerDto.md)
+ - [SystemConfigSmtpDto](generated/immich/openapi_client/docs/SystemConfigSmtpDto.md)
+ - [SystemConfigSmtpTransportDto](generated/immich/openapi_client/docs/SystemConfigSmtpTransportDto.md)
+ - [SystemConfigStorageTemplateDto](generated/immich/openapi_client/docs/SystemConfigStorageTemplateDto.md)
+ - [SystemConfigTemplateEmailsDto](generated/immich/openapi_client/docs/SystemConfigTemplateEmailsDto.md)
+ - [SystemConfigTemplateStorageOptionDto](generated/immich/openapi_client/docs/SystemConfigTemplateStorageOptionDto.md)
+ - [SystemConfigTemplatesDto](generated/immich/openapi_client/docs/SystemConfigTemplatesDto.md)
+ - [SystemConfigThemeDto](generated/immich/openapi_client/docs/SystemConfigThemeDto.md)
+ - [SystemConfigTrashDto](generated/immich/openapi_client/docs/SystemConfigTrashDto.md)
+ - [SystemConfigUserDto](generated/immich/openapi_client/docs/SystemConfigUserDto.md)
+ - [TagBulkAssetsDto](generated/immich/openapi_client/docs/TagBulkAssetsDto.md)
+ - [TagBulkAssetsResponseDto](generated/immich/openapi_client/docs/TagBulkAssetsResponseDto.md)
+ - [TagCreateDto](generated/immich/openapi_client/docs/TagCreateDto.md)
+ - [TagResponseDto](generated/immich/openapi_client/docs/TagResponseDto.md)
+ - [TagUpdateDto](generated/immich/openapi_client/docs/TagUpdateDto.md)
+ - [TagUpsertDto](generated/immich/openapi_client/docs/TagUpsertDto.md)
+ - [TagsResponse](generated/immich/openapi_client/docs/TagsResponse.md)
+ - [TagsUpdate](generated/immich/openapi_client/docs/TagsUpdate.md)
+ - [TemplateDto](generated/immich/openapi_client/docs/TemplateDto.md)
+ - [TemplateResponseDto](generated/immich/openapi_client/docs/TemplateResponseDto.md)
+ - [TestEmailResponseDto](generated/immich/openapi_client/docs/TestEmailResponseDto.md)
+ - [TimeBucketResponseDto](generated/immich/openapi_client/docs/TimeBucketResponseDto.md)
+ - [TimeBucketSize](generated/immich/openapi_client/docs/TimeBucketSize.md)
+ - [ToneMapping](generated/immich/openapi_client/docs/ToneMapping.md)
+ - [TranscodeHWAccel](generated/immich/openapi_client/docs/TranscodeHWAccel.md)
+ - [TranscodePolicy](generated/immich/openapi_client/docs/TranscodePolicy.md)
+ - [TrashResponseDto](generated/immich/openapi_client/docs/TrashResponseDto.md)
+ - [UpdateAlbumDto](generated/immich/openapi_client/docs/UpdateAlbumDto.md)
+ - [UpdateAlbumUserDto](generated/immich/openapi_client/docs/UpdateAlbumUserDto.md)
+ - [UpdateAssetDto](generated/immich/openapi_client/docs/UpdateAssetDto.md)
+ - [UpdateLibraryDto](generated/immich/openapi_client/docs/UpdateLibraryDto.md)
+ - [UpdatePartnerDto](generated/immich/openapi_client/docs/UpdatePartnerDto.md)
+ - [UsageByUserDto](generated/immich/openapi_client/docs/UsageByUserDto.md)
+ - [UserAdminCreateDto](generated/immich/openapi_client/docs/UserAdminCreateDto.md)
+ - [UserAdminDeleteDto](generated/immich/openapi_client/docs/UserAdminDeleteDto.md)
+ - [UserAdminResponseDto](generated/immich/openapi_client/docs/UserAdminResponseDto.md)
+ - [UserAdminUpdateDto](generated/immich/openapi_client/docs/UserAdminUpdateDto.md)
+ - [UserAvatarColor](generated/immich/openapi_client/docs/UserAvatarColor.md)
+ - [UserLicense](generated/immich/openapi_client/docs/UserLicense.md)
+ - [UserPreferencesResponseDto](generated/immich/openapi_client/docs/UserPreferencesResponseDto.md)
+ - [UserPreferencesUpdateDto](generated/immich/openapi_client/docs/UserPreferencesUpdateDto.md)
+ - [UserResponseDto](generated/immich/openapi_client/docs/UserResponseDto.md)
+ - [UserStatus](generated/immich/openapi_client/docs/UserStatus.md)
+ - [UserUpdateMeDto](generated/immich/openapi_client/docs/UserUpdateMeDto.md)
+ - [ValidateAccessTokenResponseDto](generated/immich/openapi_client/docs/ValidateAccessTokenResponseDto.md)
+ - [ValidateLibraryDto](generated/immich/openapi_client/docs/ValidateLibraryDto.md)
+ - [ValidateLibraryImportPathResponseDto](generated/immich/openapi_client/docs/ValidateLibraryImportPathResponseDto.md)
+ - [ValidateLibraryResponseDto](generated/immich/openapi_client/docs/ValidateLibraryResponseDto.md)
+ - [VideoCodec](generated/immich/openapi_client/docs/VideoCodec.md)
+ - [VideoContainer](generated/immich/openapi_client/docs/VideoContainer.md)
+
+
+
+## Documentation For Authorization
+
+
+Authentication schemes defined for the API:
+
+### bearer
+
+- **Type**: Bearer authentication (JWT)
+
+
+### cookie
+
+- **Type**: API key
+- **API key parameter name**: immich_access_token
+- **Location**:
+
+
+### api_key
+
+- **Type**: API key
+- **API key parameter name**: x-api-key
+- **Location**: HTTP header
+
+
+## Author
+
+
+
+
diff --git a/immich-export.py b/immich-export.py
new file mode 100644
index 0000000..a4a52c3
--- /dev/null
+++ b/immich-export.py
@@ -0,0 +1,95 @@
+import os
+import re
+import time
+
+import generated.immich.openapi_client as openapi_client
+from generated.immich.openapi_client.rest import ApiException
+
+configuration = openapi_client.Configuration(
+ host = os.environ['IMMICH_HOST'],
+ api_key = { 'api_key': os.environ['IMMICH_API_KEY'] },
+)
+
+# Set target directory from env var or use default
+target_dir = os.getenv('TARGET_DIR', './export')
+if not os.path.exists(target_dir):
+ os.makedirs(target_dir)
+
+# Function to sanitize filenames
+def sanitize_filename(filename):
+ # Replace invalid characters with underscore
+ sanitized = re.sub(r'[\\/*?:"<>|]', '_', filename)
+ # Remove leading/trailing whitespace
+ sanitized = sanitized.strip()
+ # Replace empty filename with default
+ if not sanitized:
+ sanitized = "unnamed"
+ return sanitized
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as immich_client:
+ # Create instances of the API classes
+ albums_api = openapi_client.AlbumsApi(immich_client)
+ assets_api = openapi_client.AssetsApi(immich_client)
+
+ try:
+ all_albums = albums_api.get_all_albums()
+ print(f"Found {len(all_albums)} albums")
+
+ # Limit to 5 albums for debugging
+ albums_to_process = all_albums[:5]
+ print(f"Processing {len(albums_to_process)} albums for debugging")
+
+ for album in albums_to_process:
+ sanitized_album_name = sanitize_filename(album.album_name)
+ album_path = os.path.join(target_dir, sanitized_album_name)
+ if not os.path.exists(album_path):
+ os.makedirs(album_path)
+ print(f"Created directory for album: {sanitized_album_name}")
+
+ try:
+ # Get detailed album info with assets
+ album_info = albums_api.get_album_info(album.id)
+ print(f"Album '{sanitized_album_name}' has {len(album_info.assets)} assets")
+
+ # Download each asset in the album
+ for asset in album_info.assets:
+ try:
+ # Create filename from original filename or asset ID if not available
+ asset_filename = asset.original_file_name if asset.original_file_name else f"{asset.id}.jpg"
+ sanitized_asset_filename = sanitize_filename(asset_filename)
+ asset_path = os.path.join(album_path, sanitized_asset_filename)
+
+ # Skip if file already exists
+ if os.path.exists(asset_path):
+ print(f" Skipping existing file: {sanitized_asset_filename}")
+ continue
+
+ print(f" Downloading asset: {sanitized_asset_filename}")
+
+ # Download the asset
+ asset_data = assets_api.download_asset(asset.id)
+
+ # Save the asset to the album folder
+ with open(asset_path, 'wb') as f:
+ f.write(asset_data)
+
+ print(f" Saved asset to: {asset_path}")
+
+ # Add a small delay to avoid overwhelming the server
+ # time.sleep(0.5)
+
+ except ApiException as e:
+ print(f" Error downloading asset {asset.id}: {e}")
+ except Exception as e:
+ print(f" Unexpected error downloading asset {asset.id}: {e}")
+
+ except ApiException as e:
+ print(f"Error getting album info for {album.id}: {e}")
+ except Exception as e:
+ print(f"Unexpected error processing album {album.id}: {e}")
+
+ except ApiException as e:
+ print(f"Exception while retrieving albums: {e}")
+ except Exception as e:
+ print(f"Unexpected error: {e}")
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..1901dfa
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,4 @@
+urllib3 >= 1.25.3, < 3.0.0
+python-dateutil >= 2.8.2
+pydantic >= 2
+typing-extensions >= 4.7.1