# coding: utf-8

"""
    Zuora API Reference

    REST API reference for the Zuora Billing, Payments, and Central Platform! Check out the [REST API Overview](https://www.zuora.com/developer/api-references/api/overview/).

    The version of the OpenAPI document: 2024-05-20
    Contact: docs@zuora.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 EndDateCondition(str, Enum):
    """
    Condition for the charge to become inactive.  If the value of this field is `Fixed_Period`, the charge is active for a predefined duration based on the value of the `upToPeriodsType` and `upToPeriods` fields.  If the value of this field is `Specific_End_Date`, use the `specificEndDate` field to specify the date when then charge becomes inactive. 
    """

    """
    allowed enum values
    """
    SUBSCRIPTION_END = 'Subscription_End'
    FIXED_PERIOD = 'Fixed_Period'
    SPECIFIC_END_DATE = 'Specific_End_Date'
    ONE_TIME = 'One_Time'

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


