# coding: utf-8

"""
    Equinix Fabric API v4
    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 SortBy(str, Enum):
    """
    Possible field names to use on sorting
    """

    """
    allowed enum values
    """
    SLASH_NAME = '/name'
    SLASH_DIRECTION = '/direction'
    SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_NAME = '/aSide/accessPoint/name'
    SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_TYPE = '/aSide/accessPoint/type'
    SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_ACCOUNT_SLASH_ACCOUNT_NAME = '/aSide/accessPoint/account/accountName'
    SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LOCATION_SLASH_METRO_NAME = '/aSide/accessPoint/location/metroName'
    SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LOCATION_SLASH_METRO_CODE = '/aSide/accessPoint/location/metroCode'
    SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_C_TAG = '/aSide/accessPoint/linkProtocol/vlanCTag'
    SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_S_TAG = '/aSide/accessPoint/linkProtocol/vlanSTag'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_NAME = '/zSide/accessPoint/name'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_TYPE = '/zSide/accessPoint/type'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_ACCOUNT_SLASH_ACCOUNT_NAME = '/zSide/accessPoint/account/accountName'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LOCATION_SLASH_METRO_NAME = '/zSide/accessPoint/location/metroName'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LOCATION_SLASH_METRO_CODE = '/zSide/accessPoint/location/metroCode'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_C_TAG = '/zSide/accessPoint/linkProtocol/vlanCTag'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_S_TAG = '/zSide/accessPoint/linkProtocol/vlanSTag'
    SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_AUTHENTICATION_KEY = '/zSide/accessPoint/authenticationKey'
    SLASH_BANDWIDTH = '/bandwidth'
    SLASH_GEO_SCOPE = '/geoScope'
    SLASH_UUID = '/uuid'
    SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME = '/changeLog/createdDateTime'
    SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME = '/changeLog/updatedDateTime'
    SLASH_OPERATION_SLASH_EQUINIX_STATUS = '/operation/equinixStatus'
    SLASH_OPERATION_SLASH_PROVIDER_STATUS = '/operation/providerStatus'
    SLASH_REDUNDANCY_SLASH_PRIORITY = '/redundancy/priority'

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


