# coding: utf-8

"""
    ACROSS Server

    Server providing tools and utilities for various NASA missions to aid in coordination of large observation efforts.

    The version of the OpenAPI document: 1.6.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 ConstraintType(str, Enum):
    """
    Represents a constraint.
    """

    """
    allowed enum values
    """
    SUN_ANGLE = 'Sun Angle'
    MOON_ANGLE = 'Moon Angle'
    EARTH_LIMB = 'Earth Limb'
    WINDOW = 'Window'
    UNKNOWN = 'Unknown'
    SOUTH_ATLANTIC_ANOMALY = 'South Atlantic Anomaly'
    ALTITUDE_SLASH_AZIMUTH_AVOIDANCE = 'Altitude/Azimuth Avoidance'
    GALACTIC_PLANE_AVOIDANCE = 'Galactic Plane Avoidance'
    BRIGHT_STAR_AVOIDANCE = 'Bright Star Avoidance'
    AIRMASS_LIMIT = 'Airmass Limit'
    ECLIPTIC_LATITUDE = 'Ecliptic Latitude'
    GALACTIC_BULGE_AVOIDANCE = 'Galactic Bulge Avoidance'
    SOLAR_SYSTEM_OBJECT_AVOIDANCE = 'Solar System Object Avoidance'
    DAYTIME_AVOIDANCE = 'Daytime Avoidance'
    TEST_CONSTRAINT = 'Test Constraint'
    AND = 'And'
    OR = 'Or'
    NOT = 'Not'
    XOR = 'Xor'
    POINTING = 'Pointing'

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


