# coding: utf-8

"""
    kameleo-local-api

    You can use the following API endpoints to communicate with the local running Kameleo programmatically.

    The version of the OpenAPI document: 4.3.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 ProfileLifetimeState(str, Enum):
    """
    Represents the lifetime states of a profile, indicating which actions  can be performed with the associated browser engine at each state. Possible values are:  - Created: Profile is created; the associated browser engine is not started.  - Starting: The associated browser engine is starting.  - Running: The associated browser engine is currently running.  - Terminating: The associated browser engine is in the process of terminating.  - Terminated: The associated browser engine is not running but has been started at least once.  - Locked: The profile is currently being used by another user.  - Loading: The profile data or the browser engine is syncing with the cloud storage.  - Unknown: State of the profile is undefined.
    """

    """
    allowed enum values
    """
    CREATED = 'created'
    STARTING = 'starting'
    RUNNING = 'running'
    TERMINATING = 'terminating'
    TERMINATED = 'terminated'
    LOCKED = 'locked'
    LOADING = 'loading'
    UNKNOWN = 'unknown'

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


