dodopayments 2.26.0 → 2.28.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 (205) 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/internal/type/union.rb +15 -5
  6. data/lib/dodopayments/models/balance_ledger_entry.rb +9 -1
  7. data/lib/dodopayments/models/balance_retrieve_ledger_params.rb +2 -0
  8. data/lib/dodopayments/models/blocklist/block_by_customer_id.rb +18 -0
  9. data/lib/dodopayments/models/blocklist/block_by_email.rb +18 -0
  10. data/lib/dodopayments/models/blocklist/block_identifier.rb +21 -0
  11. data/lib/dodopayments/models/blocklist/blocked_customer.rb +128 -0
  12. data/lib/dodopayments/models/blocklist/blocked_customer_source.rb +22 -0
  13. data/lib/dodopayments/models/blocklist/create_blocked_customer_request.rb +66 -0
  14. data/lib/dodopayments/models/blocklist/customer_create_params.rb +16 -0
  15. data/lib/dodopayments/models/blocklist/customer_delete_params.rb +22 -0
  16. data/lib/dodopayments/models/blocklist/customer_list_params.rb +64 -0
  17. data/lib/dodopayments/models/blocklist/customer_retrieve_params.rb +22 -0
  18. data/lib/dodopayments/models/blocklist/customers/blocked_customer_note.rb +44 -0
  19. data/lib/dodopayments/models/blocklist/customers/note_create_params.rb +24 -0
  20. data/lib/dodopayments/models/blocklist/customers/note_request.rb +19 -0
  21. data/lib/dodopayments/models/blocklist/customers/note_update_params.rb +30 -0
  22. data/lib/dodopayments/models/checkout_session_preview_response.rb +10 -1
  23. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rb +1 -1
  24. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rb +21 -1
  25. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +2 -7
  26. data/lib/dodopayments/models/customer.rb +22 -1
  27. data/lib/dodopayments/models/customers/email_body.rb +57 -0
  28. data/lib/dodopayments/models/customers/email_failure_code.rb +27 -0
  29. data/lib/dodopayments/models/customers/email_list_params.rb +39 -0
  30. data/lib/dodopayments/models/customers/email_log_item.rb +121 -0
  31. data/lib/dodopayments/models/customers/email_log_status.rb +24 -0
  32. data/lib/dodopayments/models/customers/email_policies.rb +45 -0
  33. data/lib/dodopayments/models/customers/email_retrieve_body_params.rb +28 -0
  34. data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +1 -0
  35. data/lib/dodopayments/models/dunning_started_webhook_event.rb +1 -0
  36. data/lib/dodopayments/models/manual_retry.rb +76 -0
  37. data/lib/dodopayments/models/manual_retry_state.rb +50 -0
  38. data/lib/dodopayments/models/payment_retrieve_retry_state_params.rb +20 -0
  39. data/lib/dodopayments/models/payment_retry_params.rb +20 -0
  40. data/lib/dodopayments/models/price.rb +95 -27
  41. data/lib/dodopayments/models/subscription.rb +10 -1
  42. data/lib/dodopayments/models/subscription_active_webhook_event.rb +32 -4
  43. data/lib/dodopayments/models/subscription_cancelled_webhook_event.rb +33 -4
  44. data/lib/dodopayments/models/subscription_create_response.rb +10 -1
  45. data/lib/dodopayments/models/subscription_expired_webhook_event.rb +32 -4
  46. data/lib/dodopayments/models/subscription_failed_webhook_event.rb +32 -4
  47. data/lib/dodopayments/models/subscription_list_params.rb +1 -0
  48. data/lib/dodopayments/models/subscription_list_response.rb +10 -1
  49. data/lib/dodopayments/models/subscription_on_hold_webhook_event.rb +32 -4
  50. data/lib/dodopayments/models/subscription_past_due_webhook_event.rb +68 -0
  51. data/lib/dodopayments/models/subscription_paused_webhook_event.rb +32 -4
  52. data/lib/dodopayments/models/subscription_plan_changed_webhook_event.rb +33 -4
  53. data/lib/dodopayments/models/subscription_renewed_webhook_event.rb +32 -4
  54. data/lib/dodopayments/models/subscription_status.rb +1 -0
  55. data/lib/dodopayments/models/subscription_unpaused_webhook_event.rb +32 -4
  56. data/lib/dodopayments/models/subscription_update_params.rb +1 -0
  57. data/lib/dodopayments/models/subscription_update_payment_method_webhook_event.rb +34 -4
  58. data/lib/dodopayments/models/subscription_updated_webhook_event.rb +32 -4
  59. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +3 -1
  60. data/lib/dodopayments/models/unwrap_webhook_event.rb +3 -1
  61. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  62. data/lib/dodopayments/models/webhook_payload.rb +19 -1
  63. data/lib/dodopayments/models.rb +12 -0
  64. data/lib/dodopayments/resources/blocklist/customers/notes.rb +68 -0
  65. data/lib/dodopayments/resources/blocklist/customers.rb +107 -0
  66. data/lib/dodopayments/resources/blocklist.rb +18 -0
  67. data/lib/dodopayments/resources/credit_entitlements/balances.rb +1 -0
  68. data/lib/dodopayments/resources/customers/emails.rb +76 -0
  69. data/lib/dodopayments/resources/customers.rb +4 -0
  70. data/lib/dodopayments/resources/payments.rb +36 -0
  71. data/lib/dodopayments/resources/webhooks.rb +2 -2
  72. data/lib/dodopayments/version.rb +1 -1
  73. data/lib/dodopayments.rb +31 -1
  74. data/rbi/dodopayments/client.rbi +3 -0
  75. data/rbi/dodopayments/models/balance_ledger_entry.rbi +16 -0
  76. data/rbi/dodopayments/models/balance_retrieve_ledger_params.rbi +10 -0
  77. data/rbi/dodopayments/models/blocklist/block_by_customer_id.rbi +32 -0
  78. data/rbi/dodopayments/models/blocklist/block_by_email.rbi +32 -0
  79. data/rbi/dodopayments/models/blocklist/block_identifier.rbi +30 -0
  80. data/rbi/dodopayments/models/blocklist/blocked_customer.rbi +161 -0
  81. data/rbi/dodopayments/models/blocklist/blocked_customer_source.rbi +55 -0
  82. data/rbi/dodopayments/models/blocklist/create_blocked_customer_request.rbi +143 -0
  83. data/rbi/dodopayments/models/blocklist/customer_create_params.rbi +34 -0
  84. data/rbi/dodopayments/models/blocklist/customer_delete_params.rbi +40 -0
  85. data/rbi/dodopayments/models/blocklist/customer_list_params.rbi +88 -0
  86. data/rbi/dodopayments/models/blocklist/customer_retrieve_params.rbi +40 -0
  87. data/rbi/dodopayments/models/blocklist/customers/blocked_customer_note.rbi +66 -0
  88. data/rbi/dodopayments/models/blocklist/customers/note_create_params.rbi +45 -0
  89. data/rbi/dodopayments/models/blocklist/customers/note_request.rbi +30 -0
  90. data/rbi/dodopayments/models/blocklist/customers/note_update_params.rbi +50 -0
  91. data/rbi/dodopayments/models/checkout_session_preview_response.rbi +10 -0
  92. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbi +2 -2
  93. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rbi +8 -0
  94. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +2 -6
  95. data/rbi/dodopayments/models/customer.rbi +20 -0
  96. data/rbi/dodopayments/models/customers/email_body.rbi +88 -0
  97. data/rbi/dodopayments/models/customers/email_failure_code.rbi +70 -0
  98. data/rbi/dodopayments/models/customers/email_list_params.rbi +68 -0
  99. data/rbi/dodopayments/models/customers/email_log_item.rbi +157 -0
  100. data/rbi/dodopayments/models/customers/email_log_status.rbi +46 -0
  101. data/rbi/dodopayments/models/customers/email_policies.rbi +68 -0
  102. data/rbi/dodopayments/models/customers/email_retrieve_body_params.rbi +48 -0
  103. data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +5 -0
  104. data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +5 -0
  105. data/rbi/dodopayments/models/manual_retry.rbi +93 -0
  106. data/rbi/dodopayments/models/manual_retry_state.rbi +65 -0
  107. data/rbi/dodopayments/models/payment_retrieve_retry_state_params.rbi +38 -0
  108. data/rbi/dodopayments/models/payment_retry_params.rbi +38 -0
  109. data/rbi/dodopayments/models/price.rbi +124 -25
  110. data/rbi/dodopayments/models/subscription.rbi +10 -0
  111. data/rbi/dodopayments/models/subscription_active_webhook_event.rbi +53 -6
  112. data/rbi/dodopayments/models/subscription_cancelled_webhook_event.rbi +53 -6
  113. data/rbi/dodopayments/models/subscription_create_response.rbi +10 -0
  114. data/rbi/dodopayments/models/subscription_expired_webhook_event.rbi +53 -6
  115. data/rbi/dodopayments/models/subscription_failed_webhook_event.rbi +53 -6
  116. data/rbi/dodopayments/models/subscription_list_params.rbi +5 -0
  117. data/rbi/dodopayments/models/subscription_list_response.rbi +10 -0
  118. data/rbi/dodopayments/models/subscription_on_hold_webhook_event.rbi +53 -6
  119. data/rbi/dodopayments/models/subscription_past_due_webhook_event.rbi +114 -0
  120. data/rbi/dodopayments/models/subscription_paused_webhook_event.rbi +53 -6
  121. data/rbi/dodopayments/models/subscription_plan_changed_webhook_event.rbi +53 -6
  122. data/rbi/dodopayments/models/subscription_renewed_webhook_event.rbi +53 -6
  123. data/rbi/dodopayments/models/subscription_status.rbi +2 -0
  124. data/rbi/dodopayments/models/subscription_unpaused_webhook_event.rbi +53 -6
  125. data/rbi/dodopayments/models/subscription_update_params.rbi +5 -0
  126. data/rbi/dodopayments/models/subscription_update_payment_method_webhook_event.rbi +58 -6
  127. data/rbi/dodopayments/models/subscription_updated_webhook_event.rbi +53 -6
  128. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +1 -0
  129. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +1 -0
  130. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  131. data/rbi/dodopayments/models/webhook_payload.rbi +37 -3
  132. data/rbi/dodopayments/models.rbi +14 -0
  133. data/rbi/dodopayments/resources/blocklist/customers/notes.rbi +50 -0
  134. data/rbi/dodopayments/resources/blocklist/customers.rbi +88 -0
  135. data/rbi/dodopayments/resources/blocklist.rbi +15 -0
  136. data/rbi/dodopayments/resources/credit_entitlements/balances.rbi +2 -1
  137. data/rbi/dodopayments/resources/customers/emails.rbi +60 -0
  138. data/rbi/dodopayments/resources/customers.rbi +3 -0
  139. data/rbi/dodopayments/resources/payments.rbi +26 -0
  140. data/rbi/dodopayments/resources/webhooks.rbi +2 -0
  141. data/sig/dodopayments/client.rbs +2 -0
  142. data/sig/dodopayments/models/balance_ledger_entry.rbs +9 -0
  143. data/sig/dodopayments/models/balance_retrieve_ledger_params.rbs +4 -0
  144. data/sig/dodopayments/models/blocklist/block_by_customer_id.rbs +15 -0
  145. data/sig/dodopayments/models/blocklist/block_by_email.rbs +15 -0
  146. data/sig/dodopayments/models/blocklist/block_identifier.rbs +15 -0
  147. data/sig/dodopayments/models/blocklist/blocked_customer.rbs +87 -0
  148. data/sig/dodopayments/models/blocklist/blocked_customer_source.rbs +20 -0
  149. data/sig/dodopayments/models/blocklist/create_blocked_customer_request.rbs +71 -0
  150. data/sig/dodopayments/models/blocklist/customer_create_params.rbs +17 -0
  151. data/sig/dodopayments/models/blocklist/customer_delete_params.rbs +25 -0
  152. data/sig/dodopayments/models/blocklist/customer_list_params.rbs +53 -0
  153. data/sig/dodopayments/models/blocklist/customer_retrieve_params.rbs +25 -0
  154. data/sig/dodopayments/models/blocklist/customers/blocked_customer_note.rbs +44 -0
  155. data/sig/dodopayments/models/blocklist/customers/note_create_params.rbs +30 -0
  156. data/sig/dodopayments/models/blocklist/customers/note_request.rbs +17 -0
  157. data/sig/dodopayments/models/blocklist/customers/note_update_params.rbs +36 -0
  158. data/sig/dodopayments/models/checkout_session_preview_response.rbs +5 -0
  159. data/sig/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rbs +5 -0
  160. data/sig/dodopayments/models/customer.rbs +10 -0
  161. data/sig/dodopayments/models/customers/email_body.rbs +42 -0
  162. data/sig/dodopayments/models/customers/email_failure_code.rbs +30 -0
  163. data/sig/dodopayments/models/customers/email_list_params.rbs +38 -0
  164. data/sig/dodopayments/models/customers/email_log_item.rbs +82 -0
  165. data/sig/dodopayments/models/customers/email_log_status.rbs +20 -0
  166. data/sig/dodopayments/models/customers/email_policies.rbs +37 -0
  167. data/sig/dodopayments/models/customers/email_retrieve_body_params.rbs +30 -0
  168. data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +2 -1
  169. data/sig/dodopayments/models/dunning_started_webhook_event.rbs +2 -1
  170. data/sig/dodopayments/models/manual_retry.rbs +55 -0
  171. data/sig/dodopayments/models/manual_retry_state.rbs +40 -0
  172. data/sig/dodopayments/models/payment_retrieve_retry_state_params.rbs +23 -0
  173. data/sig/dodopayments/models/payment_retry_params.rbs +23 -0
  174. data/sig/dodopayments/models/price.rbs +52 -17
  175. data/sig/dodopayments/models/subscription.rbs +5 -0
  176. data/sig/dodopayments/models/subscription_active_webhook_event.rbs +16 -4
  177. data/sig/dodopayments/models/subscription_cancelled_webhook_event.rbs +16 -4
  178. data/sig/dodopayments/models/subscription_create_response.rbs +5 -0
  179. data/sig/dodopayments/models/subscription_expired_webhook_event.rbs +16 -4
  180. data/sig/dodopayments/models/subscription_failed_webhook_event.rbs +16 -4
  181. data/sig/dodopayments/models/subscription_list_params.rbs +2 -0
  182. data/sig/dodopayments/models/subscription_list_response.rbs +5 -0
  183. data/sig/dodopayments/models/subscription_on_hold_webhook_event.rbs +16 -4
  184. data/sig/dodopayments/models/subscription_past_due_webhook_event.rbs +47 -0
  185. data/sig/dodopayments/models/subscription_paused_webhook_event.rbs +16 -4
  186. data/sig/dodopayments/models/subscription_plan_changed_webhook_event.rbs +16 -4
  187. data/sig/dodopayments/models/subscription_renewed_webhook_event.rbs +16 -4
  188. data/sig/dodopayments/models/subscription_status.rbs +9 -1
  189. data/sig/dodopayments/models/subscription_unpaused_webhook_event.rbs +16 -4
  190. data/sig/dodopayments/models/subscription_update_params.rbs +2 -0
  191. data/sig/dodopayments/models/subscription_update_payment_method_webhook_event.rbs +16 -4
  192. data/sig/dodopayments/models/subscription_updated_webhook_event.rbs +16 -4
  193. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +1 -0
  194. data/sig/dodopayments/models/unwrap_webhook_event.rbs +1 -0
  195. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  196. data/sig/dodopayments/models/webhook_payload.rbs +16 -4
  197. data/sig/dodopayments/models.rbs +12 -0
  198. data/sig/dodopayments/resources/blocklist/customers/notes.rbs +24 -0
  199. data/sig/dodopayments/resources/blocklist/customers.rbs +36 -0
  200. data/sig/dodopayments/resources/blocklist.rbs +9 -0
  201. data/sig/dodopayments/resources/customers/emails.rbs +22 -0
  202. data/sig/dodopayments/resources/customers.rbs +2 -0
  203. data/sig/dodopayments/resources/payments.rbs +10 -0
  204. data/sig/dodopayments/resources/webhooks.rbs +2 -0
  205. metadata +92 -2
