Module: Peddler::Types::Replenishment20221107

Defined in:
lib/peddler/types/replenishment_2022_11_07/error.rb,
lib/peddler/types/replenishment_2022_11_07/promotion.rb,
lib/peddler/types/replenishment_2022_11_07/error_list.rb,
lib/peddler/types/replenishment_2022_11_07/preference.rb,
lib/peddler/types/replenishment_2022_11_07/time_interval.rb,
lib/peddler/types/replenishment_2022_11_07/discount_funding.rb,
lib/peddler/types/replenishment_2022_11_07/list_offers_request.rb,
lib/peddler/types/replenishment_2022_11_07/pagination_response.rb,
lib/peddler/types/replenishment_2022_11_07/list_offers_response.rb,
lib/peddler/types/replenishment_2022_11_07/list_offers_request_sort.rb,
lib/peddler/types/replenishment_2022_11_07/list_offer_metrics_request.rb,
lib/peddler/types/replenishment_2022_11_07/list_offers_response_offer.rb,
lib/peddler/types/replenishment_2022_11_07/list_offer_metrics_response.rb,
lib/peddler/types/replenishment_2022_11_07/list_offers_request_filters.rb,
lib/peddler/types/replenishment_2022_11_07/offer_program_configuration.rb,
lib/peddler/types/replenishment_2022_11_07/list_offers_request_pagination.rb,
lib/peddler/types/replenishment_2022_11_07/list_offer_metrics_request_sort.rb,
lib/peddler/types/replenishment_2022_11_07/list_offer_metrics_response_offer.rb,
lib/peddler/types/replenishment_2022_11_07/list_offer_metrics_request_filters.rb,
lib/peddler/types/replenishment_2022_11_07/get_selling_partner_metrics_request.rb,
lib/peddler/types/replenishment_2022_11_07/get_selling_partner_metrics_response.rb,
lib/peddler/types/replenishment_2022_11_07/list_offer_metrics_request_pagination.rb,
lib/peddler/types/replenishment_2022_11_07/offer_program_configuration_promotions.rb,
lib/peddler/types/replenishment_2022_11_07/offer_program_configuration_preferences.rb,
lib/peddler/types/replenishment_2022_11_07/get_selling_partner_metrics_response_metric.rb,
lib/peddler/types/replenishment_2022_11_07/offer_program_configuration_promotions_discount_funding.rb

Constant Summary collapse

Error =

Error response returned when the request is unsuccessful.

Structure.new do
  # @return [String] An error code that identifies the type of error that occurred.
  attribute(:code, String)

  # @return [String] A message that describes the error condition.
  attribute(:message, String)

  # @return [String] Additional details that can help the caller understand or fix the issue.
  attribute(:details, String)
end
Promotion =

Offer promotions to include in the result filter criteria.

Structure.new do
  # @return [DiscountFunding] A base discount set by the selling partner on the offer.
  attribute(:selling_partner_funded_base_discount, DiscountFunding, from: "sellingPartnerFundedBaseDiscount")

  # @return [DiscountFunding] A tiered discount set by the selling partner on the offer.
  attribute(:selling_partner_funded_tiered_discount, DiscountFunding, from: "sellingPartnerFundedTieredDiscount")

  # @return [DiscountFunding] A base discount set by Amazon on the offer.
  attribute(:amazon_funded_base_discount, DiscountFunding, from: "amazonFundedBaseDiscount")

  # @return [DiscountFunding] A tiered discount set by Amazon on the offer.
  attribute(:amazon_funded_tiered_discount, DiscountFunding, from: "amazonFundedTieredDiscount")
end
ErrorList =

A list of error responses returned when a request is unsuccessful.

Structure.new do
  # @return [Array<Error>] A list of error responses returned when a request is unsuccessful.
  attribute(:errors, [Error])
end
Preference =

Offer preferences that you can include in the result filter criteria.

Structure.new do
  # @return [Array<AutoEnrollmentPreference>] Filters the results to only include offers with the auto-enrollment
  # preference specified.
  attribute(:auto_enrollment, Array, from: "autoEnrollment")
end
TimeInterval =

A date-time interval in ISO 8601 format which is used to compute metrics. Only the date is required, but you must pass the complete date and time value. For example, November 11, 2022 should be passed as "2022-11-07T00:00:00Z". Note that only data for the trailing 2 years is supported.

