# 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 TimeSlicedNetMetricsGeneratedReason(str, Enum):
    """
    Specify the reason why the metrics are generated by the certain order action.  This field is only available to existing Orders customers who already have access to the field.  **Note:** The following Order Metrics have been deprecated. Any new customers who onboard on [Orders](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/AA_Overview_of_Orders) or [Orders Harmonization](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/Orders_Harmonization/Orders_Harmonization) will not get these metrics. * The Order ELP and Order Item objects  * The \"Generated Reason\" and \"Order Item ID\" fields in the Order MRR, Order TCB, Order TCV, and Order Quantity objects  Existing Orders customers who have these metrics will continue to be supported. 
    """

    """
    allowed enum values
    """
    INCREASEQUANTITY = 'IncreaseQuantity'
    DECREASEQUANTITY = 'DecreaseQuantity'
    CHANGEPRICE = 'ChangePrice'
    EXTENSION = 'Extension'
    CONTRACTION = 'Contraction'

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


