dodopayments 2.25.0 → 2.27.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 (165) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/client.rb +4 -0
  5. data/lib/dodopayments/models/balance_ledger_entry.rb +7 -1
  6. data/lib/dodopayments/models/blocklist/block_by_customer_id.rb +18 -0
  7. data/lib/dodopayments/models/blocklist/block_by_email.rb +18 -0
  8. data/lib/dodopayments/models/blocklist/block_identifier.rb +21 -0
  9. data/lib/dodopayments/models/blocklist/blocked_customer.rb +128 -0
  10. data/lib/dodopayments/models/blocklist/blocked_customer_source.rb +22 -0
  11. data/lib/dodopayments/models/blocklist/create_blocked_customer_request.rb +66 -0
  12. data/lib/dodopayments/models/blocklist/customer_create_params.rb +16 -0
  13. data/lib/dodopayments/models/blocklist/customer_delete_params.rb +22 -0
  14. data/lib/dodopayments/models/blocklist/customer_list_params.rb +64 -0
  15. data/lib/dodopayments/models/blocklist/customer_retrieve_params.rb +22 -0
  16. data/lib/dodopayments/models/blocklist/customers/blocked_customer_note.rb +44 -0
  17. data/lib/dodopayments/models/blocklist/customers/note_create_params.rb +24 -0
  18. data/lib/dodopayments/models/blocklist/customers/note_request.rb +19 -0
  19. data/lib/dodopayments/models/blocklist/customers/note_update_params.rb +30 -0
  20. data/lib/dodopayments/models/customer.rb +22 -1
  21. data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +1 -0
  22. data/lib/dodopayments/models/dunning_started_webhook_event.rb +1 -0
  23. data/lib/dodopayments/models/entitlements/license_key_grant.rb +24 -3
  24. data/lib/dodopayments/models/manual_retry.rb +76 -0
  25. data/lib/dodopayments/models/manual_retry_state.rb +50 -0
  26. data/lib/dodopayments/models/payment_retrieve_retry_state_params.rb +20 -0
  27. data/lib/dodopayments/models/payment_retry_params.rb +20 -0
  28. data/lib/dodopayments/models/price.rb +34 -30
  29. data/lib/dodopayments/models/subscription_active_webhook_event.rb +32 -4
  30. data/lib/dodopayments/models/subscription_cancelled_webhook_event.rb +33 -4
  31. data/lib/dodopayments/models/subscription_change_plan_response.rb +47 -0
  32. data/lib/dodopayments/models/subscription_expired_webhook_event.rb +32 -4
  33. data/lib/dodopayments/models/subscription_failed_webhook_event.rb +32 -4
  34. data/lib/dodopayments/models/subscription_list_params.rb +1 -0
  35. data/lib/dodopayments/models/subscription_on_hold_webhook_event.rb +32 -4
  36. data/lib/dodopayments/models/subscription_past_due_webhook_event.rb +68 -0
  37. data/lib/dodopayments/models/subscription_paused_webhook_event.rb +32 -4
  38. data/lib/dodopayments/models/subscription_plan_changed_webhook_event.rb +33 -4
  39. data/lib/dodopayments/models/subscription_renewed_webhook_event.rb +32 -4
  40. data/lib/dodopayments/models/subscription_status.rb +1 -0
  41. data/lib/dodopayments/models/subscription_unpaused_webhook_event.rb +32 -4
  42. data/lib/dodopayments/models/subscription_update_params.rb +17 -4
  43. data/lib/dodopayments/models/subscription_update_payment_method_webhook_event.rb +34 -4
  44. data/lib/dodopayments/models/subscription_updated_webhook_event.rb +32 -4
  45. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +3 -1
  46. data/lib/dodopayments/models/unwrap_webhook_event.rb +3 -1
  47. data/lib/dodopayments/models/update_subscription_plan_req.rb +35 -1
  48. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  49. data/lib/dodopayments/models/webhook_payload.rb +19 -1
  50. data/lib/dodopayments/models.rb +12 -0
  51. data/lib/dodopayments/resources/blocklist/customers/notes.rb +68 -0
  52. data/lib/dodopayments/resources/blocklist/customers.rb +107 -0
  53. data/lib/dodopayments/resources/blocklist.rb +18 -0
  54. data/lib/dodopayments/resources/payments.rb +36 -0
  55. data/lib/dodopayments/resources/subscriptions.rb +14 -6
  56. data/lib/dodopayments/resources/webhooks.rb +2 -2
  57. data/lib/dodopayments/version.rb +1 -1
  58. data/lib/dodopayments.rb +24 -1
  59. data/rbi/dodopayments/client.rbi +3 -0
  60. data/rbi/dodopayments/models/balance_ledger_entry.rbi +6 -0
  61. data/rbi/dodopayments/models/blocklist/block_by_customer_id.rbi +32 -0
  62. data/rbi/dodopayments/models/blocklist/block_by_email.rbi +32 -0
  63. data/rbi/dodopayments/models/blocklist/block_identifier.rbi +30 -0
  64. data/rbi/dodopayments/models/blocklist/blocked_customer.rbi +161 -0
  65. data/rbi/dodopayments/models/blocklist/blocked_customer_source.rbi +55 -0
  66. data/rbi/dodopayments/models/blocklist/create_blocked_customer_request.rbi +143 -0
  67. data/rbi/dodopayments/models/blocklist/customer_create_params.rbi +34 -0
  68. data/rbi/dodopayments/models/blocklist/customer_delete_params.rbi +40 -0
  69. data/rbi/dodopayments/models/blocklist/customer_list_params.rbi +88 -0
  70. data/rbi/dodopayments/models/blocklist/customer_retrieve_params.rbi +40 -0
  71. data/rbi/dodopayments/models/blocklist/customers/blocked_customer_note.rbi +66 -0
  72. data/rbi/dodopayments/models/blocklist/customers/note_create_params.rbi +45 -0
  73. data/rbi/dodopayments/models/blocklist/customers/note_request.rbi +30 -0
  74. data/rbi/dodopayments/models/blocklist/customers/note_update_params.rbi +50 -0
  75. data/rbi/dodopayments/models/customer.rbi +20 -0
  76. data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +5 -0
  77. data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +5 -0
  78. data/rbi/dodopayments/models/entitlements/license_key_grant.rbi +22 -2
  79. data/rbi/dodopayments/models/manual_retry.rbi +93 -0
  80. data/rbi/dodopayments/models/manual_retry_state.rbi +65 -0
  81. data/rbi/dodopayments/models/payment_retrieve_retry_state_params.rbi +38 -0
  82. data/rbi/dodopayments/models/payment_retry_params.rbi +38 -0
  83. data/rbi/dodopayments/models/price.rbi +47 -30
  84. data/rbi/dodopayments/models/subscription_active_webhook_event.rbi +53 -6
  85. data/rbi/dodopayments/models/subscription_cancelled_webhook_event.rbi +53 -6
  86. data/rbi/dodopayments/models/subscription_change_plan_response.rbi +69 -0
  87. data/rbi/dodopayments/models/subscription_expired_webhook_event.rbi +53 -6
  88. data/rbi/dodopayments/models/subscription_failed_webhook_event.rbi +53 -6
  89. data/rbi/dodopayments/models/subscription_list_params.rbi +5 -0
  90. data/rbi/dodopayments/models/subscription_on_hold_webhook_event.rbi +53 -6
  91. data/rbi/dodopayments/models/subscription_past_due_webhook_event.rbi +114 -0
  92. data/rbi/dodopayments/models/subscription_paused_webhook_event.rbi +53 -6
  93. data/rbi/dodopayments/models/subscription_plan_changed_webhook_event.rbi +53 -6
  94. data/rbi/dodopayments/models/subscription_renewed_webhook_event.rbi +53 -6
  95. data/rbi/dodopayments/models/subscription_status.rbi +2 -0
  96. data/rbi/dodopayments/models/subscription_unpaused_webhook_event.rbi +53 -6
  97. data/rbi/dodopayments/models/subscription_update_params.rbi +33 -4
  98. data/rbi/dodopayments/models/subscription_update_payment_method_webhook_event.rbi +58 -6
  99. data/rbi/dodopayments/models/subscription_updated_webhook_event.rbi +53 -6
  100. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +1 -0
  101. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +1 -0
  102. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +58 -0
  103. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  104. data/rbi/dodopayments/models/webhook_payload.rbi +37 -3
  105. data/rbi/dodopayments/models.rbi +14 -0
  106. data/rbi/dodopayments/resources/blocklist/customers/notes.rbi +50 -0
  107. data/rbi/dodopayments/resources/blocklist/customers.rbi +88 -0
  108. data/rbi/dodopayments/resources/blocklist.rbi +15 -0
  109. data/rbi/dodopayments/resources/payments.rbi +26 -0
  110. data/rbi/dodopayments/resources/subscriptions.rbi +63 -3
  111. data/rbi/dodopayments/resources/webhooks.rbi +2 -0
  112. data/sig/dodopayments/client.rbs +2 -0
  113. data/sig/dodopayments/models/balance_ledger_entry.rbs +5 -0
  114. data/sig/dodopayments/models/blocklist/block_by_customer_id.rbs +15 -0
  115. data/sig/dodopayments/models/blocklist/block_by_email.rbs +15 -0
  116. data/sig/dodopayments/models/blocklist/block_identifier.rbs +15 -0
  117. data/sig/dodopayments/models/blocklist/blocked_customer.rbs +87 -0
  118. data/sig/dodopayments/models/blocklist/blocked_customer_source.rbs +20 -0
  119. data/sig/dodopayments/models/blocklist/create_blocked_customer_request.rbs +71 -0
  120. data/sig/dodopayments/models/blocklist/customer_create_params.rbs +17 -0
  121. data/sig/dodopayments/models/blocklist/customer_delete_params.rbs +25 -0
  122. data/sig/dodopayments/models/blocklist/customer_list_params.rbs +53 -0
  123. data/sig/dodopayments/models/blocklist/customer_retrieve_params.rbs +25 -0
  124. data/sig/dodopayments/models/blocklist/customers/blocked_customer_note.rbs +44 -0
  125. data/sig/dodopayments/models/blocklist/customers/note_create_params.rbs +30 -0
  126. data/sig/dodopayments/models/blocklist/customers/note_request.rbs +17 -0
  127. data/sig/dodopayments/models/blocklist/customers/note_update_params.rbs +36 -0
  128. data/sig/dodopayments/models/customer.rbs +10 -0
  129. data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +2 -1
  130. data/sig/dodopayments/models/dunning_started_webhook_event.rbs +2 -1
  131. data/sig/dodopayments/models/entitlements/license_key_grant.rbs +10 -0
  132. data/sig/dodopayments/models/manual_retry.rbs +55 -0
  133. data/sig/dodopayments/models/manual_retry_state.rbs +40 -0
  134. data/sig/dodopayments/models/payment_retrieve_retry_state_params.rbs +23 -0
  135. data/sig/dodopayments/models/payment_retry_params.rbs +23 -0
  136. data/sig/dodopayments/models/price.rbs +21 -15
  137. data/sig/dodopayments/models/subscription_active_webhook_event.rbs +16 -4
  138. data/sig/dodopayments/models/subscription_cancelled_webhook_event.rbs +16 -4
  139. data/sig/dodopayments/models/subscription_change_plan_response.rbs +35 -0
  140. data/sig/dodopayments/models/subscription_expired_webhook_event.rbs +16 -4
  141. data/sig/dodopayments/models/subscription_failed_webhook_event.rbs +16 -4
  142. data/sig/dodopayments/models/subscription_list_params.rbs +2 -0
  143. data/sig/dodopayments/models/subscription_on_hold_webhook_event.rbs +16 -4
  144. data/sig/dodopayments/models/subscription_past_due_webhook_event.rbs +47 -0
  145. data/sig/dodopayments/models/subscription_paused_webhook_event.rbs +16 -4
  146. data/sig/dodopayments/models/subscription_plan_changed_webhook_event.rbs +16 -4
  147. data/sig/dodopayments/models/subscription_renewed_webhook_event.rbs +16 -4
  148. data/sig/dodopayments/models/subscription_status.rbs +9 -1
  149. data/sig/dodopayments/models/subscription_unpaused_webhook_event.rbs +16 -4
  150. data/sig/dodopayments/models/subscription_update_params.rbs +2 -0
  151. data/sig/dodopayments/models/subscription_update_payment_method_webhook_event.rbs +16 -4
  152. data/sig/dodopayments/models/subscription_updated_webhook_event.rbs +16 -4
  153. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +1 -0
  154. data/sig/dodopayments/models/unwrap_webhook_event.rbs +1 -0
  155. data/sig/dodopayments/models/update_subscription_plan_req.rbs +14 -0
  156. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  157. data/sig/dodopayments/models/webhook_payload.rbs +16 -4
  158. data/sig/dodopayments/models.rbs +12 -0
  159. data/sig/dodopayments/resources/blocklist/customers/notes.rbs +24 -0
  160. data/sig/dodopayments/resources/blocklist/customers.rbs +36 -0
  161. data/sig/dodopayments/resources/blocklist.rbs +9 -0
  162. data/sig/dodopayments/resources/payments.rbs +10 -0
  163. data/sig/dodopayments/resources/subscriptions.rbs +5 -1
  164. data/sig/dodopayments/resources/webhooks.rbs +2 -0
  165. metadata +71 -2
