# The Okta software accompanied by this notice is provided pursuant to the following terms:
# Copyright © 2025-Present, Okta, Inc.
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
# License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS
# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and limitations under the License.
# coding: utf-8

"""
Okta Admin Management

Allows customers to easily access the Okta Management APIs

The version of the OpenAPI document: 5.1.0
Contact: devex-public@okta.com
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 ApplicationSignOnMode(str, Enum):
    """
    Authentication mode for the app  | signOnMode | Description | | ---------- | ----------- | | AUTO_LOGIN | Secure Web
    Authentication (SWA) | | BASIC_AUTH | HTTP Basic Authentication with Okta Browser Plugin | | BOOKMARK | Just a bookmark
    (no-authentication) | | BROWSER_PLUGIN | Secure Web Authentication (SWA) with Okta Browser Plugin | | OPENID_CONNECT |
    Federated Authentication with OpenID Connect (OIDC) | | SAML_1_1 | Federated Authentication with SAML 1.1 WebSSO (not
    supported for custom apps) | | SAML_2_0 | Federated Authentication with SAML 2.0 WebSSO | | SECURE_PASSWORD_STORE |
    Secure Web Authentication (SWA) with POST (plugin not required) | | WS_FEDERATION | Federated Authentication with
    WS-Federation Passive Requestor Profile |  Select the `signOnMode` for your custom app:
    """

    """
    allowed enum values
    """
    AUTO_LOGIN = "AUTO_LOGIN"
    BASIC_AUTH = "BASIC_AUTH"
    BOOKMARK = "BOOKMARK"
    BROWSER_PLUGIN = "BROWSER_PLUGIN"
    OPENID_CONNECT = "OPENID_CONNECT"
    SAML_1_1 = "SAML_1_1"
    SAML_2_0 = "SAML_2_0"
    SECURE_PASSWORD_STORE = "SECURE_PASSWORD_STORE"
    WS_FEDERATION = "WS_FEDERATION"

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