@@ -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
@@ -121,6 +121,7 @@ module Dodopayments
121
121
  # - `reason` - Optional human-readable reason
122
122
  # - `expires_at` - Optional expiration for credited amount (only for credit type)
123
123
  # - `idempotency_key` - Optional key to prevent duplicate entries
124
+ # - `metadata` - Optional key-value pairs
124
125
  #
125
126
  # # Responses
126
127
  #
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Resources
5
+ class Customers
6
+ class Emails
7
+ # Returns every transactional email sent to this customer in the last 180 days,
8
+ # newest first, with its delivery outcome. Delivery status comes from the email
9
+ # provider and is as fresh as replication, typically seconds.
10
+ #
11
+ # @overload list(customer_id, page_number: nil, page_size: nil, request_options: {})
12
+ #
13
+ # @param customer_id [String] The customer's id
14
+ #
15
+ # @param page_number [Integer] Which page to return. The default is 0.
16
+ #
17
+ # @param page_size [Integer] How many emails to return. The default is 10 and the maximum is 100.
18
+ #
19
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
20
+ #
21
+ # @return [Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Customers::EmailLogItem>]
22
+ #
23
+ # @see Dodopayments::Models::Customers::EmailListParams
24
+ def list(customer_id, params = {})
25
+ parsed, options = Dodopayments::Customers::EmailListParams.dump_request(params)
26
+ query = Dodopayments::Internal::Util.encode_query_params(parsed)
27
+ @client.request(
28
+ method: :get,
29
+ path: ["customers/%1$s/emails", customer_id],
30
+ query: query,
31
+ page: Dodopayments::Internal::DefaultPageNumberPagination,
32
+ model: Dodopayments::Customers::EmailLogItem,
33
+ options: options
34
+ )
35
+ end
36
+
37
+ # Returns the email exactly as it was sent, plus the reason it failed when it did.
38
+ # Some emails have no body to show: an authentication email carries a live login
39
+ # token, a blocked email never reached the provider, and the provider clears
40
+ # bodies at 180 days.
41
+ #
42
+ # @overload retrieve_body(email_log_id, customer_id:, request_options: {})
43
+ #
44
+ # @param email_log_id [String] The email log entry's id
45
+ #
46
+ # @param customer_id [String] The customer's id
47
+ #
48
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
49
+ #
50
+ # @return [Dodopayments::Models::Customers::EmailBody]
51
+ #
52
+ # @see Dodopayments::Models::Customers::EmailRetrieveBodyParams
53
+ def retrieve_body(email_log_id, params)
54
+ parsed, options = Dodopayments::Customers::EmailRetrieveBodyParams.dump_request(params)
55
+ customer_id =
56
+ parsed.delete(:customer_id) do
57
+ raise ArgumentError.new("missing required path argument #{_1}")
58
+ end
59
+ @client.request(
60
+ method: :get,
61
+ path: ["customers/%1$s/emails/%2$s/body", customer_id, email_log_id],
62
+ model: Dodopayments::Customers::EmailBody,
63
+ options: options
64
+ )
65
+ end
66
+
67
+ # @api private
68
+ #
69
+ # @param client [Dodopayments::Client]
70
+ def initialize(client:)
71
+ @client = client
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -9,6 +9,9 @@ module Dodopayments
9
9
  # @return [Dodopayments::Resources::Customers::Wallets]