@@ -22,6 +22,7 @@ module Dodopayments
22
22
  SUBSCRIPTION_ACTIVE = :"subscription.active"
23
23
  SUBSCRIPTION_RENEWED = :"subscription.renewed"
24
24
  SUBSCRIPTION_ON_HOLD = :"subscription.on_hold"
25
+ SUBSCRIPTION_PAST_DUE = :"subscription.past_due"
25
26
  SUBSCRIPTION_PAUSED = :"subscription.paused"
26
27
  SUBSCRIPTION_UNPAUSED = :"subscription.unpaused"
27
28
  SUBSCRIPTION_CANCELLED = :"subscription.cancelled"
@@ -89,9 +89,26 @@ module Dodopayments
89
89
  # @return [Symbol, :Subscription]
90
90
  required :payload_type, const: :Subscription
91
91
 
92
- # @!method initialize(payload_type: :Subscription)
92
+ # @!attribute past_due_ends_at
93
+ # Time when the grace period ends. The subscription moves to `on_hold` or to
94
+ # `cancelled` at this time.
95
+ #
96
+ # Read in the same query as the rest of the payload, so it always comes from the
97
+ # row snapshot that produced `status`. It is set whenever the subscription sits in
98
+ # a window at that moment. A delayed event of another type therefore carries the
99
+ # deadline too, next to a `past_due` status.
100
+ #
101
+ # @return [Time, nil]
102
+ optional :past_due_ends_at, Time, nil?: true
103
+
104
+ # @!method initialize(past_due_ends_at: nil, payload_type: :Subscription)
105
+ # Some parameter documentations has been truncated, see
106
+ # {Dodopayments::Models::WebhookPayload::Data::Subscription} for more details.
107
+ #
93
108
  # Response struct representing subscription details