Note: The listOfferMetrics operation only supports a time interval which covers a single unit of the aggregation frequency. For example, for a MONTH aggregation frequency, the duration of the interval between the startDate and endDate can not be more than 1 month.

Structure.new do
  # @return [String] When this object is used as a request parameter, the specified `startDate` is adjusted based
  # on the aggregation frequency.
  #
  # * For `WEEK` the metric is computed from the first day of the week (Sunday, based on ISO 8601) that contains
  # the `startDate`.
  # * For `MONTH` the metric is computed from the first day of the month that contains the `startDate`.
  # * For `QUARTER` the metric is computed from the first day of the quarter that contains the `startDate`.
  # * For `YEAR` the metric is computed from the first day of the year that contains the `startDate`.
  attribute(:start_date, String, from: "startDate")

  # @return [String] When this object is used as a request parameter, the specified `endDate` is adjusted based on
  # the aggregation frequency.
  #
  # * For `WEEK` the metric is computed up to the last day of the week (Sunday, based on ISO 8601) that contains
  # the `endDate`.
  # * For `MONTH`, the metric is computed up to the last day that contains the `endDate`.
  # * For `QUARTER` the metric is computed up to the last day of the quarter that contains the `endDate`.
  # * For `YEAR` the metric is computed up to the last day of the year that contains the `endDate`.
  # Note: The end date may be adjusted to a lower value based on the data available in our system.
  attribute(:end_date, String, from: "endDate")
end
DiscountFunding =

The discount funding on the offer.

Structure.new do
  # @return [Array<Number>] Filters the results to only include offers with the percentage specified.
  attribute(:percentage, [Float])
end
ListOffersRequest =

The request body for the listOffers operation.

Structure.new do
  # @return [ListOffersRequestPagination] Use these parameters to paginate through the response.
  attribute(:pagination, ListOffersRequestPagination)

  # @return [ListOffersRequestFilters] Use these parameters to filter results. Any result must match all provided
  # parameters. For any parameter that is an array, the result must match at least one element in the provided
  # array.
  attribute(:filters, ListOffersRequestFilters)

  # @return [ListOffersRequestSort] Use these parameters to sort the response.
  attribute(:sort, ListOffersRequestSort)
end
PaginationResponse =

Use these parameters to paginate through the response.

Structure.new do
  # @return [Integer] Total number of results matching the given filter criteria.
  attribute(:total_results, Integer, from: "totalResults")
end
ListOffersResponse =

The response schema for the listOffers operation.

Structure.new do
  # @return [Array<ListOffersResponseOffer>] A list of offers.
  attribute(:offers, [ListOffersResponseOffer])

  # @return [PaginationResponse] Use these parameters to paginate through the response.
  attribute(:pagination, PaginationResponse)
end
ListOffersRequestSort =

Use these parameters to sort the response.

Structure.new do
  # @return [String] The sort order.
  attribute(:order, String)

  # @return [String] The attribute to use to sort the results.
  attribute(:key, String)
end
ListOfferMetricsRequest =

The request body for the listOfferMetrics operation.

Structure.new do
  # @return [ListOfferMetricsRequestPagination] Use these parameters to paginate through the response.
  attribute(:pagination, ListOfferMetricsRequestPagination)

  # @return [ListOfferMetricsRequestSort] Use these parameters to sort the response.
  attribute(:sort, ListOfferMetricsRequestSort)

  # @return [ListOfferMetricsRequestFilters] Use these parameters to filter results. Any result must match all
  # provided parameters. For any parameter that is an array, the result must match at least one element in the
  # provided array.
  attribute(:filters, ListOfferMetricsRequestFilters)
end
ListOffersResponseOffer =

An object which contains details about an offer.

Structure.new do
  # @return [String] The SKU. This property is only supported for sellers and not for vendors.
  attribute(:sku, String)

  # @return [String] The Amazon Standard Identification Number (ASIN).
  attribute(:asin, String)

  # @return [String] The marketplace identifier. The supported marketplaces for both sellers and vendors are US,
  # CA, ES, UK, FR, IT, IN, DE and JP. The supported marketplaces for vendors only are BR, AU, MX, AE and NL.
  # Refer to [Marketplace IDs](https://developer-docs.amazon.com/sp-api/docs/marketplace-ids) to find the
  # identifier for the marketplace.
  attribute(:marketplace_id, String, from: "marketplaceId")

  # @return [String] The offer eligibility status.
  attribute(:eligibility, String)

  # @return [OfferProgramConfiguration]
  attribute(:offer_program_configuration, OfferProgramConfiguration, from: "offerProgramConfiguration")

  # @return [String] The replenishment program for the offer.
  attribute(:program_type, String, from: "programType")

  # @return [Array<String>] A list of vendor codes associated with the offer.
  attribute(:vendor_codes, [String], from: "vendorCodes")
