# coding: utf-8

"""
Immich

Immich API

The version of the OpenAPI document: 2.4.1
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
    """
    AUTHUSERV1 = "AuthUserV1"
    USERV1 = "UserV1"
    USERDELETEV1 = "UserDeleteV1"
    ASSETV1 = "AssetV1"
    ASSETDELETEV1 = "AssetDeleteV1"
    ASSETEXIFV1 = "AssetExifV1"
    ASSETMETADATAV1 = "AssetMetadataV1"
    ASSETMETADATADELETEV1 = "AssetMetadataDeleteV1"
    PARTNERV1 = "PartnerV1"
    PARTNERDELETEV1 = "PartnerDeleteV1"
    PARTNERASSETV1 = "PartnerAssetV1"
    PARTNERASSETBACKFILLV1 = "PartnerAssetBackfillV1"
    PARTNERASSETDELETEV1 = "PartnerAssetDeleteV1"
    PARTNERASSETEXIFV1 = "PartnerAssetExifV1"
    PARTNERASSETEXIFBACKFILLV1 = "PartnerAssetExifBackfillV1"
    PARTNERSTACKBACKFILLV1 = "PartnerStackBackfillV1"
    PARTNERSTACKDELETEV1 = "PartnerStackDeleteV1"
    PARTNERSTACKV1 = "PartnerStackV1"
    ALBUMV1 = "AlbumV1"
    ALBUMDELETEV1 = "AlbumDeleteV1"
    ALBUMUSERV1 = "AlbumUserV1"
    ALBUMUSERBACKFILLV1 = "AlbumUserBackfillV1"
    ALBUMUSERDELETEV1 = "AlbumUserDeleteV1"
    ALBUMASSETCREATEV1 = "AlbumAssetCreateV1"
    ALBUMASSETUPDATEV1 = "AlbumAssetUpdateV1"
    ALBUMASSETBACKFILLV1 = "AlbumAssetBackfillV1"
    ALBUMASSETEXIFCREATEV1 = "AlbumAssetExifCreateV1"
    ALBUMASSETEXIFUPDATEV1 = "AlbumAssetExifUpdateV1"
    ALBUMASSETEXIFBACKFILLV1 = "AlbumAssetExifBackfillV1"
    ALBUMTOASSETV1 = "AlbumToAssetV1"
    ALBUMTOASSETDELETEV1 = "AlbumToAssetDeleteV1"
    ALBUMTOASSETBACKFILLV1 = "AlbumToAssetBackfillV1"
    MEMORYV1 = "MemoryV1"
    MEMORYDELETEV1 = "MemoryDeleteV1"
    MEMORYTOASSETV1 = "MemoryToAssetV1"
    MEMORYTOASSETDELETEV1 = "MemoryToAssetDeleteV1"
    STACKV1 = "StackV1"
    STACKDELETEV1 = "StackDeleteV1"
    PERSONV1 = "PersonV1"
    PERSONDELETEV1 = "PersonDeleteV1"
    ASSETFACEV1 = "AssetFaceV1"
    ASSETFACEDELETEV1 = "AssetFaceDeleteV1"
    USERMETADATAV1 = "UserMetadataV1"
    USERMETADATADELETEV1 = "UserMetadataDeleteV1"
    SYNCACKV1 = "SyncAckV1"
    SYNCRESETV1 = "SyncResetV1"
    SYNCCOMPLETEV1 = "SyncCompleteV1"

    @classmethod
    def from_json(cls, json_str: str) -> Self:
        """Create an instance of SyncEntityType from a JSON string"""
        return cls(json.loads(json_str))
