dodopayments 1.16.1 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +58 -49
  4. data/lib/dodopayments/client.rb +4 -4
  5. data/lib/dodopayments/internal/default_page_number_pagination.rb +1 -1
  6. data/lib/dodopayments/internal/transport/base_client.rb +4 -4
  7. data/lib/dodopayments/internal/transport/pooled_net_requester.rb +1 -5
  8. data/lib/dodopayments/internal/type/array_of.rb +11 -0
  9. data/lib/dodopayments/internal/type/base_model.rb +32 -12
  10. data/lib/dodopayments/internal/type/base_page.rb +9 -1
  11. data/lib/dodopayments/internal/type/boolean.rb +4 -0
  12. data/lib/dodopayments/internal/type/enum.rb +9 -5
  13. data/lib/dodopayments/internal/type/hash_of.rb +11 -0
  14. data/lib/dodopayments/internal/type/io_like.rb +4 -0
  15. data/lib/dodopayments/internal/type/request_parameters.rb +1 -2
  16. data/lib/dodopayments/internal/type/union.rb +10 -1
  17. data/lib/dodopayments/internal/type/unknown.rb +4 -0
  18. data/lib/dodopayments/internal.rb +0 -1
  19. data/lib/dodopayments/models/attach_existing_customer.rb +2 -6
  20. data/lib/dodopayments/models/billing_address.rb +6 -10
  21. data/lib/dodopayments/models/country_code.rb +2 -5
  22. data/lib/dodopayments/models/create_new_customer.rb +6 -14
  23. data/lib/dodopayments/models/customer.rb +7 -11
  24. data/lib/dodopayments/models/customer_create_params.rb +6 -11
  25. data/lib/dodopayments/models/customer_limited_details.rb +4 -8
  26. data/lib/dodopayments/models/customer_list_params.rb +5 -10
  27. data/lib/dodopayments/models/customer_portal_session.rb +2 -6
  28. data/lib/dodopayments/models/customer_request.rb +2 -3
  29. data/lib/dodopayments/models/customer_retrieve_params.rb +3 -8
  30. data/lib/dodopayments/models/customer_update_params.rb +5 -10
  31. data/lib/dodopayments/models/customers/customer_portal_create_params.rb +4 -9
  32. data/lib/dodopayments/models/discount.rb +12 -31
  33. data/lib/dodopayments/models/discount_create_params.rb +10 -27
  34. data/lib/dodopayments/models/discount_delete_params.rb +3 -8
  35. data/lib/dodopayments/models/discount_list_params.rb +5 -10
  36. data/lib/dodopayments/models/discount_retrieve_params.rb +3 -8
  37. data/lib/dodopayments/models/discount_type.rb +2 -5
  38. data/lib/dodopayments/models/discount_update_params.rb +10 -27
  39. data/lib/dodopayments/models/dispute.rb +9 -25
  40. data/lib/dodopayments/models/dispute_list_params.rb +10 -27
  41. data/lib/dodopayments/models/dispute_retrieve_params.rb +3 -8
  42. data/lib/dodopayments/models/dispute_stage.rb +2 -5
  43. data/lib/dodopayments/models/dispute_status.rb +2 -5
  44. data/lib/dodopayments/models/intent_status.rb +2 -5
  45. data/lib/dodopayments/models/invoices/payment_retrieve_params.rb +3 -8
  46. data/lib/dodopayments/models/license_activate_params.rb +5 -10
  47. data/lib/dodopayments/models/license_deactivate_params.rb +5 -10
  48. data/lib/dodopayments/models/license_key.rb +13 -33
  49. data/lib/dodopayments/models/license_key_duration.rb +3 -7
  50. data/lib/dodopayments/models/license_key_instance.rb +6 -10
  51. data/lib/dodopayments/models/license_key_instance_list_params.rb +6 -11
  52. data/lib/dodopayments/models/license_key_instance_retrieve_params.rb +3 -8
  53. data/lib/dodopayments/models/license_key_instance_update_params.rb +4 -9
  54. data/lib/dodopayments/models/license_key_list_params.rb +8 -13
  55. data/lib/dodopayments/models/license_key_retrieve_params.rb +3 -8
  56. data/lib/dodopayments/models/license_key_status.rb +2 -5
  57. data/lib/dodopayments/models/license_key_update_params.rb +6 -11
  58. data/lib/dodopayments/models/license_validate_params.rb +5 -10
  59. data/lib/dodopayments/models/license_validate_response.rb +2 -6
  60. data/lib/dodopayments/models/misc_list_supported_countries_params.rb +3 -8
  61. data/lib/dodopayments/models/one_time_product_cart_item.rb +4 -8
  62. data/lib/dodopayments/models/payment.rb +193 -58
  63. data/lib/dodopayments/models/payment_create_params.rb +20 -55
  64. data/lib/dodopayments/models/payment_create_response.rb +9 -25
  65. data/lib/dodopayments/models/payment_list_params.rb +10 -27
  66. data/lib/dodopayments/models/payment_list_response.rb +13 -34
  67. data/lib/dodopayments/models/payment_retrieve_params.rb +3 -8
  68. data/lib/dodopayments/models/payout_list_params.rb +5 -10
  69. data/lib/dodopayments/models/payout_list_response.rb +20 -49
  70. data/lib/dodopayments/models/price.rb +29 -79
  71. data/lib/dodopayments/models/product.rb +18 -44
  72. data/lib/dodopayments/models/product_create_params.rb +14 -36
  73. data/lib/dodopayments/models/product_delete_params.rb +3 -8
  74. data/lib/dodopayments/models/product_list_params.rb +8 -17
  75. data/lib/dodopayments/models/product_list_response.rb +18 -45
  76. data/lib/dodopayments/models/product_retrieve_params.rb +3 -8
  77. data/lib/dodopayments/models/product_unarchive_params.rb +3 -8
  78. data/lib/dodopayments/models/product_update_params.rb +15 -38
  79. data/lib/dodopayments/models/products/image_update_params.rb +4 -9
  80. data/lib/dodopayments/models/products/image_update_response.rb +3 -7
  81. data/lib/dodopayments/models/refund.rb +11 -18
  82. data/lib/dodopayments/models/refund_create_params.rb +5 -10
  83. data/lib/dodopayments/models/refund_list_params.rb +9 -25
  84. data/lib/dodopayments/models/refund_retrieve_params.rb +3 -8
  85. data/lib/dodopayments/models/refund_status.rb +2 -5
  86. data/lib/dodopayments/models/subscription.rb +33 -55
  87. data/lib/dodopayments/models/subscription_change_plan_params.rb +44 -0
  88. data/lib/dodopayments/models/subscription_charge_params.rb +4 -9
  89. data/lib/dodopayments/models/subscription_charge_response.rb +2 -6
  90. data/lib/dodopayments/models/subscription_create_params.rb +26 -68
  91. data/lib/dodopayments/models/subscription_create_response.rb +8 -23
  92. data/lib/dodopayments/models/subscription_list_params.rb +9 -25
  93. data/lib/dodopayments/models/subscription_retrieve_params.rb +3 -8
  94. data/lib/dodopayments/models/subscription_status.rb +2 -5
  95. data/lib/dodopayments/models/subscription_update_params.rb +7 -12
  96. data/lib/dodopayments/models/time_interval.rb +2 -5
  97. data/lib/dodopayments/models/webhook_event.rb +9 -25
  98. data/lib/dodopayments/models/webhook_event_list_params.rb +9 -25
  99. data/lib/dodopayments/models/webhook_event_retrieve_params.rb +3 -8
  100. data/lib/dodopayments/request_options.rb +3 -4
  101. data/lib/dodopayments/resources/subscriptions.rb +22 -0
  102. data/lib/dodopayments/version.rb +1 -1
  103. data/lib/dodopayments.rb +1 -9
  104. data/rbi/lib/dodopayments/client.rbi +4 -4
  105. data/rbi/lib/dodopayments/internal/type/array_of.rbi +3 -0
  106. data/rbi/lib/dodopayments/internal/type/base_model.rbi +7 -1
  107. data/rbi/lib/dodopayments/internal/type/base_page.rbi +2 -0
  108. data/rbi/lib/dodopayments/internal/type/enum.rbi +3 -6
  109. data/rbi/lib/dodopayments/internal/type/hash_of.rbi +3 -0
  110. data/rbi/lib/dodopayments/internal/type/union.rbi +3 -0
  111. data/rbi/lib/dodopayments/internal.rbi +0 -1
  112. data/rbi/lib/dodopayments/models/country_code.rbi +1 -1
  113. data/rbi/lib/dodopayments/models/discount_type.rbi +1 -1
  114. data/rbi/lib/dodopayments/models/dispute_stage.rbi +1 -1
  115. data/rbi/lib/dodopayments/models/dispute_status.rbi +1 -1
  116. data/rbi/lib/dodopayments/models/intent_status.rbi +1 -1
  117. data/rbi/lib/dodopayments/models/license_key_status.rbi +1 -1
  118. data/rbi/lib/dodopayments/models/payment.rbi +172 -1
  119. data/rbi/lib/dodopayments/models/payment_create_params.rbi +2 -4
  120. data/rbi/lib/dodopayments/models/payment_list_response.rbi +1 -2
  121. data/rbi/lib/dodopayments/models/payout_list_response.rbi +2 -4
  122. data/rbi/lib/dodopayments/models/price.rbi +2 -4
  123. data/rbi/lib/dodopayments/models/product.rbi +1 -2
  124. data/rbi/lib/dodopayments/models/product_create_params.rbi +1 -2
  125. data/rbi/lib/dodopayments/models/product_list_response.rbi +2 -4
  126. data/rbi/lib/dodopayments/models/product_update_params.rbi +1 -2
  127. data/rbi/lib/dodopayments/models/refund.rbi +1 -1
  128. data/rbi/lib/dodopayments/models/refund_status.rbi +1 -1
  129. data/rbi/lib/dodopayments/models/subscription.rbi +10 -3
  130. data/rbi/lib/dodopayments/models/subscription_change_plan_params.rbi +65 -0
  131. data/rbi/lib/dodopayments/models/subscription_create_params.rbi +2 -10
  132. data/rbi/lib/dodopayments/models/subscription_status.rbi +1 -1
  133. data/rbi/lib/dodopayments/models/time_interval.rbi +1 -1
  134. data/rbi/lib/dodopayments/resources/subscriptions.rbi +20 -0
  135. data/sig/dodopayments/internal/type/array_of.rbs +2 -0
  136. data/sig/dodopayments/internal/type/base_model.rbs +4 -0
  137. data/sig/dodopayments/internal/type/enum.rbs +2 -2
  138. data/sig/dodopayments/internal/type/hash_of.rbs +2 -0
  139. data/sig/dodopayments/internal/type/union.rbs +2 -0
  140. data/sig/dodopayments/models/payment.rbs +307 -0
  141. data/sig/dodopayments/models/subscription.rbs +4 -0
  142. data/sig/dodopayments/models/subscription_change_plan_params.rbs +41 -0
  143. data/sig/dodopayments/resources/subscriptions.rbs +8 -0
  144. metadata +5 -2