end
ListOfferMetricsResponse =

The response schema for the listOfferMetrics operation.

Structure.new do
  # @return [Array<ListOfferMetricsResponseOffer>] A list of offers and associated metrics.
  attribute(:offers, [ListOfferMetricsResponseOffer])

  # @return [PaginationResponse] Use these parameters to paginate through the response.
  attribute(:pagination, PaginationResponse)
end
ListOffersRequestFilters =

Use these parameters to filter results. Any result must match all of the provided parameters. For any parameter that is an array, the result must match at least one element in the provided array.

Structure.new do
  # @return [String] The marketplace identifier. The supported marketplaces for both sellers and vendors are US,
  # CA, ES, UK, FR, IT, IN, DE and JP. The supported marketplaces for vendors only are BR, AU, MX, AE and NL.
  # Refer to [Marketplace IDs](https://developer-docs.amazon.com/sp-api/docs/marketplace-ids) to find the
  # identifier for the marketplace.
  attribute(:marketplace_id, String, from: "marketplaceId")

  # @return [Array<String>] A list of SKUs to filter. This filter is only supported for sellers and not for
  # vendors.
  attribute(:skus, [String])

  # @return [Array<String>] A list of Amazon Standard Identification Numbers (ASINs).
  attribute(:asins, [String])

  # @return [Array<EligibilityStatus>] A list of eligibilities associated with an offer.
  attribute(:eligibilities, Array)

  # @return [Preference] Offer preferences to include in the result filter criteria.
  attribute(:preferences, Preference)

  # @return [Promotion] Offer promotions to include in the result filter criteria.
  attribute(:promotions, Promotion)

  # @return [Array<ProgramType>]
  attribute(:program_types, Array, from: "programTypes")
end
OfferProgramConfiguration =

The offer program configuration contains a set of program properties for an offer.

Structure.new do
  # @return [OfferProgramConfigurationPreferences] An object which contains the preferences applied to the offer.
  attribute(:preferences, OfferProgramConfigurationPreferences)

  # @return [OfferProgramConfigurationPromotions] An object which contains the promotions applied to the offer.
  attribute(:promotions, OfferProgramConfigurationPromotions)

  # @return [String] Determines whether the offer was automatically or manually enrolled in the program. This
  # property is only supported for sellers and not vendors.
  attribute(:enrollment_method, String, from: "enrollmentMethod")
end
ListOffersRequestPagination =

Use these parameters to paginate through the response.

Structure.new do
  # @return [Integer] The maximum number of results to return in the response.
  attribute(:limit, Integer)

  # @return [Integer] The offset from which to retrieve the number of results specified by the `limit` value. The
  # first result is at offset 0.
  attribute(:offset, Integer)
end
ListOfferMetricsRequestSort =

Use these parameters to sort the response.

Structure.new do
  # @return [String] The sort order.
  attribute(:order, String)

  # @return [String]
  attribute(:key, String)
end
ListOfferMetricsResponseOffer =

An object which contains offer metrics.