94
109
  #
110
+ # @param past_due_ends_at [Time, nil] Time when the grace period ends. The subscription moves to `on_hold` or
111
+ #
95
112
  # @param payload_type [Symbol, :Subscription]
96
113
  end
97
114
 
@@ -529,6 +546,7 @@ module Dodopayments
529
546
 
530
547
  ON_HOLD = :on_hold
531
548
  CANCELLED = :cancelled
549
+ PAST_DUE = :past_due
532
550
 
533
551
  # @!method self.values
534
552
  # @return [Array<Symbol>]
@@ -73,6 +73,8 @@ module Dodopayments
73
73
 
74
74
  BillingAddress = Dodopayments::Models::BillingAddress
75
75
 
76
+ Blocklist = Dodopayments::Models::Blocklist
77
+
76
78
  Brand = Dodopayments::Models::Brand
77
79
 
78
80
  BrandArchiveParams = Dodopayments::Models::BrandArchiveParams
@@ -317,6 +319,10 @@ module Dodopayments
317
319
 
318
320
  LicenseValidateParams = Dodopayments::Models::LicenseValidateParams
319
321
 
322
+ ManualRetry = Dodopayments::Models::ManualRetry
323
+
324
+ ManualRetryState = Dodopayments::Models::ManualRetryState
325
+
320
326
  # @type [Dodopayments::Internal::Type::Converter]
