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

import typing_extensions
import typing
from .subscription_phase import SubscriptionPhaseParams
import typing_extensions


class CatalogSubscriptionPlanVariationParams(typing_extensions.TypedDict):
    """
    Describes a subscription plan variation. A subscription plan variation represents how the subscription for a product or service is sold.
    For more information, see [Subscription Plans and Variations](https://developer.squareup.com/docs/subscriptions-api/plans-and-variations).
    """

    name: str
    """
    The name of the plan variation.
    """

    phases: typing.Sequence[SubscriptionPhaseParams]
    """
    A list containing each [SubscriptionPhase](entity:SubscriptionPhase) for this plan variation.
    """

    subscription_plan_id: typing_extensions.NotRequired[typing.Optional[str]]
    """
    The id of the subscription plan, if there is one.
    """

    monthly_billing_anchor_date: typing_extensions.NotRequired[typing.Optional[int]]
    """
    The day of the month the billing period starts.
    """

    can_prorate: typing_extensions.NotRequired[typing.Optional[bool]]
    """
    Whether bills for this plan variation can be split for proration.
    """

    successor_plan_variation_id: typing_extensions.NotRequired[typing.Optional[str]]
    """
    The ID of a "successor" plan variation to this one. If the field is set, and this object is disabled at all
    locations, it indicates that this variation is deprecated and the object identified by the successor ID be used in
    its stead.
    """