@@ -127,8 +127,7 @@ module Dodopayments
127
127
 
128
128
  TaggedSymbol =
129
129
  T.type_alias { T.all(Symbol, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType) }
130
- OrSymbol =
131
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol) }
130
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
132
131
 
133
132
  CREDIT =
134
133
  T.let(:credit, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
@@ -176,8 +175,7 @@ module Dodopayments
176
175
  extend Dodopayments::Internal::Type::Enum
177
176
 
178
177
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::PaymentCreateParams::BillingCurrency) }
179
- OrSymbol =
180
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::PaymentCreateParams::BillingCurrency::TaggedSymbol) }
178
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
181
179
 
182
180
  AED = T.let(:AED, Dodopayments::Models::PaymentCreateParams::BillingCurrency::TaggedSymbol)
183
181
  ALL = T.let(:ALL, Dodopayments::Models::PaymentCreateParams::BillingCurrency::TaggedSymbol)
@@ -88,8 +88,7 @@ module Dodopayments
88
88
  extend Dodopayments::Internal::Type::Enum
89
89
 
90
90
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::PaymentListResponse::Currency) }
91
- OrSymbol =
92
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::PaymentListResponse::Currency::TaggedSymbol) }
91
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
93
92
 
94
93
  AED = T.let(:AED, Dodopayments::Models::PaymentListResponse::Currency::TaggedSymbol)