321
327
  Metadata = Dodopayments::Models::Metadata
322
328
 
@@ -370,6 +376,10 @@ module Dodopayments
370
376
 
371
377
  PaymentRetrieveParams = Dodopayments::Models::PaymentRetrieveParams
372
378
 
379
+ PaymentRetrieveRetryStateParams = Dodopayments::Models::PaymentRetrieveRetryStateParams
380
+
381
+ PaymentRetryParams = Dodopayments::Models::PaymentRetryParams
382
+
373
383
  PaymentSucceededWebhookEvent = Dodopayments::Models::PaymentSucceededWebhookEvent
374
384
 
375
385
  PayoutCreatedWebhookEvent = Dodopayments::Models::PayoutCreatedWebhookEvent
@@ -470,6 +480,8 @@ module Dodopayments
470
480
 
471
481
  SubscriptionOnHoldWebhookEvent = Dodopayments::Models::SubscriptionOnHoldWebhookEvent
472
482
 
483
+ SubscriptionPastDueWebhookEvent = Dodopayments::Models::SubscriptionPastDueWebhookEvent
484
+
473
485
  SubscriptionPausedWebhookEvent = Dodopayments::Models::SubscriptionPausedWebhookEvent
474
486
 
475
487
  SubscriptionPlanChangedWebhookEvent = Dodopayments::Models::SubscriptionPlanChangedWebhookEvent
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Resources
5
+ class Blocklist
6
+ class Customers
7
+ class Notes
8
+ # @overload create(entry_id, note:, request_options: {})
9
+ #
10
+ # @param entry_id [String] Blocklist entry id
11
+ #
12
+ # @param note [String]
13
+ #
14
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
15
+ #
16
+ # @return [Dodopayments::Models::Blocklist::Customers::BlockedCustomerNote]
17
+ #
18
+ # @see Dodopayments::Models::Blocklist::Customers::NoteCreateParams
19
+ def create(entry_id, params)
20
+ parsed, options = Dodopayments::Blocklist::Customers::NoteCreateParams.dump_request(params)
21
+ @client.request(
22
+ method: :post,
23
+ path: ["blocklist/customers/%1$s/notes", entry_id],
24
+ body: parsed,
25
+ model: Dodopayments::Blocklist::Customers::BlockedCustomerNote,
26
+ options: options
27
+ )
28
+ end
29
+
30
+ # @overload update(note_id, entry_id:, note:, request_options: {})
31
+ #
32
+ # @param note_id [String] Path param: Note id
33
+ #
34
+ # @param entry_id [String] Path param: Blocklist entry id
35
+ #
36
+ # @param note [String] Body param
37
+ #
38
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
39
+ #
40
+ # @return [Dodopayments::Models::Blocklist::Customers::BlockedCustomerNote]
41
+ #
42
+ # @see Dodopayments::Models::Blocklist::Customers::NoteUpdateParams
43
+ def update(note_id, params)
44
+ parsed, options = Dodopayments::Blocklist::Customers::NoteUpdateParams.dump_request(params)
45
+ entry_id =
46
+ parsed.delete(:entry_id) do
47
+ raise ArgumentError.new("missing required path argument #{_1}")
48
+ end
49
+ @client.request(
50
+ method: :patch,
51
+ path: ["blocklist/customers/%1$s/notes/%2$s", entry_id, note_id],
52
+ body: parsed,
53
+ model: Dodopayments::Blocklist::Customers::BlockedCustomerNote,
54
+ options: options
55
+ )
56
+ end
57
+
58
+ # @api private
59
+ #
60
+ # @param client [Dodopayments::Client]
61
+ def initialize(client:)
62
+ @client = client
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Resources
5
+ class Blocklist
6
+ class Customers
7
+ # @return [Dodopayments::Resources::Blocklist::Customers::Notes]
8
+ attr_reader :notes
9
+
10
+ # @overload create(create_blocked_customer_request:, request_options: {})
11
+ #
12
+ # @param create_blocked_customer_request [Dodopayments::Models::Blocklist::CreateBlockedCustomerRequest::BlocklistCustomersBlockByCustomerID, Dodopayments::Models::Blocklist::CreateBlockedCustomerRequest::BlocklistCustomersBlockByEmail]
13
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
14
+ #
15
+ # @return [Dodopayments::Models::Blocklist::BlockedCustomer]
16
+ #
17
+ # @see Dodopayments::Models::Blocklist::CustomerCreateParams
18
+ def create(params)
19
+ parsed, options = Dodopayments::Blocklist::CustomerCreateParams.dump_request(params)
20
+ @client.request(
21
+ method: :post,
22
+ path: "blocklist/customers",
23
+ body: parsed[:create_blocked_customer_request],
24
+ model: Dodopayments::Blocklist::BlockedCustomer,
25
+ options: options
26
+ )
27
+ end
28
+
29
+ # @overload retrieve(entry_id, request_options: {})
30
+ #
31
+ # @param entry_id [String] Blocklist entry id
32
+ #
33
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
34
+ #
35
+ # @return [Dodopayments::Models::Blocklist::BlockedCustomer]
36
+ #
37
+ # @see Dodopayments::Models::Blocklist::CustomerRetrieveParams
38
+ def retrieve(entry_id, params = {})
39
+ @client.request(
40
+ method: :get,
41
+ path: ["blocklist/customers/%1$s", entry_id],
42
+ model: Dodopayments::Blocklist::BlockedCustomer,
43
+ options: params[:request_options]
44
+ )
45
+ end
46
+
47
+ # @overload list(blocked_by_email: nil, created_at_gte: nil, created_at_lte: nil, identifier: nil, page_number: nil, page_size: nil, request_options: {})
48
+ #
49
+ # @param blocked_by_email [String, nil] Filter by the dashboard user who blocked the customer.
50
+ #
51
+ # @param created_at_gte [Time, nil] Blocked on or after this time.
52
+ #
53
+ # @param created_at_lte [Time, nil] Blocked on or before this time.
54
+ #
55
+ # @param identifier [String, nil] Partial, case-insensitive match on the email and on the customer id.
56
+ #
57
+ # @param page_number [Integer, nil] Page number. Default 0.
58
+ #
59
+ # @param page_size [Integer, nil] Page size. Default 10, maximum 100.
60
+ #
61
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
62
+ #
63
+ # @return [Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Blocklist::BlockedCustomer>]
64
+ #
65
+ # @see Dodopayments::Models::Blocklist::CustomerListParams
66
+ def list(params = {})
67
+ parsed, options = Dodopayments::Blocklist::CustomerListParams.dump_request(params)
68
+ query = Dodopayments::Internal::Util.encode_query_params(parsed)
69
+ @client.request(
70
+ method: :get,
71
+ path: "blocklist/customers",
72
+ query: query,
73
+ page: Dodopayments::Internal::DefaultPageNumberPagination,
74
+ model: Dodopayments::Blocklist::BlockedCustomer,
75
+ options: options
76
+ )
77
+ end
78
+
79
+ # @overload delete(entry_id, request_options: {})
80
+ #
81
+ # @param entry_id [String] Blocklist entry id
82
+ #
83
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
84
+ #
85
+ # @return [nil]
86
+ #
87
+ # @see Dodopayments::Models::Blocklist::CustomerDeleteParams
88
+ def delete(entry_id, params = {})
89
+ @client.request(
90
+ method: :delete,
91
+ path: ["blocklist/customers/%1$s", entry_id],
92
+ model: NilClass,
93
+ options: params[:request_options]
94
+ )
95
+ end
96
+
97
+ # @api private
98
+ #
99
+ # @param client [Dodopayments::Client]
100
+ def initialize(client:)
101
+ @client = client
102
+ @notes = Dodopayments::Resources::Blocklist::Customers::Notes.new(client: client)
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Resources
5
+ class Blocklist
6
+ # @return [Dodopayments::Resources::Blocklist::Customers]
7
+ attr_reader :customers
8
+
9
+ # @api private
10
+ #
11
+ # @param client [Dodopayments::Client]
12
+ def initialize(client:)
13
+ @client = client
14
+ @customers = Dodopayments::Resources::Blocklist::Customers.new(client: client)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -143,6 +143,42 @@ module Dodopayments
143
143
  )
