Source code for appstoreserverlibrary.models.AdvancedCommerceOffer

# Copyright (c) 2026 Apple Inc. Licensed under MIT License.
from typing import Optional

from attr import define
import attr

from .AdvancedCommerceOfferPeriod import AdvancedCommerceOfferPeriod
from .AdvancedCommerceOfferReason import AdvancedCommerceOfferReason
from .HelperValidationUtils import HelperValidationUtils
from .LibraryUtility import AttrsRawValueAware

[docs] @define class AdvancedCommerceOffer(AttrsRawValueAware): """ A discount offer for an auto-renewable subscription. https://developer.apple.com/documentation/advancedcommerceapi/offer """ periodCount: int = attr.ib(validator=HelperValidationUtils.period_count_validator) """ The number of periods the offer is active. """ price: int = attr.ib() """ The offer price, in milliunits. https://developer.apple.com/documentation/advancedcommerceapi/price """ period: AdvancedCommerceOfferPeriod = AdvancedCommerceOfferPeriod.create_main_attr('rawPeriod', raw_required=True) """ The period of the offer. """ rawPeriod: str = AdvancedCommerceOfferPeriod.create_raw_attr('period', required=True) """ See period """ reason: AdvancedCommerceOfferReason = AdvancedCommerceOfferReason.create_main_attr('rawReason', raw_required=True) """ The reason for the offer. """ rawReason: str = AdvancedCommerceOfferReason.create_raw_attr('reason', required=True) """ See reason """