95
94
  ALL = T.let(:ALL, Dodopayments::Models::PaymentListResponse::Currency::TaggedSymbol)
@@ -126,8 +126,7 @@ module Dodopayments
126
126
  extend Dodopayments::Internal::Type::Enum
127
127
 
128
128
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::PayoutListResponse::Currency) }
129
- OrSymbol =
130
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::PayoutListResponse::Currency::TaggedSymbol) }
129
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
131
130
 
132
131
  AED = T.let(:AED, Dodopayments::Models::PayoutListResponse::Currency::TaggedSymbol)
133
132
  ALL = T.let(:ALL, Dodopayments::Models::PayoutListResponse::Currency::TaggedSymbol)
@@ -283,8 +282,7 @@ module Dodopayments
283
282
  extend Dodopayments::Internal::Type::Enum
284
283
 
285
284
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::PayoutListResponse::Status) }
286
- OrSymbol =
287
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol) }
285
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
288
286
 
289
287
  NOT_INITIATED = T.let(:not_initiated, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol)
290
288
  IN_PROGRESS = T.let(:in_progress, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol)
@@ -91,8 +91,7 @@ module Dodopayments
91
91
  extend Dodopayments::Internal::Type::Enum
92
92
 
93
93
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::Price::OneTimePrice::Currency) }
94
- OrSymbol =
95
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::Price::OneTimePrice::Currency::TaggedSymbol) }
94
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
96
95
 