144
144
  end
145
145
 
146
+ # @overload retrieve_retry_state(payment_id, request_options: {})
147
+ #
148
+ # @param payment_id [String] Id of the failed payment
149
+ #
150
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
151
+ #
152
+ # @return [Dodopayments::Models::ManualRetryState]
153
+ #
154
+ # @see Dodopayments::Models::PaymentRetrieveRetryStateParams
155
+ def retrieve_retry_state(payment_id, params = {})
156
+ @client.request(
157
+ method: :get,
158
+ path: ["payments/%1$s/retry", payment_id],
159
+ model: Dodopayments::ManualRetryState,
160
+ options: params[:request_options]
161
+ )
162
+ end
163
+
164
+ # @overload retry_(payment_id, request_options: {})
165
+ #
166
+ # @param payment_id [String] Id of the failed payment
167
+ #
168
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
169
+ #
170
+ # @return [Dodopayments::Models::ManualRetry]
171
+ #
172
+ # @see Dodopayments::Models::PaymentRetryParams
173
+ def retry_(payment_id, params = {})
174
+ @client.request(
175
+ method: :post,
176
+ path: ["payments/%1$s/retry", payment_id],
177
+ model: Dodopayments::ManualRetry,
178
+ options: params[:request_options]
179
+ )
180
+ end
181
+
146
182
  # @api private
