Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
from attr import define
import attr

from .AdvancedCommerceValidationUtils import AdvancedCommerceValidationUtils
from .HelperValidationUtils import HelperValidationUtils
from .LibraryUtility import AttrsRawValueAware

@define
class AbstractAdvancedCommerceBaseItem(AttrsRawValueAware, ABC):
SKU: str = attr.ib(validator=AdvancedCommerceValidationUtils.sku_validator)
SKU: str = attr.ib(validator=HelperValidationUtils.sku_validator)
"""
The product identifier of an in-app purchase product you manage in your own system.

Expand Down
6 changes: 3 additions & 3 deletions appstoreserverlibrary/models/AbstractAdvancedCommerceItem.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
import attr

from .AbstractAdvancedCommerceBaseItem import AbstractAdvancedCommerceBaseItem
from .AdvancedCommerceValidationUtils import AdvancedCommerceValidationUtils
from .HelperValidationUtils import HelperValidationUtils

@define
class AbstractAdvancedCommerceItem(AbstractAdvancedCommerceBaseItem):
description: str = attr.ib(validator=AdvancedCommerceValidationUtils.description_validator)
description: str = attr.ib(validator=HelperValidationUtils.description_validator)
"""
A string you provide that describes a SKU.

https://developer.apple.com/documentation/advancedcommerceapi/description
"""

displayName: str = attr.ib(validator=AdvancedCommerceValidationUtils.display_name_validator)
displayName: str = attr.ib(validator=HelperValidationUtils.display_name_validator)
"""
A string with a product name that you can localize and is suitable for display to customers.

Expand Down
6 changes: 3 additions & 3 deletions appstoreserverlibrary/models/AdvancedCommerceDescriptors.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from attr import define
import attr

from .AdvancedCommerceValidationUtils import AdvancedCommerceValidationUtils
from .HelperValidationUtils import HelperValidationUtils

@define
class AdvancedCommerceDescriptors:
Expand All @@ -12,14 +12,14 @@ class AdvancedCommerceDescriptors:

https://developer.apple.com/documentation/advancedcommerceapi/descriptors
"""
description: str = attr.ib(validator=AdvancedCommerceValidationUtils.description_validator)
description: str = attr.ib(validator=HelperValidationUtils.description_validator)
"""
A string you provide that describes a SKU.

https://developer.apple.com/documentation/advancedcommerceapi/description
"""

displayName: str = attr.ib(validator=AdvancedCommerceValidationUtils.display_name_validator)
displayName: str = attr.ib(validator=HelperValidationUtils.display_name_validator)
"""
A string with a product name that you can localize and is suitable for display to customers.

Expand Down
29 changes: 29 additions & 0 deletions appstoreserverlibrary/models/AdvancedCommerceInfo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright (c) 2026 Apple Inc. Licensed under MIT License.

from typing import Optional
from uuid import UUID

from attr import define
import attr

@define
class AdvancedCommerceInfo:
"""
A response object you provide to present an offer or switch-plan recommendation message.

https://developer.apple.com/documentation/retentionmessaging/advancedcommerceinfo
"""

messageIdentifier: Optional[UUID] = attr.ib(default=None)
"""
The identifier of the message to display to the customer, along with the offer or switch-plan recommendation provided in advancedCommerceData.

https://developer.apple.com/documentation/retentionmessaging/messageidentifier
"""

advancedCommerceData: Optional[str] = attr.ib(default=None)
"""
A Base64-encoded JSON object which contains a JWS describing an offer or switch-plan recommendation.

https://developer.apple.com/documentation/retentionmessaging/advancedcommercedata
"""
4 changes: 2 additions & 2 deletions appstoreserverlibrary/models/AdvancedCommerceOffer.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

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

@define
Expand All @@ -17,7 +17,7 @@ class AdvancedCommerceOffer(AttrsRawValueAware):
https://developer.apple.com/documentation/advancedcommerceapi/offer
"""

periodCount: int = attr.ib(validator=AdvancedCommerceValidationUtils.period_count_validator)
periodCount: int = attr.ib(validator=HelperValidationUtils.period_count_validator)
"""
The number of periods the offer is active.
"""
Expand Down
35 changes: 35 additions & 0 deletions appstoreserverlibrary/models/AdvancedCommercePriceIncreaseInfo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Copyright (c) 2026 Apple Inc. Licensed under MIT License.

from typing import List, Optional

from attr import define
import attr

from .AdvancedCommercePriceIncreaseInfoStatus import AdvancedCommercePriceIncreaseInfoStatus
from .LibraryUtility import AttrsRawValueAware

@define
class AdvancedCommercePriceIncreaseInfo(AttrsRawValueAware):
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercepriceincreaseinfo
"""