10
10
  attr_reader :wallets
11
11
 
12
+ # @return [Dodopayments::Resources::Customers::Emails]
13
+ attr_reader :emails
14
+
12
15
  # @overload create(email:, name:, metadata: nil, phone_number: nil, request_options: {})
13
16
  #
14
17
  # @param email [String]
@@ -236,6 +239,7 @@ module Dodopayments
236
239
  @client = client
237
240
  @customer_portal = Dodopayments::Resources::Customers::CustomerPortal.new(client: client)
238
241
  @wallets = Dodopayments::Resources::Customers::Wallets.new(client: client)
242
+ @emails = Dodopayments::Resources::Customers::Emails.new(client: client)
239
243
  end
240
244
  end
241
245
  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]
@@ -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.26.0"
4
+ VERSION = "2.28.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"
@@ -153,6 +167,13 @@ require_relative "dodopayments/models/customer_retrieve_payment_methods_params"
153
167
  require_relative "dodopayments/models/customer_retrieve_payment_methods_response"
154
168
  require_relative "dodopayments/models/customers/customer_portal_create_params"
155
169
  require_relative "dodopayments/models/customers/customer_wallet"
170
+ require_relative "dodopayments/models/customers/email_body"
171
+ require_relative "dodopayments/models/customers/email_failure_code"
172
+ require_relative "dodopayments/models/customers/email_list_params"
173
+ require_relative "dodopayments/models/customers/email_log_item"
174
+ require_relative "dodopayments/models/customers/email_log_status"
175
+ require_relative "dodopayments/models/customers/email_policies"
176
+ require_relative "dodopayments/models/customers/email_retrieve_body_params"
156
177
  require_relative "dodopayments/models/customers/wallet_list_params"