Structure.new do
  # @return [String] The Amazon Standard Identification Number (ASIN).
  attribute(:asin, String)

  # @return [Float] The percentage of items that were not shipped out of the total shipped units over a period of
  # time due to being out of stock. Applicable to PERFORMANCE timePeriodType.
  attribute(:not_delivered_due_to_oos, Float, from: "notDeliveredDueToOOS")

  # @return [Float] The revenue generated from subscriptions over a period of time. Applicable to PERFORMANCE
  # timePeriodType.
  attribute(:total_subscriptions_revenue, Float, from: "totalSubscriptionsRevenue")

  # @return [Float] The number of units shipped to the subscribers over a period of time. Applicable to
  # PERFORMANCE timePeriodType.
  attribute(:shipped_subscription_units, Float, from: "shippedSubscriptionUnits")

  # @return [Float] The number of active subscriptions present at the end of the period. Applicable to PERFORMANCE
  # timePeriodType.
  attribute(:active_subscriptions, Float, from: "activeSubscriptions")

  # @return [Float] The percentage of total program revenue out of total product revenue. Applicable to
  # PERFORMANCE timePeriodType.
  attribute(:revenue_penetration, Float, from: "revenuePenetration")

  # @return [Float] The revenue that would have been generated had there not been out of stock. Applicable to
  # PERFORMANCE timePeriodType.
  attribute(:lost_revenue_due_to_oos, Float, from: "lostRevenueDueToOOS")

  # @return [Float] The percentage of revenue from ASINs with coupons out of total revenue from all ASINs.
  # Applicable to PERFORMANCE timePeriodType.
  attribute(:coupons_revenue_penetration, Float, from: "couponsRevenuePenetration")

  # @return [Float] The percentage of new subscriptions acquired through coupons. Applicable to PERFORMANCE
  # timePeriodType.
  attribute(:share_of_coupon_subscriptions, Float, from: "shareOfCouponSubscriptions")

  # @return [Float] The forecasted total subscription revenue for the next 30 days. Applicable to FORECAST
  # timePeriodType.
  attribute(:next30_day_total_subscriptions_revenue, Float, from: "next30DayTotalSubscriptionsRevenue")

  # @return [Float] The forecasted total subscription revenue for the next 60 days. Applicable to FORECAST
  # timePeriodType.
  attribute(:next60_day_total_subscriptions_revenue, Float, from: "next60DayTotalSubscriptionsRevenue")

  # @return [Float] The forecasted total subscription revenue for the next 90 days. Applicable to FORECAST
  # timePeriodType.
  attribute(:next90_day_total_subscriptions_revenue, Float, from: "next90DayTotalSubscriptionsRevenue")

  # @return [Float] The forecasted shipped subscription units for the next 30 days. Applicable to FORECAST
  # timePeriodType.
  attribute(:next30_day_shipped_subscription_units, Float, from: "next30DayShippedSubscriptionUnits")

  # @return [Float] The forecasted shipped subscription units for the next 60 days. Applicable to FORECAST
  # timePeriodType.
  attribute(:next60_day_shipped_subscription_units, Float, from: "next60DayShippedSubscriptionUnits")

  # @return [Float] The forecasted shipped subscription units for the next 90 days. Applicable to FORECAST
  # timePeriodType.
  attribute(:next90_day_shipped_subscription_units, Float, from: "next90DayShippedSubscriptionUnits")

  # @return [TimeInterval] A time interval used to compute metrics.
  attribute(:time_interval, TimeInterval, from: "timeInterval")

  # @return [String] The currency code in ISO 4217 format.
  attribute(:currency_code, String, from: "currencyCode")
end
ListOfferMetricsRequestFilters =

Use these parameters to filter results. Any result must match all provided parameters. For any parameter that is an array, the result must match at least one element in the provided array.

Structure.new do
  # @return [String]
  attribute(:aggregation_frequency, String, from: "aggregationFrequency")

  # @return [TimeInterval] A time interval used to compute metrics.
  attribute(:time_interval, TimeInterval, from: "timeInterval")

  # @return [String]
  attribute(:time_period_type, String, from: "timePeriodType")

  # @return [String] The marketplace identifier. The supported marketplaces for both sellers and vendors are US,
  # CA, ES, UK, FR, IT, IN, DE and JP. The supported marketplaces for vendors only are BR, AU, MX, AE and NL.
  # Refer to [Marketplace IDs](https://developer-docs.amazon.com/sp-api/docs/marketplace-ids) to find the
  # identifier for the marketplace.
  attribute(:marketplace_id, String, from: "marketplaceId")

  # @return [Array<ProgramType>]
  attribute(:program_types, Array, from: "programTypes")

  # @return [Array<String>] A list of Amazon Standard Identification Numbers (ASINs).
  attribute(:asins, [String])
end
GetSellingPartnerMetricsRequest =

The request body for the getSellingPartnerMetrics operation.