97
96
  AED = T.let(:AED, Dodopayments::Models::Price::OneTimePrice::Currency::TaggedSymbol)
98
97
  ALL = T.let(:ALL, Dodopayments::Models::Price::OneTimePrice::Currency::TaggedSymbol)
@@ -346,8 +345,7 @@ module Dodopayments
346
345
  extend Dodopayments::Internal::Type::Enum
347
346
 
348
347
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::Price::RecurringPrice::Currency) }
349
- OrSymbol =
350
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::Price::RecurringPrice::Currency::TaggedSymbol) }
348
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
351
349
 
352
350
  AED = T.let(:AED, Dodopayments::Models::Price::RecurringPrice::Currency::TaggedSymbol)
353
351
  ALL = T.let(:ALL, Dodopayments::Models::Price::RecurringPrice::Currency::TaggedSymbol)
@@ -141,8 +141,7 @@ module Dodopayments
141
141
  extend Dodopayments::Internal::Type::Enum
142
142
 
143
143
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::Product::TaxCategory) }
144
- OrSymbol =
145
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::Product::TaxCategory::TaggedSymbol) }
144
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
146
145
 
147
146
  DIGITAL_PRODUCTS = T.let(:digital_products, Dodopayments::Models::Product::TaxCategory::TaggedSymbol)
148
147
  SAAS = T.let(:saas, Dodopayments::Models::Product::TaxCategory::TaggedSymbol)
@@ -105,8 +105,7 @@ module Dodopayments
105
105
  extend Dodopayments::Internal::Type::Enum
106
106
 
107
107
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::ProductCreateParams::TaxCategory) }
108
- OrSymbol =
109
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::ProductCreateParams::TaxCategory::TaggedSymbol) }
108
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
110
109
 
111
110
  DIGITAL_PRODUCTS =
112
111
  T.let(:digital_products, Dodopayments::Models::ProductCreateParams::TaxCategory::TaggedSymbol)
@@ -134,8 +134,7 @@ module Dodopayments
134
134
  extend Dodopayments::Internal::Type::Enum
135
135
 
136
136
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::ProductListResponse::TaxCategory) }
137
- OrSymbol =
138
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::ProductListResponse::TaxCategory::TaggedSymbol) }
137
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
139
138
 
140
139
  DIGITAL_PRODUCTS =
141
140
  T.let(:digital_products, Dodopayments::Models::ProductListResponse::TaxCategory::TaggedSymbol)
@@ -151,8 +150,7 @@ module Dodopayments
151
150
  extend Dodopayments::Internal::Type::Enum