157
178
  require_relative "dodopayments/models/customers/wallet_list_response"
158
179
  require_relative "dodopayments/models/customers/wallets/customer_wallet_transaction"
@@ -234,6 +255,8 @@ require_relative "dodopayments/models/license_key_status"
234
255
  require_relative "dodopayments/models/license_key_update_params"
235
256
  require_relative "dodopayments/models/license_validate_params"
236
257
  require_relative "dodopayments/models/license_validate_response"
258
+ require_relative "dodopayments/models/manual_retry"
259
+ require_relative "dodopayments/models/manual_retry_state"
237
260
  require_relative "dodopayments/models/metadata"
238
261
  require_relative "dodopayments/models/meter"
239
262
  require_relative "dodopayments/models/meter_aggregation"
@@ -262,6 +285,8 @@ require_relative "dodopayments/models/payment_refund_status"
262
285
  require_relative "dodopayments/models/payment_retrieve_line_items_params"
263
286
  require_relative "dodopayments/models/payment_retrieve_line_items_response"
264
287
  require_relative "dodopayments/models/payment_retrieve_params"
288
+ require_relative "dodopayments/models/payment_retrieve_retry_state_params"
289
+ require_relative "dodopayments/models/payment_retry_params"
265
290
  require_relative "dodopayments/models/payment_succeeded_webhook_event"