Structure.new do
  # @return [String]
  attribute(:aggregation_frequency, String, from: "aggregationFrequency")

  # @return [TimeInterval] A time interval used to compute metrics.
  attribute(:time_interval, TimeInterval, from: "timeInterval")

  # @return [Array<Metric>] The list of metrics requested. If no metric value is provided, data for all of the
  # metrics will be returned.
  attribute(:metrics, Array)

  # @return [String]
  attribute(:time_period_type, String, from: "timePeriodType")

  # @return [String] The marketplace identifier. The supported marketplaces for both sellers and vendors are US,
  # CA, ES, UK, FR, IT, IN, DE and JP. The supported marketplaces for vendors only are BR, AU, MX, AE and NL.
  # Refer to [Marketplace IDs](https://developer-docs.amazon.com/sp-api/docs/marketplace-ids) to find the
  # identifier for the marketplace.
  attribute(:marketplace_id, String, from: "marketplaceId")

  # @return [Array<ProgramType>] The list of replenishment program types for which to return metrics.
  attribute(:program_types, Array, from: "programTypes")
end
GetSellingPartnerMetricsResponse =

The response schema for the getSellingPartnerMetrics operation.

Structure.new do
  # @return [Array<GetSellingPartnerMetricsResponseMetric>] A list of metrics data for the selling partner.
  attribute(:metrics, [GetSellingPartnerMetricsResponseMetric])
end
ListOfferMetricsRequestPagination =

Use these parameters to paginate through the response.

Structure.new do
  # @return [Integer] The maximum number of results to return in the response.
  attribute(:limit, Integer)

  # @return [Integer] The offset from which to retrieve the number of results specified by the `limit` value. The
  # first result is at offset 0.
  attribute(:offset, Integer)
end
OfferProgramConfigurationPromotions =

An object which represents all promotions applied to an offer.

Structure.new do
  # @return [OfferProgramConfigurationPromotionsDiscountFunding] A base discount set by the selling partner on the
  # offer.
  attribute(:selling_partner_funded_base_discount, OfferProgramConfigurationPromotionsDiscountFunding, from: "sellingPartnerFundedBaseDiscount")

  # @return [OfferProgramConfigurationPromotionsDiscountFunding] A tiered discount set by the selling partner on
  # the offer.
  attribute(:selling_partner_funded_tiered_discount, OfferProgramConfigurationPromotionsDiscountFunding, from: "sellingPartnerFundedTieredDiscount")

  # @return [OfferProgramConfigurationPromotionsDiscountFunding] A base discount set by Amazon on the offer.
  attribute(:amazon_funded_base_discount, OfferProgramConfigurationPromotionsDiscountFunding, from: "amazonFundedBaseDiscount")

  # @return [OfferProgramConfigurationPromotionsDiscountFunding] A tiered discount set by Amazon on the offer.
  attribute(:amazon_funded_tiered_discount, OfferProgramConfigurationPromotionsDiscountFunding, from: "amazonFundedTieredDiscount")
end
OfferProgramConfigurationPreferences =

An object which contains the preferences applied to the offer.

Structure.new do
  # @return [String] The auto-enrollment preference indicates whether the offer is opted-in to or opted-out of
  # Amazon's auto-enrollment feature.
  attribute(:auto_enrollment, String, from: "autoEnrollment")
end
GetSellingPartnerMetricsResponseMetric =

An object which contains metric data for a selling partner.

