# The main embed of a comment event.
union CommentEventEmbed = Customer | DraftOrder | Order | Product | ProductVariant

union MetafieldReference = Collection | GenericFile | MediaImage | OnlineStorePage | Product | ProductVariant | Video

union PricingValue = MoneyV2 | PricingPercentageValue

# A rate provided by a merchant-defined rate or a participant.
union DeliveryRateProvider = DeliveryParticipant | DeliveryRateDefinition

# The value (weight or price) that the condition field is compared to.
union DeliveryConditionCriteria = MoneyV2 | Weight

# Represents information about the purchasing entity for the order or draft order.
union PurchasingEntity = Customer | PurchasingCompany

# Represents the billing frequency associated to the selling plan (for example, bill every week, or bill every three months).
# The selling plan billing policy and associated records (selling plan groups, selling plans, pricing policies, and delivery policy)
# are deleted 48 hours after a merchant uninstalls their subscriptions app.
# We recommend backing up these records if you need to restore them later.
union SellingPlanBillingPolicy = SellingPlanFixedBillingPolicy | SellingPlanRecurringBillingPolicy

# Represents the delivery frequency associated to the selling plan (for example, deliver every month, or deliver every other week).
# The selling plan delivery policy and associated records (selling plan groups, selling plans, pricing policies, and billing policy)
# are deleted 48 hours after a merchant uninstalls their subscriptions app.
# We recommend backing up these records if you need to restore them later.
union SellingPlanDeliveryPolicy = SellingPlanFixedDeliveryPolicy | SellingPlanRecurringDeliveryPolicy

# The portion of the price to be charged at checkout.
union SellingPlanCheckoutChargeValue = MoneyV2 | SellingPlanCheckoutChargePercentageValue

# Represents the type of pricing associated to the selling plan (for example, a $10 or 20% discount that is set
# for a limited period or that is fixed for the duration of the subscription). Selling plan pricing policies and
# associated records (selling plan groups, selling plans, billing policy, and delivery policy)
# are deleted 48 hours after a merchant uninstalls their subscriptions app.
# We recommend backing up these records if you need to restore them later.
union SellingPlanPricingPolicy = SellingPlanFixedPricingPolicy | SellingPlanRecurringPricingPolicy

# The information about the price that's charged to a shop every plan period.
# The concrete type can be AppRecurringPricing for recurring billing or AppUsagePricing for usage-based billing.
union AppPricingDetails = AppRecurringPricing | AppUsagePricing

# The value of the discount.
union AppSubscriptionDiscountValue = AppSubscriptionDiscountAmount | AppSubscriptionDiscountPercentage

# All possible instruments for CustomerPaymentMethods.
union CustomerPaymentInstrument = CustomerCreditCard | CustomerPaypalBillingAgreement | CustomerShopPayAgreement

# Describes the delivery method to use to get the physical goods to the customer.
union SubscriptionDeliveryMethod = SubscriptionDeliveryMethodLocalDelivery | SubscriptionDeliveryMethodPickup | SubscriptionDeliveryMethodShipping

# Represents a selling plan pricing policy adjustment value type.
union SellingPlanPricingPolicyAdjustmentValue = MoneyV2 | SellingPlanPricingPolicyPercentageValue

# Subscription draft discount types.
union SubscriptionDiscount = SubscriptionAppliedCodeDiscount | SubscriptionManualDiscount

# The value of the discount and how it will be applied.
union SubscriptionDiscountValue = SubscriptionDiscountFixedAmountValue | SubscriptionDiscountPercentageValue

# All possible instrument outputs for Payment Mandates.
union PaymentInstrument = VaultCreditCard | VaultPaypalBillingAgreement