dependentSKUs: Optional[List[str]] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercepriceincreaseinfodependentsku
"""

price: Optional[int] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercepriceincreaseinfoprice
"""

status: Optional[AdvancedCommercePriceIncreaseInfoStatus] = AdvancedCommercePriceIncreaseInfoStatus.create_main_attr('rawStatus')
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercepriceincreaseinfostatus
"""

rawStatus: Optional[str] = AdvancedCommercePriceIncreaseInfoStatus.create_raw_attr('status')
"""
See status
"""
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright (c) 2026 Apple Inc. Licensed under MIT License.

from enum import Enum

from .LibraryUtility import AppStoreServerLibraryEnumMeta

class AdvancedCommercePriceIncreaseInfoStatus(str, Enum, metaclass=AppStoreServerLibraryEnumMeta):
"""
https://developer.apple.com/documentation/appstoreservernotifications/advancedcommercepriceincreaseinfostatus
"""
SCHEDULED = "SCHEDULED"
PENDING = "PENDING"
ACCEPTED = "ACCEPTED"
46 changes: 46 additions & 0 deletions appstoreserverlibrary/models/AdvancedCommerceRefund.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Copyright (c) 2026 Apple Inc. Licensed under MIT License.

from typing import Optional

from attr import define
import attr

from .AdvancedCommerceRefundReason import AdvancedCommerceRefundReason
from .AdvancedCommerceRefundType import AdvancedCommerceRefundType
from .LibraryUtility import AttrsRawValueAware

@define
class AdvancedCommerceRefund(AttrsRawValueAware):
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerefund
"""

refundAmount: Optional[int] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerefundamount
"""

refundDate: Optional[int] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerefunddate
"""

refundReason: Optional[AdvancedCommerceRefundReason] = AdvancedCommerceRefundReason.create_main_attr('rawRefundReason')
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerefundreason
"""

rawRefundReason: Optional[str] = AdvancedCommerceRefundReason.create_raw_attr('refundReason')
"""
See refundReason
"""

refundType: Optional[AdvancedCommerceRefundType] = AdvancedCommerceRefundType.create_main_attr('rawRefundType')
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerefundtype
"""

rawRefundType: Optional[str] = AdvancedCommerceRefundType.create_raw_attr('refundType')
"""
See refundType
"""
52 changes: 52 additions & 0 deletions appstoreserverlibrary/models/AdvancedCommerceRenewalInfo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Copyright (c) 2026 Apple Inc. Licensed under MIT License.

from typing import List, Optional

from attr import define
import attr

from .AdvancedCommerceDescriptors import AdvancedCommerceDescriptors
from .AdvancedCommercePeriod import AdvancedCommercePeriod
from .AdvancedCommerceRenewalItem import AdvancedCommerceRenewalItem
from .LibraryUtility import AttrsRawValueAware

@define
class AdvancedCommerceRenewalInfo(AttrsRawValueAware):
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerenewalinfo
"""

consistencyToken: Optional[str] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommerceconsistencytoken
"""

descriptors: Optional[AdvancedCommerceDescriptors] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercedescriptors
"""

items: Optional[List[AdvancedCommerceRenewalItem]] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerenewalitem
"""

period: Optional[AdvancedCommercePeriod] = AdvancedCommercePeriod.create_main_attr('rawPeriod')
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommerceperiod
"""

rawPeriod: Optional[str] = AdvancedCommercePeriod.create_raw_attr('period')
"""
See period
"""

requestReferenceId: Optional[str] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerequestreferenceid
"""

taxCode: Optional[str] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercetaxcode
"""
45 changes: 45 additions & 0 deletions appstoreserverlibrary/models/AdvancedCommerceRenewalItem.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Copyright (c) 2026 Apple Inc. Licensed under MIT License.

from typing import Optional

from attr import define
import attr

from .AdvancedCommerceOffer import AdvancedCommerceOffer
from .AdvancedCommercePriceIncreaseInfo import AdvancedCommercePriceIncreaseInfo

@define
class AdvancedCommerceRenewalItem:
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercerenewalitem
"""

SKU: Optional[str] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercesku
"""

description: Optional[str] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercedescription
"""

