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
1 change: 1 addition & 0 deletions lib/orb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@
require_relative "orb/models/top_level_ping_params"
require_relative "orb/models/top_level_ping_response"
require_relative "orb/models/trial_discount"
require_relative "orb/models/usage_discount"
require_relative "orb/resources/alerts"
require_relative "orb/resources/coupons"
require_relative "orb/resources/coupons/subscriptions"
Expand Down
42 changes: 3 additions & 39 deletions lib/orb/models/discount.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ module Models
# }
# # Orb::Models::TrialDiscount ...
# in {discount_type: "usage", applies_to_price_ids: ^(Orb::ArrayOf[String]), usage_discount: Float, reason: String}
# # Orb::Models::Discount::UsageDiscount ...
# # Orb::Models::UsageDiscount ...
# in {discount_type: "amount", amount_discount: String, applies_to_price_ids: ^(Orb::ArrayOf[String]), reason: String}
# # Orb::Models::AmountDiscount ...
# end
Expand All @@ -35,7 +35,7 @@ module Models
# # ...
# in Orb::Models::TrialDiscount
# # ...
# in Orb::Models::Discount::UsageDiscount
# in Orb::Models::UsageDiscount
# # ...
# in Orb::Models::AmountDiscount
# # ...
Expand All @@ -48,45 +48,9 @@ class Discount < Orb::Union

variant :trial, -> { Orb::Models::TrialDiscount }

variant :usage, -> { Orb::Models::Discount::UsageDiscount }
variant :usage, -> { Orb::Models::UsageDiscount }

variant :amount, -> { Orb::Models::AmountDiscount }

class UsageDiscount < Orb::BaseModel
# @!attribute applies_to_price_ids
# List of price_ids that this discount applies to. For plan/plan phase discounts,
# this can be a subset of prices.
#
# @return [Array<String>]
required :applies_to_price_ids, Orb::ArrayOf[String]

# @!attribute discount_type
#
# @return [Symbol, :usage]
required :discount_type, const: :usage

# @!attribute usage_discount
# Only available if discount_type is `usage`. Number of usage units that this
# discount is for
#
# @return [Float]
required :usage_discount, Float

# @!attribute reason
#
# @return [String, nil]
optional :reason, String, nil?: true

# @!parse
# # @param applies_to_price_ids [Array<String>]
# # @param usage_discount [Float]
# # @param reason [String, nil]
# # @param discount_type [Symbol, :usage]
# #
# def initialize(applies_to_price_ids:, usage_discount:, reason: nil, discount_type: :usage, **) = super

# def initialize: (Hash | Orb::BaseModel) -> void
end
end
end
end
4 changes: 2 additions & 2 deletions lib/orb/models/invoice.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1202,7 +1202,7 @@ class LineItem < Orb::BaseModel

# @!attribute discount
#
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
required :discount, union: -> { Orb::Models::Discount }, nil?: true

# @!attribute end_date
Expand Down Expand Up @@ -1320,7 +1320,7 @@ class LineItem < Orb::BaseModel
# # @param adjustments [Array<Orb::Models::Invoice::LineItem::Adjustment::MonetaryUsageDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryAmountDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryPercentageDiscountAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryMinimumAdjustment, Orb::Models::Invoice::LineItem::Adjustment::MonetaryMaximumAdjustment>]
# # @param amount [String]
# # @param credits_applied [String]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param end_date [Time]
# # @param filter [String, nil]
# # @param grouping [String, nil]
Expand Down
4 changes: 2 additions & 2 deletions lib/orb/models/invoice_create_params.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class InvoiceCreateParams < Orb::BaseModel
# @!attribute discount
# An optional discount to attach to the invoice.
#
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
optional :discount, union: -> { Orb::Models::Discount }, nil?: true