152
151
 
153
152
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::ProductListResponse::Currency) }
154
- OrSymbol =
155
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::ProductListResponse::Currency::TaggedSymbol) }
153
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
156
154
 
157
155
  AED = T.let(:AED, Dodopayments::Models::ProductListResponse::Currency::TaggedSymbol)
158
156
  ALL = T.let(:ALL, Dodopayments::Models::ProductListResponse::Currency::TaggedSymbol)
@@ -127,8 +127,7 @@ module Dodopayments
127
127
  extend Dodopayments::Internal::Type::Enum
128
128
 
129
129
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::ProductUpdateParams::TaxCategory) }
130
- OrSymbol =
131
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::ProductUpdateParams::TaxCategory::TaggedSymbol) }
130
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
132
131
 
133
132
  DIGITAL_PRODUCTS =
134
133
  T.let(:digital_products, Dodopayments::Models::ProductUpdateParams::TaxCategory::TaggedSymbol)
@@ -79,7 +79,7 @@ module Dodopayments
79
79
  extend Dodopayments::Internal::Type::Enum
80
80
 
81
81
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::Refund::Currency) }
82
- OrSymbol = T.type_alias { T.any(Symbol, String, Dodopayments::Models::Refund::Currency::TaggedSymbol) }
82
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
83
83
 
84
84
  AED = T.let(:AED, Dodopayments::Models::Refund::Currency::TaggedSymbol)
85
85
  ALL = T.let(:ALL, Dodopayments::Models::Refund::Currency::TaggedSymbol)
@@ -6,7 +6,7 @@ module Dodopayments
6
6
  extend Dodopayments::Internal::Type::Enum
7
7
 
8
8
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::RefundStatus) }
9
- OrSymbol = T.type_alias { T.any(Symbol, String, Dodopayments::Models::RefundStatus::TaggedSymbol) }
9
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10
10
 
11
11
  SUCCEEDED = T.let(:succeeded, Dodopayments::Models::RefundStatus::TaggedSymbol)
12
12
  FAILED = T.let(:failed, Dodopayments::Models::RefundStatus::TaggedSymbol)
@@ -27,7 +27,8 @@ module Dodopayments
27
27
  sig { returns(T::Hash[Symbol, String]) }
28
28
  attr_accessor :metadata
29
29
 
30
- # Timestamp of the next scheduled billing
30
+ # Timestamp of the next scheduled billing. Indicates the end of current billing
31
+ # period
31
32
  sig { returns(Time) }
32
33
  attr_accessor :next_billing_date
33
34
 
@@ -38,6 +39,10 @@ module Dodopayments
38
39
  sig { returns(Dodopayments::Models::TimeInterval::TaggedSymbol) }
39
40
  attr_accessor :payment_frequency_interval
40
41
 
42
+ # Timestamp of the last payment. Indicates the start of current billing period
43
+ sig { returns(Time) }
44
+ attr_accessor :previous_billing_date
45
+
41
46
  # Identifier of the product associated with this subscription
42
47
  sig { returns(String) }
43
48
  attr_accessor :product_id
@@ -92,6 +97,7 @@ module Dodopayments
92
97
  next_billing_date: Time,
93
98
  payment_frequency_count: Integer,
94
99
  payment_frequency_interval: Dodopayments::Models::TimeInterval::OrSymbol,
100
+ previous_billing_date: Time,
95
101
  product_id: String,
96
102
  quantity: Integer,
97
103
  recurring_pre_tax_amount: Integer,
@@ -115,6 +121,7 @@ module Dodopayments
115
121
  next_billing_date:,
116
122
  payment_frequency_count:,
117
123
  payment_frequency_interval:,
124
+ previous_billing_date:,
118
125
  product_id:,
119
126
  quantity:,
120
127
  recurring_pre_tax_amount:,
@@ -139,6 +146,7 @@ module Dodopayments
139
146
  next_billing_date: Time,
140
147
  payment_frequency_count: Integer,
141
148
  payment_frequency_interval: Dodopayments::Models::TimeInterval::TaggedSymbol,
149
+ previous_billing_date: Time,
142
150
  product_id: String,