Structure.new do
  # @return [Float] The percentage of items that were not shipped out of the total shipped units over a period of
  # time due to being out of stock. Applicable to PERFORMANCE timePeriodType.
  attribute(:not_delivered_due_to_oos, Float, from: "notDeliveredDueToOOS")

  # @return [Float] The revenue generated from subscriptions over a period of time. Applicable for both the
  # PERFORMANCE and FORECAST timePeriodType.
  attribute(:total_subscriptions_revenue, Float, from: "totalSubscriptionsRevenue")

  # @return [Float] The number of units shipped to the subscribers over a period of time. Applicable for both the
  # PERFORMANCE and FORECAST timePeriodType.
  attribute(:shipped_subscription_units, Float, from: "shippedSubscriptionUnits")

  # @return [Float] The number of active subscriptions present at the end of the period. Applicable to PERFORMANCE
  # timePeriodType.
  attribute(:active_subscriptions, Float, from: "activeSubscriptions")

  # @return [Float] The average revenue per subscriber of the program over a period of past 12 months for sellers
  # and 6 months for vendors. Applicable to PERFORMANCE timePeriodType.
  attribute(:subscriber_average_revenue, Float, from: "subscriberAverageRevenue")

  # @return [Float] The average revenue per non-subscriber of the program over a period of past 12 months for
  # sellers and 6 months for vendors. Applicable to PERFORMANCE timePeriodType.
  attribute(:non_subscriber_average_revenue, Float, from: "nonSubscriberAverageRevenue")

  # @return [Float] The revenue that would have been generated had there not been out of stock. Applicable to
  # PERFORMANCE timePeriodType.
  attribute(:lost_revenue_due_to_oos, Float, from: "lostRevenueDueToOOS")

  # @return [Float] The average reorders per subscriber of the program over a period of 12 months. Applicable to
  # PERFORMANCE timePeriodType.
  attribute(:subscriber_average_reorders, Float, from: "subscriberAverageReorders")

  # @return [Float] The average reorders per non-subscriber of the program over a period of past 12 months.
  # Applicable to PERFORMANCE timePeriodType.
  attribute(:non_subscriber_average_reorders, Float, from: "nonSubscriberAverageReorders")

  # @return [Float] The percentage of revenue from ASINs with coupons out of total revenue from all ASINs.
  # Applicable to PERFORMANCE timePeriodType.
  attribute(:coupons_revenue_penetration, Float, from: "couponsRevenuePenetration")

  # @return [Float] The subscription revenue generated from subscriptions with over two deliveries over the past
  # 12 months. Applicable to PERFORMANCE timePeriodType.
  attribute(:revenue_from_subscriptions_with_multiple_deliveries, Float, from: "revenueFromSubscriptionsWithMultipleDeliveries")

  # @return [Float] The subscription revenue generated from active subscriptions with one delivery over the past
  # 12 months. Applicable to PERFORMANCE timePeriodType.
  attribute(:revenue_from_active_subscriptions_with_single_delivery, Float, from: "revenueFromActiveSubscriptionsWithSingleDelivery")

  # @return [Float] The subscription revenue generated from subscriptions which are cancelled after one delivery
  # over the past 12 months. Applicable to PERFORMANCE timePeriodType.
  attribute(:revenue_from_cancelled_subscriptions_after_single_delivery, Float, from: "revenueFromCancelledSubscriptionsAfterSingleDelivery")

  # @return [Float] The percentage of subscriptions retained after 30 days of subscription creation. Applicable to
  # PERFORMANCE timePeriodType.
  attribute(:subscriber_retention_for30_days, Float, from: "subscriberRetentionFor30Days")

  # @return [Float] The percentage of subscriptions retained after 90 days of subscription creation. Applicable to
  # PERFORMANCE timePeriodType.
  attribute(:subscriber_retention_for90_days, Float, from: "subscriberRetentionFor90Days")

  # @return [Float] The percentage of subscription revenue generated by offers with 0% seller-funded discount over
  # the last 12 months. Applicable to PERFORMANCE timePeriodType.
  attribute(:revenue_penetration_for0_percent_seller_funding, Float, from: "revenuePenetrationFor0PercentSellerFunding")

  # @return [Float] [Applicable only for Sellers] The percentage of subscription revenue generated by offers with
  # 5% seller-funded discount over the last 12 months. Applicable to PERFORMANCE timePeriodType.
  attribute(:revenue_penetration_for5_percent_seller_funding, Float, from: "revenuePenetrationFor5PercentSellerFunding")

  # @return [Float] [Applicable only for Sellers] The percentage of subscription revenue generated by offers with
  # 10% seller-funded discount over the last 12 months. Applicable to PERFORMANCE timePeriodType.
  attribute(:revenue_penetration_for10_percent_seller_funding, Float, from: "revenuePenetrationFor10PercentSellerFunding")

  # @return [Float] [Applicable only for vendors] The percentage of subscription revenue generated by offers with
  # 5% or above seller-funded discount over the last 12 months. Applicable to PERFORMANCE timePeriodType.
  attribute(:revenue_penetration_for5_plus_percent_seller_funding, Float, from: "revenuePenetrationFor5PlusPercentSellerFunding")

  # @return [Float] The percentage of new subscriptions acquired through coupons. Applicable to PERFORMANCE
  # timePeriodType.
  attribute(:share_of_coupon_subscriptions, Float, from: "shareOfCouponSubscriptions")

  # @return [TimeInterval] A time interval used to compute metrics.
  attribute(:time_interval, TimeInterval, from: "timeInterval")

  # @return [String] The currency code in ISO 4217 format.
  attribute(:currency_code, String, from: "currencyCode")
end
OfferProgramConfigurationPromotionsDiscountFunding =

A promotional percentage discount applied to the offer.

Structure.new do
  # @return [Float] The percentage discount on the offer.
  attribute(:percentage, Float)
end