# @!attribute external_customer_id
Expand Down Expand Up @@ -86,7 +86,7 @@ class InvoiceCreateParams < Orb::BaseModel
# # @param line_items [Array<Orb::Models::InvoiceCreateParams::LineItem>]
# # @param net_terms [Integer]
# # @param customer_id [String, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param external_customer_id [String, nil]
# # @param memo [String, nil]
# # @param metadata [Hash{Symbol=>String, nil}, nil]
Expand Down
4 changes: 2 additions & 2 deletions lib/orb/models/invoice_fetch_upcoming_response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1202,7 +1202,7 @@ class LineItem < Orb::BaseModel

# @!attribute discount
#
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
required :discount, union: -> { Orb::Models::Discount }, nil?: true

# @!attribute end_date
Expand Down Expand Up @@ -1321,7 +1321,7 @@ class LineItem < Orb::BaseModel
# # @param adjustments [Array<Orb::Models::InvoiceFetchUpcomingResponse::LineItem::Adjustment::MonetaryUsageDiscountAdjustment, Orb::Models::InvoiceFetchUpcomingResponse::LineItem::Adjustment::MonetaryAmountDiscountAdjustment, Orb::Models::InvoiceFetchUpcomingResponse::LineItem::Adjustment::MonetaryPercentageDiscountAdjustment, Orb::Models::InvoiceFetchUpcomingResponse::LineItem::Adjustment::MonetaryMinimumAdjustment, Orb::Models::InvoiceFetchUpcomingResponse::LineItem::Adjustment::MonetaryMaximumAdjustment>]
# # @param amount [String]
# # @param credits_applied [String]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param end_date [Time]
# # @param filter [String, nil]
# # @param grouping [String, nil]
Expand Down
4 changes: 2 additions & 2 deletions lib/orb/models/invoice_line_item_create_response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class InvoiceLineItemCreateResponse < Orb::BaseModel

# @!attribute discount
#
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
required :discount, union: -> { Orb::Models::Discount }, nil?: true

# @!attribute end_date
Expand Down Expand Up @@ -156,7 +156,7 @@ class InvoiceLineItemCreateResponse < Orb::BaseModel
# # @param adjustments [Array<Orb::Models::InvoiceLineItemCreateResponse::Adjustment::MonetaryUsageDiscountAdjustment, Orb::Models::InvoiceLineItemCreateResponse::Adjustment::MonetaryAmountDiscountAdjustment, Orb::Models::InvoiceLineItemCreateResponse::Adjustment::MonetaryPercentageDiscountAdjustment, Orb::Models::InvoiceLineItemCreateResponse::Adjustment::MonetaryMinimumAdjustment, Orb::Models::InvoiceLineItemCreateResponse::Adjustment::MonetaryMaximumAdjustment>]
# # @param amount [String]
# # @param credits_applied [String]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param end_date [Time]
# # @param filter [String, nil]
# # @param grouping [String, nil]
Expand Down
8 changes: 4 additions & 4 deletions lib/orb/models/plan.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class Plan < Orb::BaseModel

# @!attribute discount
#
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
required :discount, union: -> { Orb::Models::Discount }, nil?: true

# @!attribute external_plan_id
Expand Down Expand Up @@ -161,7 +161,7 @@ class Plan < Orb::BaseModel
# # @param currency [String]
# # @param default_invoice_memo [String, nil]
# # @param description [String]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param external_plan_id [String, nil]
# # @param invoicing_currency [String]
# # @param maximum [Orb::Models::Plan::Maximum, nil]
Expand Down Expand Up @@ -718,7 +718,7 @@ class PlanPhase < Orb::BaseModel

# @!attribute discount
#
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# @return [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
required :discount, union: -> { Orb::Models::Discount }, nil?: true

# @!attribute duration
Expand Down Expand Up @@ -767,7 +767,7 @@ class PlanPhase < Orb::BaseModel
# @!parse
# # @param id [String]
# # @param description [String, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::Discount::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param discount [Orb::Models::PercentageDiscount, Orb::Models::TrialDiscount, Orb::Models::UsageDiscount, Orb::Models::AmountDiscount, nil]
# # @param duration [Integer, nil]
# # @param duration_unit [Symbol, Orb::Models::Plan::PlanPhase::DurationUnit, nil]
# # @param maximum [Orb::Models::Plan::PlanPhase::Maximum, nil]
Expand Down
Loading