147
183
  #
148
184
  # @param client [Dodopayments::Client]
@@ -121,9 +121,9 @@ module Dodopayments
121
121
  #
122
122
  # @param next_billing_date [Time, nil]
123
123
  #
124
- # @param pause [Boolean, nil] `Some(true)` pauses an active subscription; `Some(false)` unpauses a
124
+ # @param pause [Boolean, nil] Removed. Use `status: paused` to pause and `status: active` to resume.
125
125
  #
126
- # @param status [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
126
+ # @param status [Symbol, Dodopayments::Models::SubscriptionStatus, nil] Set to `cancelled` to cancel the subscription. See `cancel_reason`,
127
127
  #
128
128
  # @param subscription_period_count [Integer, nil] New number of `subscription_period_interval` units the subscription
129
129
  #
@@ -209,7 +209,7 @@ module Dodopayments
209
209
  # Some parameter documentations has been truncated, see
210
210
  # {Dodopayments::Models::SubscriptionChangePlanParams} for more details.
211
211
  #
212
- # @overload change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, adaptive_currency_fees_inclusive: nil, addons: nil, discount_code: nil, discount_codes: nil, effective_at: nil, metadata: nil, on_payment_failure: nil, request_options: {})
212
+ # @overload change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, adaptive_currency_fees_inclusive: nil, addons: nil, cancel_scheduled_change_plan: nil, collect_via_payment_link: nil, discount_code: nil, discount_codes: nil, effective_at: nil, metadata: nil, on_payment_failure: nil, request_options: {})
213
213
  #
214
214
  # @param subscription_id [String] Subscription Id
215
215
  #
@@ -223,6 +223,10 @@ module Dodopayments
223
223
  #
224
224
  # @param addons [Array<Dodopayments::Models::AttachAddon>, nil] Addons for the new plan.
225
225
  #
226
+ # @param cancel_scheduled_change_plan [Boolean] Replace a scheduled plan change with this one.
227
+ #
228
+ # @param collect_via_payment_link [Boolean] Collect the plan-change amount with a payment link. The customer then
229
+ #
226
230
  # @param discount_code [String, nil] DEPRECATED: Use discount_codes instead. Cannot be used together with discount_co
227
231
  #
228
232
  # @param discount_codes [Array<String>, nil] Stacked discount codes to apply to the new plan. Max 20.
@@ -235,7 +239,7 @@ module Dodopayments
235
239
  #
236
240
  # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
237
241
  #
238
- # @return [nil]
242
+ # @return [Dodopayments::Models::SubscriptionChangePlanResponse]
239
243
  #
240
244
  # @see Dodopayments::Models::SubscriptionChangePlanParams
241
245
  def change_plan(subscription_id, params)
@@ -244,7 +248,7 @@ module Dodopayments
244
248
  method: :post,
245
249
  path: ["subscriptions/%1$s/change-plan", subscription_id],
246
250
  body: parsed,
247
- model: NilClass,
251
+ model: Dodopayments::Models::SubscriptionChangePlanResponse,
248
252
  options: options
249
253
  )
250
254
  end
@@ -287,7 +291,7 @@ module Dodopayments
287
291
  # Some parameter documentations has been truncated, see
288
292
  # {Dodopayments::Models::SubscriptionPreviewChangePlanParams} for more details.
289
293
  #
290
- # @overload preview_change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, adaptive_currency_fees_inclusive: nil, addons: nil, discount_code: nil, discount_codes: nil, effective_at: nil, metadata: nil, on_payment_failure: nil, request_options: {})
294
+ # @overload preview_change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, adaptive_currency_fees_inclusive: nil, addons: nil, cancel_scheduled_change_plan: nil, collect_via_payment_link: nil, discount_code: nil, discount_codes: nil, effective_at: nil, metadata: nil, on_payment_failure: nil, request_options: {})
291
295
  #
292
296
  # @param subscription_id [String] Subscription Id
293
297
  #
@@ -301,6 +305,10 @@ module Dodopayments
301
305
  #
302
306
  # @param addons [Array<Dodopayments::Models::AttachAddon>, nil] Addons for the new plan.
303
307
  #
308
+ # @param cancel_scheduled_change_plan [Boolean] Replace a scheduled plan change with this one.
309
+ #
310
+ # @param collect_via_payment_link [Boolean] Collect the plan-change amount with a payment link. The customer then
311
+ #
304
312
  # @param discount_code [String, nil] DEPRECATED: Use discount_codes instead. Cannot be used together with discount_co
305
313
  #
306
314
  # @param discount_codes [Array<String>, nil] Stacked discount codes to apply to the new plan. Max 20.
@@ -170,7 +170,7 @@ module Dodopayments
170
170
 
171
171
  # @param payload [String] The raw webhook payload as a string
172
172
  #
173
- # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
173
+ # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPastDueWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
174
174
  def unsafe_unwrap(payload)