266
291
  require_relative "dodopayments/models/payout_created_webhook_event"
267
292
  require_relative "dodopayments/models/payout_failed_webhook_event"
@@ -346,6 +371,7 @@ require_relative "dodopayments/models/subscription_failed_webhook_event"
346
371
  require_relative "dodopayments/models/subscription_list_params"
347
372
  require_relative "dodopayments/models/subscription_list_response"
348
373
  require_relative "dodopayments/models/subscription_on_hold_webhook_event"
374
+ require_relative "dodopayments/models/subscription_past_due_webhook_event"
349
375
  require_relative "dodopayments/models/subscription_paused_webhook_event"
350
376
  require_relative "dodopayments/models/subscription_plan_changed_webhook_event"
351
377
  require_relative "dodopayments/models/subscription_preview_change_plan_params"
@@ -391,12 +417,16 @@ require_relative "dodopayments/models/webhook_update_params"
391
417
  require_relative "dodopayments/models"
392
418
  require_relative "dodopayments/resources/addons"
393
419
  require_relative "dodopayments/resources/balances"
420
+ require_relative "dodopayments/resources/blocklist"
421
+ require_relative "dodopayments/resources/blocklist/customers"
422
+ require_relative "dodopayments/resources/blocklist/customers/notes"
394
423
  require_relative "dodopayments/resources/brands"