displayName: Optional[str] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercedisplayname
"""

offer: Optional[AdvancedCommerceOffer] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommerceoffer
"""

price: Optional[int] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommerceprice
"""

priceIncreaseInfo: Optional[AdvancedCommercePriceIncreaseInfo] = attr.ib(default=None)
"""
https://developer.apple.com/documentation/appstoreserverapi/advancedcommercepriceincreaseinfo
"""
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from .AdvancedCommerceRequest import AdvancedCommerceRequest
from .AdvancedCommerceRequestRefundItem import AdvancedCommerceRequestRefundItem
from .AdvancedCommerceValidationUtils import AdvancedCommerceValidationUtils
from .HelperValidationUtils import HelperValidationUtils

@define
class AdvancedCommerceRequestRefundRequest(AdvancedCommerceRequest):
Expand All @@ -17,7 +17,7 @@ class AdvancedCommerceRequestRefundRequest(AdvancedCommerceRequest):
https://developer.apple.com/documentation/advancedcommerceapi/requestrefundrequest
"""

items: List[AdvancedCommerceRequestRefundItem] = attr.ib(validator=AdvancedCommerceValidationUtils.items_validator)
items: List[AdvancedCommerceRequestRefundItem] = attr.ib(validator=HelperValidationUtils.items_validator)
"""
https://developer.apple.com/documentation/advancedcommerceapi/requestrefunditem
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import attr

from .AdvancedCommerceEffective import AdvancedCommerceEffective
from .AdvancedCommerceValidationUtils import AdvancedCommerceValidationUtils
from .HelperValidationUtils import HelperValidationUtils

@define
class AdvancedCommerceSubscriptionChangeMetadataDescriptors():
Expand All @@ -29,7 +29,7 @@ class AdvancedCommerceSubscriptionChangeMetadataDescriptors():

description: Optional[str] = attr.ib(
default=None,
validator=attr.validators.optional(AdvancedCommerceValidationUtils.description_validator)
validator=attr.validators.optional(HelperValidationUtils.description_validator)
)
"""
The new description for the subscription.
Expand All @@ -39,7 +39,7 @@ class AdvancedCommerceSubscriptionChangeMetadataDescriptors():

displayName: Optional[str] = attr.ib(
default=None,
validator=attr.validators.optional(AdvancedCommerceValidationUtils.display_name_validator)
validator=attr.validators.optional(HelperValidationUtils.display_name_validator)
)
"""
The new display name for the subscription.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import attr

from .AdvancedCommerceEffective import AdvancedCommerceEffective
from .AdvancedCommerceValidationUtils import AdvancedCommerceValidationUtils
from .HelperValidationUtils import HelperValidationUtils

@define
class AdvancedCommerceSubscriptionChangeMetadataItem():
Expand All @@ -15,7 +15,7 @@ class AdvancedCommerceSubscriptionChangeMetadataItem():
https://developer.apple.com/documentation/advancedcommerceapi/subscriptionchangemetadataitem
"""

currentSKU: str = attr.ib(validator=AdvancedCommerceValidationUtils.sku_validator)
currentSKU: str = attr.ib(validator=HelperValidationUtils.sku_validator)
"""
The original SKU of the item.
"""
Expand All @@ -32,21 +32,21 @@ class AdvancedCommerceSubscriptionChangeMetadataItem():
See effective
"""

description: Optional[str] = attr.ib(default=None, validator=attr.validators.optional(AdvancedCommerceValidationUtils.description_validator))
description: Optional[str] = attr.ib(default=None, validator=attr.validators.optional(HelperValidationUtils.description_validator))
"""
The new description for the item.

https://developer.apple.com/documentation/advancedcommerceapi/description
"""

displayName: Optional[str] = attr.ib(default=None, validator=attr.validators.optional(AdvancedCommerceValidationUtils.display_name_validator))
displayName: Optional[str] = attr.ib(default=None, validator=attr.validators.optional(HelperValidationUtils.display_name_validator))
"""
The new display name for the item.

https://developer.apple.com/documentation/advancedcommerceapi/displayname
"""

SKU: Optional[str] = attr.ib(default=None, validator=attr.validators.optional(AdvancedCommerceValidationUtils.sku_validator))
SKU: Optional[str] = attr.ib(default=None, validator=attr.validators.optional(HelperValidationUtils.sku_validator))
"""
The new SKU of the item.

Expand Down
Loading