175
175
  parsed = JSON.parse(payload, symbolize_names: true)
176
176
  Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnsafeUnwrapWebhookEvent, parsed)
@@ -182,7 +182,7 @@ module Dodopayments
182
182
  #
183
183
  # @param key [String, nil] The webhook signing key
184
184
  #
185
- # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
185
+ # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPastDueWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
186
186
  def unwrap(payload, headers:, key: @client.webhook_key)
187
187
  if key.nil?
188
188
  raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_key or passed in as an argument")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dodopayments
4
- VERSION = "2.25.0"
4
+ VERSION = "2.27.0"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -55,15 +55,19 @@ require_relative "dodopayments/internal/transport/pooled_net_requester"
55
55
  require_relative "dodopayments/client"
56
56
  require_relative "dodopayments/internal/cursor_page_pagination"
57
57
  require_relative "dodopayments/internal/default_page_number_pagination"
58
+ require_relative "dodopayments/models/blocklist/block_by_email"
59
+ require_relative "dodopayments/models/blocklist/block_by_customer_id"
60
+ require_relative "dodopayments/models/blocklist/create_blocked_customer_request"
61
+ require_relative "dodopayments/models/blocklist/customers/note_request"
58
62
  require_relative "dodopayments/models/checkout_session_request"
59
63
  require_relative "dodopayments/models/product_collections/product_collection_group_details"
64
+ require_relative "dodopayments/models/subscription"
60
65
  require_relative "dodopayments/models/update_subscription_plan_req"
61
66
  require_relative "dodopayments/models/entitlements/entitlement_grant"
62
67
  require_relative "dodopayments/models/credit_entitlements/credit_ledger_entry"
63
68
  require_relative "dodopayments/models/license_key"
64
69
  require_relative "dodopayments/models/get_dispute"
65
70
  require_relative "dodopayments/models/refund"
66
- require_relative "dodopayments/models/subscription"
67
71
  require_relative "dodopayments/models/payment"
68
72
  require_relative "dodopayments/models/abandoned_checkout_detected_webhook_event"
69
73
  require_relative "dodopayments/models/abandoned_checkout_recovered_webhook_event"
@@ -83,6 +87,16 @@ require_relative "dodopayments/models/attach_product_entitlement"
83
87
  require_relative "dodopayments/models/balance_ledger_entry"
84
88
  require_relative "dodopayments/models/balance_retrieve_ledger_params"
85
89
  require_relative "dodopayments/models/billing_address"
90
+ require_relative "dodopayments/models/blocklist/blocked_customer"
91
+ require_relative "dodopayments/models/blocklist/blocked_customer_source"
92
+ require_relative "dodopayments/models/blocklist/block_identifier"
93
+ require_relative "dodopayments/models/blocklist/customer_create_params"
94
+ require_relative "dodopayments/models/blocklist/customer_delete_params"
95
+ require_relative "dodopayments/models/blocklist/customer_list_params"
96
+ require_relative "dodopayments/models/blocklist/customer_retrieve_params"
97
+ require_relative "dodopayments/models/blocklist/customers/blocked_customer_note"
98
+ require_relative "dodopayments/models/blocklist/customers/note_create_params"
99
+ require_relative "dodopayments/models/blocklist/customers/note_update_params"
86
100
  require_relative "dodopayments/models/brand"
87
101
  require_relative "dodopayments/models/brand_archive_params"
88
102
  require_relative "dodopayments/models/brand_archive_response"
@@ -234,6 +248,8 @@ require_relative "dodopayments/models/license_key_status"
234
248
  require_relative "dodopayments/models/license_key_update_params"
235
249
  require_relative "dodopayments/models/license_validate_params"
236
250
  require_relative "dodopayments/models/license_validate_response"
251
+ require_relative "dodopayments/models/manual_retry"
252
+ require_relative "dodopayments/models/manual_retry_state"
237
253
  require_relative "dodopayments/models/metadata"
238
254
  require_relative "dodopayments/models/meter"
239
255
  require_relative "dodopayments/models/meter_aggregation"
@@ -262,6 +278,8 @@ require_relative "dodopayments/models/payment_refund_status"
262
278
  require_relative "dodopayments/models/payment_retrieve_line_items_params"
263
279
  require_relative "dodopayments/models/payment_retrieve_line_items_response"
264
280
  require_relative "dodopayments/models/payment_retrieve_params"
281
+ require_relative "dodopayments/models/payment_retrieve_retry_state_params"
282
+ require_relative "dodopayments/models/payment_retry_params"
265
283
  require_relative "dodopayments/models/payment_succeeded_webhook_event"
266
284
  require_relative "dodopayments/models/payout_created_webhook_event"
267
285
  require_relative "dodopayments/models/payout_failed_webhook_event"
@@ -335,6 +353,7 @@ require_relative "dodopayments/models/subscription_active_webhook_event"
335
353
  require_relative "dodopayments/models/subscription_cancel_change_plan_params"
336
354
  require_relative "dodopayments/models/subscription_cancelled_webhook_event"
337
355
  require_relative "dodopayments/models/subscription_change_plan_params"
356
+ require_relative "dodopayments/models/subscription_change_plan_response"
338
357
  require_relative "dodopayments/models/subscription_charge_params"
