# This file was auto-generated by Fern from our API Definition.

import typing_extensions
from ..types.subscription_event_subscription_event_type import SubscriptionEventSubscriptionEventType
import typing_extensions
from .subscription_event_info import SubscriptionEventInfoParams
import typing
from .phase import PhaseParams


class SubscriptionEventParams(typing_extensions.TypedDict):
    """
    Describes changes to a subscription and the subscription status.
    """

    id: str
    """
    The ID of the subscription event.
    """

    subscription_event_type: SubscriptionEventSubscriptionEventType
    """
    Type of the subscription event.
    See [SubscriptionEventSubscriptionEventType](#type-subscriptioneventsubscriptioneventtype) for possible values
    """

    effective_date: str
    """
    The `YYYY-MM-DD`-formatted date (for example, 2013-01-15) when the subscription event occurred.
    """

    monthly_billing_anchor_date: typing_extensions.NotRequired[int]
    """
    The day-of-the-month the billing anchor date was changed to, if applicable.
    """

    info: typing_extensions.NotRequired[SubscriptionEventInfoParams]
    """
    Additional information about the subscription event.
    """

    phases: typing_extensions.NotRequired[typing.Optional[typing.Sequence[PhaseParams]]]
    """
    A list of Phases, to pass phase-specific information used in the swap.
    """

    plan_variation_id: str
    """
    The ID of the subscription plan variation associated with the subscription.
    """