395
424
  require_relative "dodopayments/resources/checkout_sessions"
396
425
  require_relative "dodopayments/resources/credit_entitlements"
397
426
  require_relative "dodopayments/resources/credit_entitlements/balances"
398
427
  require_relative "dodopayments/resources/customers"
399
428
  require_relative "dodopayments/resources/customers/customer_portal"
429
+ require_relative "dodopayments/resources/customers/emails"
400
430
  require_relative "dodopayments/resources/customers/wallets"
401
431
  require_relative "dodopayments/resources/customers/wallets/ledger_entries"
402
432
  require_relative "dodopayments/resources/discounts"
@@ -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
  )
@@ -217,6 +223,16 @@ module Dodopayments
217
223
  :byop_fee,
218
224
  Dodopayments::BalanceLedgerEntry::EventType::TaggedSymbol
219
225
  )
226
+ ETHOCA_FEES =
227
+ T.let(
228
+ :ethoca_fees,
229
+ Dodopayments::BalanceLedgerEntry::EventType::TaggedSymbol
230
+ )
231
+ ETHOCA_FEES_REVERSAL =
232
+ T.let(
233
+ :ethoca_fees_reversal,
234
+ Dodopayments::BalanceLedgerEntry::EventType::TaggedSymbol
235
+ )
220
236
 
221
237
  sig do
222
238
  override.returns(
@@ -1015,6 +1015,16 @@ module Dodopayments
1015
1015
  :byop_fee,
1016
1016
  Dodopayments::BalanceRetrieveLedgerParams::EventType::TaggedSymbol
1017
1017
  )
1018
+ ETHOCA_FEES =
1019
+ T.let(
1020
+ :ethoca_fees,
1021
+ Dodopayments::BalanceRetrieveLedgerParams::EventType::TaggedSymbol
1022
+ )
1023
+ ETHOCA_FEES_REVERSAL =
1024
+ T.let(
1025
+ :ethoca_fees_reversal,
1026
+ Dodopayments::BalanceRetrieveLedgerParams::EventType::TaggedSymbol
1027
+ )
1018
1028
 
1019
1029
  sig do
1020
1030
  override.returns(
@@ -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