from enum import Enum


class Permission(str, Enum):
    ACTIVITY_CREATE = "activity.create"
    ACTIVITY_DELETE = "activity.delete"
    ACTIVITY_READ = "activity.read"
    ACTIVITY_STATISTICS = "activity.statistics"
    ACTIVITY_UPDATE = "activity.update"
    ADMINAUTH_UNLINKALL = "adminAuth.unlinkAll"
    ADMINUSER_CREATE = "adminUser.create"
    ADMINUSER_DELETE = "adminUser.delete"
    ADMINUSER_READ = "adminUser.read"
    ADMINUSER_UPDATE = "adminUser.update"
    ALBUMASSET_CREATE = "albumAsset.create"
    ALBUMASSET_DELETE = "albumAsset.delete"
    ALBUMUSER_CREATE = "albumUser.create"
    ALBUMUSER_DELETE = "albumUser.delete"
    ALBUMUSER_UPDATE = "albumUser.update"
    ALBUM_CREATE = "album.create"
    ALBUM_DELETE = "album.delete"
    ALBUM_DOWNLOAD = "album.download"
    ALBUM_READ = "album.read"
    ALBUM_SHARE = "album.share"
    ALBUM_STATISTICS = "album.statistics"
    ALBUM_UPDATE = "album.update"
    ALL = "all"
    APIKEY_CREATE = "apiKey.create"
    APIKEY_DELETE = "apiKey.delete"
    APIKEY_READ = "apiKey.read"
    APIKEY_UPDATE = "apiKey.update"
    ARCHIVE_READ = "archive.read"
    ASSET_DELETE = "asset.delete"
    ASSET_DOWNLOAD = "asset.download"
    ASSET_READ = "asset.read"
    ASSET_REPLACE = "asset.replace"
    ASSET_SHARE = "asset.share"
    ASSET_STATISTICS = "asset.statistics"
    ASSET_UPDATE = "asset.update"
    ASSET_UPLOAD = "asset.upload"
    ASSET_VIEW = "asset.view"
    AUTHDEVICE_DELETE = "authDevice.delete"
    AUTH_CHANGEPASSWORD = "auth.changePassword"
    DUPLICATE_DELETE = "duplicate.delete"
    DUPLICATE_READ = "duplicate.read"
    FACE_CREATE = "face.create"
    FACE_DELETE = "face.delete"
    FACE_READ = "face.read"
    FACE_UPDATE = "face.update"
    JOB_CREATE = "job.create"
    JOB_READ = "job.read"
    LIBRARY_CREATE = "library.create"
    LIBRARY_DELETE = "library.delete"
    LIBRARY_READ = "library.read"
    LIBRARY_STATISTICS = "library.statistics"
    LIBRARY_UPDATE = "library.update"
    MEMORYASSET_CREATE = "memoryAsset.create"
    MEMORYASSET_DELETE = "memoryAsset.delete"
    MEMORY_CREATE = "memory.create"
    MEMORY_DELETE = "memory.delete"
    MEMORY_READ = "memory.read"
    MEMORY_STATISTICS = "memory.statistics"
    MEMORY_UPDATE = "memory.update"
    NOTIFICATION_CREATE = "notification.create"
    NOTIFICATION_DELETE = "notification.delete"
    NOTIFICATION_READ = "notification.read"
    NOTIFICATION_UPDATE = "notification.update"
    PARTNER_CREATE = "partner.create"
    PARTNER_DELETE = "partner.delete"
    PARTNER_READ = "partner.read"
    PARTNER_UPDATE = "partner.update"
    PERSON_CREATE = "person.create"
    PERSON_DELETE = "person.delete"
    PERSON_MERGE = "person.merge"
    PERSON_READ = "person.read"
    PERSON_REASSIGN = "person.reassign"
    PERSON_STATISTICS = "person.statistics"
    PERSON_UPDATE = "person.update"
    PINCODE_CREATE = "pinCode.create"
    PINCODE_DELETE = "pinCode.delete"
    PINCODE_UPDATE = "pinCode.update"
    SERVERLICENSE_DELETE = "serverLicense.delete"
    SERVERLICENSE_READ = "serverLicense.read"
    SERVERLICENSE_UPDATE = "serverLicense.update"
    SERVER_ABOUT = "server.about"
    SERVER_APKLINKS = "server.apkLinks"
    SERVER_STATISTICS = "server.statistics"
    SERVER_STORAGE = "server.storage"
    SERVER_VERSIONCHECK = "server.versionCheck"
    SESSION_CREATE = "session.create"
    SESSION_DELETE = "session.delete"
    SESSION_LOCK = "session.lock"
    SESSION_READ = "session.read"
    SESSION_UPDATE = "session.update"
    SHAREDLINK_CREATE = "sharedLink.create"
    SHAREDLINK_DELETE = "sharedLink.delete"
    SHAREDLINK_READ = "sharedLink.read"
    SHAREDLINK_UPDATE = "sharedLink.update"
    STACK_CREATE = "stack.create"
    STACK_DELETE = "stack.delete"
    STACK_READ = "stack.read"
    STACK_UPDATE = "stack.update"
    SYNCCHECKPOINT_DELETE = "syncCheckpoint.delete"
    SYNCCHECKPOINT_READ = "syncCheckpoint.read"
    SYNCCHECKPOINT_UPDATE = "syncCheckpoint.update"
    SYNC_STREAM = "sync.stream"
    SYSTEMCONFIG_READ = "systemConfig.read"
    SYSTEMCONFIG_UPDATE = "systemConfig.update"
    SYSTEMMETADATA_READ = "systemMetadata.read"
    SYSTEMMETADATA_UPDATE = "systemMetadata.update"
    TAG_ASSET = "tag.asset"
    TAG_CREATE = "tag.create"
    TAG_DELETE = "tag.delete"
    TAG_READ = "tag.read"
    TAG_UPDATE = "tag.update"
    TIMELINE_DOWNLOAD = "timeline.download"
    TIMELINE_READ = "timeline.read"
    USERLICENSE_CREATE = "userLicense.create"
    USERLICENSE_DELETE = "userLicense.delete"
    USERLICENSE_READ = "userLicense.read"
    USERLICENSE_UPDATE = "userLicense.update"
    USERONBOARDING_DELETE = "userOnboarding.delete"
    USERONBOARDING_READ = "userOnboarding.read"
    USERONBOARDING_UPDATE = "userOnboarding.update"
    USERPREFERENCE_READ = "userPreference.read"
    USERPREFERENCE_UPDATE = "userPreference.update"
    USERPROFILEIMAGE_CREATE = "userProfileImage.create"
    USERPROFILEIMAGE_DELETE = "userProfileImage.delete"
    USERPROFILEIMAGE_READ = "userProfileImage.read"
    USERPROFILEIMAGE_UPDATE = "userProfileImage.update"
    USER_READ = "user.read"
    USER_UPDATE = "user.update"

    def __str__(self) -> str:
        return str(self.value)
