# 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 IPServiceCategory(str, Enum):
    """
    An IP service offered by a provider, such as a proxy or VPN
    """

    """
    allowed enum values
    """
    ABCPROXY_PROXY = "ABCPROXY_PROXY"
    ALL_ANONYMIZERS = "ALL_ANONYMIZERS"
    ALL_ANONYMIZERS_EXCEPT_TOR = "ALL_ANONYMIZERS_EXCEPT_TOR"
    ALL_IP_SERVICES = "ALL_IP_SERVICES"
    ALL_PROXIES_VPNS = "ALL_PROXIES_VPNS"
    ANONYMIZER_TOR = "ANONYMIZER_TOR"
    APPLE_ICLOUD_RELAY_PROXY = "APPLE_ICLOUD_RELAY_PROXY"
    ASTRILL_VPN = "ASTRILL_VPN"
    AVAST_VPN = "AVAST_VPN"
    BIGMAMA_PROXY = "BIGMAMA_PROXY"
    CYBERGHOST_VPN = "CYBERGHOST_VPN"
    DATAIMPULSE_PROXY = "DATAIMPULSE_PROXY"
    EXPRESS_VPN = "EXPRESS_VPN"
    FACELESS_PROXY = "FACELESS_PROXY"
    FROXY_PROXY = "FROXY_PROXY"
    GEONODE_PROXY = "GEONODE_PROXY"
    GLOBALPROTECT_VPN = "GLOBALPROTECT_VPN"
    GOOGLE_VPN = "GOOGLE_VPN"
    IPCOLA_PROXY = "IPCOLA_PROXY"
    IPIDEA_PROXY = "IPIDEA_PROXY"
    IPROXYSHOP_PROXY = "IPROXYSHOP_PROXY"
    LUMINATI_PROXY = "LUMINATI_PROXY"
    MULLVAD_VPN = "MULLVAD_VPN"
    NETNUT_PROXY = "NETNUT_PROXY"
    NEXUS_PROXY = "NEXUS_PROXY"
    NORD_VPN = "NORD_VPN"
    OCULUS_PROXY = "OCULUS_PROXY"
    OXYLABS_PROXY = "OXYLABS_PROXY"
    PIA_VPN = "PIA_VPN"
    PROXYRACK_PROXY = "PROXYRACK_PROXY"
    SAMSUNG_VPN = "SAMSUNG_VPN"
    SPACEPROXIES_PROXY = "SPACEPROXIES_PROXY"
    SURFSHARK_VPN = "SURFSHARK_VPN"
    SYMANTEC_VPN = "SYMANTEC_VPN"
    TRENDMICRO_VPN = "TRENDMICRO_VPN"
    ULTRASURF_VPN = "ULTRASURF_VPN"
    WARP_VPN = "WARP_VPN"
    YILU_PROXY = "YILU_PROXY"

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