# coding: utf-8

"""
    Zitadel SDK

    The Zitadel SDK is a convenience wrapper around the Zitadel APIs to assist you in integrating with your Zitadel environment. This SDK enables you to handle resources, settings, and configurations within the Zitadel platform.

    The version of the OpenAPI document: 1.0.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 IdentityProviderServiceAutoLinkingOption(str, Enum):
    """
     - AUTO_LINKING_OPTION_UNSPECIFIED: AUTO_LINKING_OPTION_UNSPECIFIED disables the auto linking prompt.  - AUTO_LINKING_OPTION_USERNAME: AUTO_LINKING_OPTION_USERNAME will use the username of the external user to check for a corresponding ZITADEL user.  - AUTO_LINKING_OPTION_EMAIL: AUTO_LINKING_OPTION_EMAIL  will use the email of the external user to check for a corresponding ZITADEL user with the same verified email Note that in case multiple users match, no prompt will be shown.
    """

    """
    allowed enum values
    """
    AUTO_LINKING_OPTION_UNSPECIFIED = 'AUTO_LINKING_OPTION_UNSPECIFIED'
    AUTO_LINKING_OPTION_USERNAME = 'AUTO_LINKING_OPTION_USERNAME'
    AUTO_LINKING_OPTION_EMAIL = 'AUTO_LINKING_OPTION_EMAIL'

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