143
151
  quantity: Integer,
144
152
  recurring_pre_tax_amount: Integer,
@@ -159,8 +167,7 @@ module Dodopayments
159
167
  extend Dodopayments::Internal::Type::Enum
160
168
 
161
169
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::Subscription::Currency) }
162
- OrSymbol =
163
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::Subscription::Currency::TaggedSymbol) }
170
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
164
171
 
165
172
  AED = T.let(:AED, Dodopayments::Models::Subscription::Currency::TaggedSymbol)
166
173
  ALL = T.let(:ALL, Dodopayments::Models::Subscription::Currency::TaggedSymbol)
@@ -0,0 +1,65 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionChangePlanParams < Dodopayments::Internal::Type::BaseModel
6
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
7
+ include Dodopayments::Internal::Type::RequestParameters
8
+
9
+ # Unique identifier of the product to subscribe to
10
+ sig { returns(String) }
11
+ attr_accessor :product_id
12
+
13
+ sig { returns(Dodopayments::Models::SubscriptionChangePlanParams::ProrationBillingMode::OrSymbol) }
14
+ attr_accessor :proration_billing_mode
15
+
16
+ # Number of units to subscribe for. Must be at least 1.
17
+ sig { returns(Integer) }
18
+ attr_accessor :quantity
19
+
20
+ sig do
21
+ params(
22
+ product_id: String,
23
+ proration_billing_mode: Dodopayments::Models::SubscriptionChangePlanParams::ProrationBillingMode::OrSymbol,
24
+ quantity: Integer,
25
+ request_options: T.any(Dodopayments::RequestOptions, Dodopayments::Internal::AnyHash)
26
+ )
27
+ .returns(T.attached_class)
28
+ end
29
+ def self.new(product_id:, proration_billing_mode:, quantity:, request_options: {}); end
30
+
31
+ sig do
32
+ override
33
+ .returns(
34
+ {
35
+ product_id: String,
36
+ proration_billing_mode: Dodopayments::Models::SubscriptionChangePlanParams::ProrationBillingMode::OrSymbol,
37
+ quantity: Integer,
38
+ request_options: Dodopayments::RequestOptions
39
+ }
40
+ )
41
+ end
42
+ def to_hash; end
43
+
44
+ module ProrationBillingMode
45
+ extend Dodopayments::Internal::Type::Enum
46
+
47
+ TaggedSymbol =
48
+ T.type_alias { T.all(Symbol, Dodopayments::Models::SubscriptionChangePlanParams::ProrationBillingMode) }
49
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
50
+
51
+ PRORATED_IMMEDIATELY =
52
+ T.let(
53
+ :prorated_immediately,
54
+ Dodopayments::Models::SubscriptionChangePlanParams::ProrationBillingMode::TaggedSymbol
55
+ )
56
+
57
+ sig do
58
+ override
59
+ .returns(T::Array[Dodopayments::Models::SubscriptionChangePlanParams::ProrationBillingMode::TaggedSymbol])
60
+ end
61
+ def self.values; end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -159,14 +159,7 @@ module Dodopayments
159
159
 
160
160
  TaggedSymbol =
161
161
  T.type_alias { T.all(Symbol, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType) }
162
- OrSymbol =
163
- T.type_alias do
164
- T.any(
165
- Symbol,
166
- String,
167
- Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol
168
- )
169
- end
162
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
170
163
 
171
164
  CREDIT =
172
165
  T.let(:credit, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
@@ -224,8 +217,7 @@ module Dodopayments
224
217
 
225
218
  TaggedSymbol =
226
219
  T.type_alias { T.all(Symbol, Dodopayments::Models::SubscriptionCreateParams::BillingCurrency) }
227
- OrSymbol =
228
- T.type_alias { T.any(Symbol, String, Dodopayments::Models::SubscriptionCreateParams::BillingCurrency::TaggedSymbol) }
220
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
229
221
 
230
222
  AED = T.let(:AED, Dodopayments::Models::SubscriptionCreateParams::BillingCurrency::TaggedSymbol)
231
223
  ALL = T.let(:ALL, Dodopayments::Models::SubscriptionCreateParams::BillingCurrency::TaggedSymbol)
@@ -6,7 +6,7 @@ module Dodopayments
6
6
  extend Dodopayments::Internal::Type::Enum
7
7
 
8
8
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::SubscriptionStatus) }
9
- OrSymbol = T.type_alias { T.any(Symbol, String, Dodopayments::Models::SubscriptionStatus::TaggedSymbol) }
9
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10
10
 