339
358
  require_relative "dodopayments/models/subscription_charge_response"
340
359
  require_relative "dodopayments/models/subscription_create_params"
@@ -345,6 +364,7 @@ require_relative "dodopayments/models/subscription_failed_webhook_event"
345
364
  require_relative "dodopayments/models/subscription_list_params"
346
365
  require_relative "dodopayments/models/subscription_list_response"
347
366
  require_relative "dodopayments/models/subscription_on_hold_webhook_event"
367
+ require_relative "dodopayments/models/subscription_past_due_webhook_event"
348
368
  require_relative "dodopayments/models/subscription_paused_webhook_event"
349
369
  require_relative "dodopayments/models/subscription_plan_changed_webhook_event"
350
370
  require_relative "dodopayments/models/subscription_preview_change_plan_params"
@@ -390,6 +410,9 @@ require_relative "dodopayments/models/webhook_update_params"
390
410
  require_relative "dodopayments/models"
391
411
  require_relative "dodopayments/resources/addons"
392
412
  require_relative "dodopayments/resources/balances"
413
+ require_relative "dodopayments/resources/blocklist"
414
+ require_relative "dodopayments/resources/blocklist/customers"
415
+ require_relative "dodopayments/resources/blocklist/customers/notes"
393
416
  require_relative "dodopayments/resources/brands"
394
417
  require_relative "dodopayments/resources/checkout_sessions"
395
418
  require_relative "dodopayments/resources/credit_entitlements"
@@ -50,6 +50,9 @@ module Dodopayments
50
50
  sig { returns(Dodopayments::Resources::Customers) }
51
51
  attr_reader :customers
52
52
 
53
+ sig { returns(Dodopayments::Resources::Blocklist) }
54
+ attr_reader :blocklist
55
+
53
56
  sig { returns(Dodopayments::Resources::Refunds) }
54
57
  attr_reader :refunds
55
58
 
@@ -44,6 +44,9 @@ module Dodopayments
44
44
  sig { returns(T.nilable(String)) }
45
45
  attr_accessor :description
46
46
 
47
+ sig { returns(T.nilable(String)) }
48
+ attr_accessor :payout_id
49
+
47
50
  sig { returns(T.nilable(String)) }
48
51
  attr_accessor :reference_object_id
49
52
 
@@ -60,6 +63,7 @@ module Dodopayments
60
63
  after_balance: T.nilable(Integer),
61
64
  before_balance: T.nilable(Integer),
62
65
  description: T.nilable(String),
66
+ payout_id: T.nilable(String),
63
67
  reference_object_id: T.nilable(String)
64
68
  ).returns(T.attached_class)
65
69
  end
@@ -75,6 +79,7 @@ module Dodopayments
75
79
  after_balance: nil,
76
80
  before_balance: nil,
77
81
  description: nil,
82
+ payout_id: nil,
78
83
  reference_object_id: nil
79
84
  )
80
85
  end
@@ -94,6 +99,7 @@ module Dodopayments
94
99
  after_balance: T.nilable(Integer),
95
100
  before_balance: T.nilable(Integer),
96
101
  description: T.nilable(String),
102
+ payout_id: T.nilable(String),
97
103
  reference_object_id: T.nilable(String)
98
104
  }
99
105
  )
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Blocklist
6
+ class BlockByCustomerID < Dodopayments::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Dodopayments::Blocklist::BlockByCustomerID,
11
+ Dodopayments::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Customer to block. The block still applies to that customer's email.
16
+ sig { returns(String) }
17
+ attr_accessor :customer_id
18
+
19
+ sig { params(customer_id: String).returns(T.attached_class) }
20
+ def self.new(
21
+ # Customer to block. The block still applies to that customer's email.
22
+ customer_id:
23
+ )
24
+ end
25
+
26
+ sig { override.returns({ customer_id: String }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Blocklist
6
+ class BlockByEmail < Dodopayments::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Dodopayments::Blocklist::BlockByEmail,
11
+ Dodopayments::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Email to block. It must belong to an existing customer of this business.
16
+ sig { returns(String) }
17
+ attr_accessor :email
18
+
19
+ sig { params(email: String).returns(T.attached_class) }
20
+ def self.new(
21
+ # Email to block. It must belong to an existing customer of this business.
22
+ email:
23
+ )
24
+ end
25
+
26
+ sig { override.returns({ email: String }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,30 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Blocklist
6
+ # Which customer to block. Untagged, so the caller sends `customer_id` or `email`
7
+ # at the top level, as `CustomerRequest` does on the payment routes. A body that
8
+ # carries both matches the first variant, so `customer_id` wins.
9
+ module BlockIdentifier
10
+ extend Dodopayments::Internal::Type::Union
11
+
12
+ Variants =
13
+ T.type_alias do
14
+ T.any(
15
+ Dodopayments::Blocklist::BlockByCustomerID,
16
+ Dodopayments::Blocklist::BlockByEmail
17
+ )
18
+ end
19
+
20
+ sig do
21
+ override.returns(
22
+ T::Array[Dodopayments::Blocklist::BlockIdentifier::Variants]
23
+ )
24
+ end
25
+ def self.variants
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end