# coding: utf-8

"""
    Jellyfin API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    The version of the OpenAPI document: 10.11.0
    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 SessionMessageType(str, Enum):
    """
    The different kinds of messages that are used in the WebSocket api.
    """

    """
    allowed enum values
    """
    FORCEKEEPALIVE = 'ForceKeepAlive'
    GENERALCOMMAND = 'GeneralCommand'
    USERDATACHANGED = 'UserDataChanged'
    SESSIONS = 'Sessions'
    PLAY = 'Play'
    SYNCPLAYCOMMAND = 'SyncPlayCommand'
    SYNCPLAYGROUPUPDATE = 'SyncPlayGroupUpdate'
    PLAYSTATE = 'Playstate'
    RESTARTREQUIRED = 'RestartRequired'
    SERVERSHUTTINGDOWN = 'ServerShuttingDown'
    SERVERRESTARTING = 'ServerRestarting'
    LIBRARYCHANGED = 'LibraryChanged'
    USERDELETED = 'UserDeleted'
    USERUPDATED = 'UserUpdated'
    SERIESTIMERCREATED = 'SeriesTimerCreated'
    TIMERCREATED = 'TimerCreated'
    SERIESTIMERCANCELLED = 'SeriesTimerCancelled'
    TIMERCANCELLED = 'TimerCancelled'
    REFRESHPROGRESS = 'RefreshProgress'
    SCHEDULEDTASKENDED = 'ScheduledTaskEnded'
    PACKAGEINSTALLATIONCANCELLED = 'PackageInstallationCancelled'
    PACKAGEINSTALLATIONFAILED = 'PackageInstallationFailed'
    PACKAGEINSTALLATIONCOMPLETED = 'PackageInstallationCompleted'
    PACKAGEINSTALLING = 'PackageInstalling'
    PACKAGEUNINSTALLED = 'PackageUninstalled'
    ACTIVITYLOGENTRY = 'ActivityLogEntry'
    SCHEDULEDTASKSINFO = 'ScheduledTasksInfo'
    ACTIVITYLOGENTRYSTART = 'ActivityLogEntryStart'
    ACTIVITYLOGENTRYSTOP = 'ActivityLogEntryStop'
    SESSIONSSTART = 'SessionsStart'
    SESSIONSSTOP = 'SessionsStop'
    SCHEDULEDTASKSINFOSTART = 'ScheduledTasksInfoStart'
    SCHEDULEDTASKSINFOSTOP = 'ScheduledTasksInfoStop'
    KEEPALIVE = 'KeepAlive'

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