11
11
  PENDING = T.let(:pending, Dodopayments::Models::SubscriptionStatus::TaggedSymbol)
12
12
  ACTIVE = T.let(:active, Dodopayments::Models::SubscriptionStatus::TaggedSymbol)
@@ -6,7 +6,7 @@ module Dodopayments
6
6
  extend Dodopayments::Internal::Type::Enum
7
7
 
8
8
  TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::TimeInterval) }
9
- OrSymbol = T.type_alias { T.any(Symbol, String, Dodopayments::Models::TimeInterval::TaggedSymbol) }
9
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10
10
 
11
11
  DAY = T.let(:Day, Dodopayments::Models::TimeInterval::TaggedSymbol)
12
12
  WEEK = T.let(:Week, Dodopayments::Models::TimeInterval::TaggedSymbol)
@@ -121,6 +121,26 @@ module Dodopayments
121
121
  status: nil,
122
122
  request_options: {}
123
123
  ); end
124
+ sig do
125
+ params(
126
+ subscription_id: String,
127
+ product_id: String,
128
+ proration_billing_mode: Dodopayments::Models::SubscriptionChangePlanParams::ProrationBillingMode::OrSymbol,
129
+ quantity: Integer,
130
+ request_options: T.nilable(T.any(Dodopayments::RequestOptions, Dodopayments::Internal::AnyHash))
131
+ )
132
+ .void
133
+ end
134
+ def change_plan(
135
+ # Subscription Id
136
+ subscription_id,
137
+ # Unique identifier of the product to subscribe to
138
+ product_id:,
139
+ proration_billing_mode:,
140
+ # Number of units to subscribe for. Must be at least 1.
141
+ quantity:,
142
+ request_options: {}
143
+ ); end
124
144
  sig do
125
145
  params(
126
146
  subscription_id: String,
@@ -15,6 +15,8 @@ module Dodopayments
15
15
 
16
16
  def ==: (top other) -> bool
17
17
 
18
+ def hash: -> Integer
19
+
18
20
  def coerce: (
19
21
  ::Array[top] | top value,
20
22
  state: Dodopayments::Internal::Type::Converter::coerce_state
@@ -49,8 +49,12 @@ module Dodopayments
49
49
 
50
50
  def self.==: (top other) -> bool
51
51
 
52
+ def self.hash: -> Integer
53
+
52
54
  def ==: (top other) -> bool
53
55
 
56
+ def hash: -> Integer
57
+
54
58
  def self.coerce: (
55
59
  Dodopayments::Internal::Type::BaseModel
56
60
  | ::Hash[top, top]
@@ -6,12 +6,12 @@ module Dodopayments
6
6
 
7
7
  def self.values: -> ::Array[(nil | bool | Integer | Float | Symbol)]
8
8
 
9
- private def self.finalize!: -> void
10
-
11
9
  def ===: (top other) -> bool
12
10
 
13
11
  def ==: (top other) -> bool
14
12
 
13
+ def hash: -> Integer
14
+
15
15
  def coerce: (
16
16
  String | Symbol | top value,
17
17
  state: Dodopayments::Internal::Type::Converter::coerce_state
@@ -15,6 +15,8 @@ module Dodopayments
15
15
 
16
16
  def ==: (top other) -> bool
17
17
 
18
+ def hash: -> Integer
19
+
18
20
  def coerce: (
19
21
  ::Hash[top, top] | top value,
20
22
  state: Dodopayments::Internal::Type::Converter::coerce_state
@@ -30,6 +30,8 @@ module Dodopayments
30
30
 
31
31
  def ==: (top other) -> bool
32
32
 
33
+ def hash: -> Integer
34
+
33
35
  def coerce: (
34
36
  top value,
35
37
  state: Dodopayments::Internal::Type::Converter::coerce_state