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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/dodopayments/client.rb +4 -0
- data/lib/dodopayments/models/balance_ledger_entry.rb +7 -1
- data/lib/dodopayments/models/blocklist/block_by_customer_id.rb +18 -0
- data/lib/dodopayments/models/blocklist/block_by_email.rb +18 -0
- data/lib/dodopayments/models/blocklist/block_identifier.rb +21 -0
- data/lib/dodopayments/models/blocklist/blocked_customer.rb +128 -0
- data/lib/dodopayments/models/blocklist/blocked_customer_source.rb +22 -0
- data/lib/dodopayments/models/blocklist/create_blocked_customer_request.rb +66 -0
- data/lib/dodopayments/models/blocklist/customer_create_params.rb +16 -0
- data/lib/dodopayments/models/blocklist/customer_delete_params.rb +22 -0
- data/lib/dodopayments/models/blocklist/customer_list_params.rb +64 -0
- data/lib/dodopayments/models/blocklist/customer_retrieve_params.rb +22 -0
- data/lib/dodopayments/models/blocklist/customers/blocked_customer_note.rb +44 -0
- data/lib/dodopayments/models/blocklist/customers/note_create_params.rb +24 -0
- data/lib/dodopayments/models/blocklist/customers/note_request.rb +19 -0
- data/lib/dodopayments/models/blocklist/customers/note_update_params.rb +30 -0
- data/lib/dodopayments/models/customer.rb +22 -1
- data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +1 -0
- data/lib/dodopayments/models/dunning_started_webhook_event.rb +1 -0
- data/lib/dodopayments/models/entitlements/license_key_grant.rb +24 -3
- data/lib/dodopayments/models/manual_retry.rb +76 -0
- data/lib/dodopayments/models/manual_retry_state.rb +50 -0
- data/lib/dodopayments/models/payment_retrieve_retry_state_params.rb +20 -0
- data/lib/dodopayments/models/payment_retry_params.rb +20 -0
- data/lib/dodopayments/models/price.rb +34 -30
- data/lib/dodopayments/models/subscription_active_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_cancelled_webhook_event.rb +33 -4
- data/lib/dodopayments/models/subscription_change_plan_response.rb +47 -0
- data/lib/dodopayments/models/subscription_expired_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_failed_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_list_params.rb +1 -0
- data/lib/dodopayments/models/subscription_on_hold_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_past_due_webhook_event.rb +68 -0
- data/lib/dodopayments/models/subscription_paused_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_plan_changed_webhook_event.rb +33 -4
- data/lib/dodopayments/models/subscription_renewed_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_status.rb +1 -0
- data/lib/dodopayments/models/subscription_unpaused_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_update_params.rb +17 -4
- data/lib/dodopayments/models/subscription_update_payment_method_webhook_event.rb +34 -4
- data/lib/dodopayments/models/subscription_updated_webhook_event.rb +32 -4
- data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +3 -1
- data/lib/dodopayments/models/unwrap_webhook_event.rb +3 -1
- data/lib/dodopayments/models/update_subscription_plan_req.rb +35 -1
- data/lib/dodopayments/models/webhook_event_type.rb +1 -0
- data/lib/dodopayments/models/webhook_payload.rb +19 -1
- data/lib/dodopayments/models.rb +12 -0
- data/lib/dodopayments/resources/blocklist/customers/notes.rb +68 -0
- data/lib/dodopayments/resources/blocklist/customers.rb +107 -0
- data/lib/dodopayments/resources/blocklist.rb +18 -0
- data/lib/dodopayments/resources/payments.rb +36 -0
- data/lib/dodopayments/resources/subscriptions.rb +14 -6
- data/lib/dodopayments/resources/webhooks.rb +2 -2
- data/lib/dodopayments/version.rb +1 -1
- data/lib/dodopayments.rb +24 -1
- data/rbi/dodopayments/client.rbi +3 -0
- data/rbi/dodopayments/models/balance_ledger_entry.rbi +6 -0
- data/rbi/dodopayments/models/blocklist/block_by_customer_id.rbi +32 -0
- data/rbi/dodopayments/models/blocklist/block_by_email.rbi +32 -0
- data/rbi/dodopayments/models/blocklist/block_identifier.rbi +30 -0
- data/rbi/dodopayments/models/blocklist/blocked_customer.rbi +161 -0
- data/rbi/dodopayments/models/blocklist/blocked_customer_source.rbi +55 -0
- data/rbi/dodopayments/models/blocklist/create_blocked_customer_request.rbi +143 -0
- data/rbi/dodopayments/models/blocklist/customer_create_params.rbi +34 -0
- data/rbi/dodopayments/models/blocklist/customer_delete_params.rbi +40 -0
- data/rbi/dodopayments/models/blocklist/customer_list_params.rbi +88 -0
- data/rbi/dodopayments/models/blocklist/customer_retrieve_params.rbi +40 -0
- data/rbi/dodopayments/models/blocklist/customers/blocked_customer_note.rbi +66 -0
- data/rbi/dodopayments/models/blocklist/customers/note_create_params.rbi +45 -0
- data/rbi/dodopayments/models/blocklist/customers/note_request.rbi +30 -0
- data/rbi/dodopayments/models/blocklist/customers/note_update_params.rbi +50 -0
- data/rbi/dodopayments/models/customer.rbi +20 -0
- data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +5 -0
- data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +5 -0
- data/rbi/dodopayments/models/entitlements/license_key_grant.rbi +22 -2
- data/rbi/dodopayments/models/manual_retry.rbi +93 -0
- data/rbi/dodopayments/models/manual_retry_state.rbi +65 -0
- data/rbi/dodopayments/models/payment_retrieve_retry_state_params.rbi +38 -0
- data/rbi/dodopayments/models/payment_retry_params.rbi +38 -0
- data/rbi/dodopayments/models/price.rbi +47 -30
- data/rbi/dodopayments/models/subscription_active_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_cancelled_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_change_plan_response.rbi +69 -0
- data/rbi/dodopayments/models/subscription_expired_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_failed_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_list_params.rbi +5 -0
- data/rbi/dodopayments/models/subscription_on_hold_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_past_due_webhook_event.rbi +114 -0
- data/rbi/dodopayments/models/subscription_paused_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_plan_changed_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_renewed_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_status.rbi +2 -0
- data/rbi/dodopayments/models/subscription_unpaused_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_update_params.rbi +33 -4
- data/rbi/dodopayments/models/subscription_update_payment_method_webhook_event.rbi +58 -6
- data/rbi/dodopayments/models/subscription_updated_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +1 -0
- data/rbi/dodopayments/models/unwrap_webhook_event.rbi +1 -0
- data/rbi/dodopayments/models/update_subscription_plan_req.rbi +58 -0
- data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
- data/rbi/dodopayments/models/webhook_payload.rbi +37 -3
- data/rbi/dodopayments/models.rbi +14 -0
- data/rbi/dodopayments/resources/blocklist/customers/notes.rbi +50 -0
- data/rbi/dodopayments/resources/blocklist/customers.rbi +88 -0
- data/rbi/dodopayments/resources/blocklist.rbi +15 -0
- data/rbi/dodopayments/resources/payments.rbi +26 -0
- data/rbi/dodopayments/resources/subscriptions.rbi +63 -3
- data/rbi/dodopayments/resources/webhooks.rbi +2 -0
- data/sig/dodopayments/client.rbs +2 -0
- data/sig/dodopayments/models/balance_ledger_entry.rbs +5 -0
- data/sig/dodopayments/models/blocklist/block_by_customer_id.rbs +15 -0
- data/sig/dodopayments/models/blocklist/block_by_email.rbs +15 -0
- data/sig/dodopayments/models/blocklist/block_identifier.rbs +15 -0
- data/sig/dodopayments/models/blocklist/blocked_customer.rbs +87 -0
- data/sig/dodopayments/models/blocklist/blocked_customer_source.rbs +20 -0
- data/sig/dodopayments/models/blocklist/create_blocked_customer_request.rbs +71 -0
- data/sig/dodopayments/models/blocklist/customer_create_params.rbs +17 -0
- data/sig/dodopayments/models/blocklist/customer_delete_params.rbs +25 -0
- data/sig/dodopayments/models/blocklist/customer_list_params.rbs +53 -0
- data/sig/dodopayments/models/blocklist/customer_retrieve_params.rbs +25 -0
- data/sig/dodopayments/models/blocklist/customers/blocked_customer_note.rbs +44 -0
- data/sig/dodopayments/models/blocklist/customers/note_create_params.rbs +30 -0
- data/sig/dodopayments/models/blocklist/customers/note_request.rbs +17 -0
- data/sig/dodopayments/models/blocklist/customers/note_update_params.rbs +36 -0
- data/sig/dodopayments/models/customer.rbs +10 -0
- data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +2 -1
- data/sig/dodopayments/models/dunning_started_webhook_event.rbs +2 -1
- data/sig/dodopayments/models/entitlements/license_key_grant.rbs +10 -0
- data/sig/dodopayments/models/manual_retry.rbs +55 -0
- data/sig/dodopayments/models/manual_retry_state.rbs +40 -0
- data/sig/dodopayments/models/payment_retrieve_retry_state_params.rbs +23 -0
- data/sig/dodopayments/models/payment_retry_params.rbs +23 -0
- data/sig/dodopayments/models/price.rbs +21 -15
- data/sig/dodopayments/models/subscription_active_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_cancelled_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_change_plan_response.rbs +35 -0
- data/sig/dodopayments/models/subscription_expired_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_failed_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_list_params.rbs +2 -0
- data/sig/dodopayments/models/subscription_on_hold_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_past_due_webhook_event.rbs +47 -0
- data/sig/dodopayments/models/subscription_paused_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_plan_changed_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_renewed_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_status.rbs +9 -1
- data/sig/dodopayments/models/subscription_unpaused_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_update_params.rbs +2 -0
- data/sig/dodopayments/models/subscription_update_payment_method_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_updated_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +1 -0
- data/sig/dodopayments/models/unwrap_webhook_event.rbs +1 -0
- data/sig/dodopayments/models/update_subscription_plan_req.rbs +14 -0
- data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
- data/sig/dodopayments/models/webhook_payload.rbs +16 -4
- data/sig/dodopayments/models.rbs +12 -0
- data/sig/dodopayments/resources/blocklist/customers/notes.rbs +24 -0
- data/sig/dodopayments/resources/blocklist/customers.rbs +36 -0
- data/sig/dodopayments/resources/blocklist.rbs +9 -0
- data/sig/dodopayments/resources/payments.rbs +10 -0
- data/sig/dodopayments/resources/subscriptions.rbs +5 -1
- data/sig/dodopayments/resources/webhooks.rbs +2 -0
- metadata +71 -2
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionPausedWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionPausedWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionPausedWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionPausedWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionPausedWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionPlanChangedWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionPlanChangedWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionPlanChangedWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionPlanChangedWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionPlanChangedWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionRenewedWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionRenewedWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionRenewedWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionRenewedWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionRenewedWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|
|
@@ -17,6 +17,8 @@ module Dodopayments
|
|
|
17
17
|
T.let(:cancelled, Dodopayments::SubscriptionStatus::TaggedSymbol)
|
|
18
18
|
FAILED = T.let(:failed, Dodopayments::SubscriptionStatus::TaggedSymbol)
|
|
19
19
|
EXPIRED = T.let(:expired, Dodopayments::SubscriptionStatus::TaggedSymbol)
|
|
20
|
+
PAST_DUE =
|
|
21
|
+
T.let(:past_due, Dodopayments::SubscriptionStatus::TaggedSymbol)
|
|
20
22
|
|
|
21
23
|
sig do
|
|
22
24
|
override.returns(
|
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionUnpausedWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionUnpausedWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionUnpausedWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionUnpausedWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionUnpausedWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|
|
@@ -98,11 +98,23 @@ module Dodopayments
|
|
|
98
98
|
sig { returns(T.nilable(Time)) }
|
|
99
99
|
attr_accessor :next_billing_date
|
|
100
100
|
|
|
101
|
-
# `
|
|
102
|
-
#
|
|
101
|
+
# Removed. Use `status: paused` to pause and `status: active` to resume. This
|
|
102
|
+
# field always fails with 422, so a caller still on it gets a loud error instead
|
|
103
|
+
# of a silent no-op.
|
|
103
104
|
sig { returns(T.nilable(T::Boolean)) }
|
|
104
105
|
attr_accessor :pause
|
|
105
106
|
|
|
107
|
+
# Set to `cancelled` to cancel the subscription. See `cancel_reason`,
|
|
108
|
+
# `cancellation_feedback`, `cancellation_comment`, and
|
|
109
|
+
# `cancel_at_next_billing_date` for cancellation options.
|
|
110
|
+
#
|
|
111
|
+
# Set to `paused` to pause an active subscription. Set to `active` to resume a
|
|
112
|
+
# `paused` subscription. `active` also resumes an `on_hold` subscription that has
|
|
113
|
+
# an unpaid pause invoice. This voids that invoice.
|
|
114
|
+
#
|
|
115
|
+
# Send `paused` or `active` alone. A request that combines either with any other
|
|
116
|
+
# field fails with 422. `cancelled` is not exclusive this way — see
|
|
117
|
+
# `cancel_reason` and friends below.
|
|
106
118
|
sig { returns(T.nilable(Dodopayments::SubscriptionStatus::OrSymbol)) }
|
|
107
119
|
attr_accessor :status
|
|
108
120
|
|
|
@@ -182,9 +194,21 @@ module Dodopayments
|
|
|
182
194
|
# Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
|
|
183
195
|
metadata: nil,
|
|
184
196
|
next_billing_date: nil,
|
|
185
|
-
# `
|
|
186
|
-
#
|
|
197
|
+
# Removed. Use `status: paused` to pause and `status: active` to resume. This
|
|
198
|
+
# field always fails with 422, so a caller still on it gets a loud error instead
|
|
199
|
+
# of a silent no-op.
|
|
187
200
|
pause: nil,
|
|
201
|
+
# Set to `cancelled` to cancel the subscription. See `cancel_reason`,
|
|
202
|
+
# `cancellation_feedback`, `cancellation_comment`, and
|
|
203
|
+
# `cancel_at_next_billing_date` for cancellation options.
|
|
204
|
+
#
|
|
205
|
+
# Set to `paused` to pause an active subscription. Set to `active` to resume a
|
|
206
|
+
# `paused` subscription. `active` also resumes an `on_hold` subscription that has
|
|
207
|
+
# an unpaid pause invoice. This voids that invoice.
|
|
208
|
+
#
|
|
209
|
+
# Send `paused` or `active` alone. A request that combines either with any other
|
|
210
|
+
# field fails with 422. `cancelled` is not exclusive this way — see
|
|
211
|
+
# `cancel_reason` and friends below.
|
|
188
212
|
status: nil,
|
|
189
213
|
# New number of `subscription_period_interval` units the subscription entitlement
|
|
190
214
|
# should span. Used together with `subscription_period_interval` to extend the
|
|
@@ -265,6 +289,11 @@ module Dodopayments
|
|
|
265
289
|
:cancelled_by_merchant_send_dunning,
|
|
266
290
|
Dodopayments::SubscriptionUpdateParams::CancelReason::TaggedSymbol
|
|
267
291
|
)
|
|
292
|
+
CANCELLED_BY_MERCHANT_GRACE_PERIOD_EXPIRED =
|
|
293
|
+
T.let(
|
|
294
|
+
:cancelled_by_merchant_grace_period_expired,
|
|
295
|
+
Dodopayments::SubscriptionUpdateParams::CancelReason::TaggedSymbol
|
|
296
|
+
)
|
|
268
297
|
DODO_TEAM =
|
|
269
298
|
T.let(
|
|
270
299
|
:dodo_team,
|
|
@@ -15,11 +15,19 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig do
|
|
21
|
+
returns(Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent::Data)
|
|
22
|
+
end
|
|
20
23
|
attr_reader :data
|
|
21
24
|
|
|
22
|
-
sig
|
|
25
|
+
sig do
|
|
26
|
+
params(
|
|
27
|
+
data:
|
|
28
|
+
Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent::Data::OrHash
|
|
29
|
+
).void
|
|
30
|
+
end
|
|
23
31
|
attr_writer :data
|
|
24
32
|
|
|
25
33
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +41,8 @@ module Dodopayments
|
|
|
33
41
|
sig do
|
|
34
42
|
params(
|
|
35
43
|
business_id: String,
|
|
36
|
-
data:
|
|
44
|
+
data:
|
|
45
|
+
Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent::Data::OrHash,
|
|
37
46
|
timestamp: Time,
|
|
38
47
|
type: Symbol
|
|
39
48
|
).returns(T.attached_class)
|
|
@@ -41,7 +50,8 @@ module Dodopayments
|
|
|
41
50
|
def self.new(
|
|
42
51
|
# The business identifier
|
|
43
52
|
business_id:,
|
|
44
|
-
#
|
|
53
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
54
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
55
|
data:,
|
|
46
56
|
# The timestamp of when the event occurred
|
|
47
57
|
timestamp:,
|
|
@@ -54,7 +64,8 @@ module Dodopayments
|
|
|
54
64
|
override.returns(
|
|
55
65
|
{
|
|
56
66
|
business_id: String,
|
|
57
|
-
data:
|
|
67
|
+
data:
|
|
68
|
+
Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent::Data,
|
|
58
69
|
timestamp: Time,
|
|
59
70
|
type: Symbol
|
|
60
71
|
}
|
|
@@ -62,6 +73,47 @@ module Dodopayments
|
|
|
62
73
|
end
|
|
63
74
|
def to_hash
|
|
64
75
|
end
|
|
76
|
+
|
|
77
|
+
class Data < Dodopayments::Models::Subscription
|
|
78
|
+
OrHash =
|
|
79
|
+
T.type_alias do
|
|
80
|
+
T.any(
|
|
81
|
+
Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent::Data,
|
|
82
|
+
Dodopayments::Internal::AnyHash
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
87
|
+
# `cancelled` at this time.
|
|
88
|
+
#
|
|
89
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
90
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
91
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
92
|
+
# deadline too, next to a `past_due` status.
|
|
93
|
+
sig { returns(T.nilable(Time)) }
|
|
94
|
+
attr_accessor :past_due_ends_at
|
|
95
|
+
|
|
96
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
97
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
98
|
+
sig do
|
|
99
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
100
|
+
end
|
|
101
|
+
def self.new(
|
|
102
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
103
|
+
# `cancelled` at this time.
|
|
104
|
+
#
|
|
105
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
106
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
107
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
108
|
+
# deadline too, next to a `past_due` status.
|
|
109
|
+
past_due_ends_at: nil
|
|
110
|
+
)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
114
|
+
def to_hash
|
|
115
|
+
end
|
|
116
|
+
end
|
|
65
117
|
end
|
|
66
118
|
end
|
|
67
119
|
end
|
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionUpdatedWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionUpdatedWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionUpdatedWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionUpdatedWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionUpdatedWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|
|
@@ -49,6 +49,7 @@ module Dodopayments
|
|
|
49
49
|
Dodopayments::SubscriptionExpiredWebhookEvent,
|
|
50
50
|
Dodopayments::SubscriptionFailedWebhookEvent,
|
|
51
51
|
Dodopayments::SubscriptionOnHoldWebhookEvent,
|
|
52
|
+
Dodopayments::SubscriptionPastDueWebhookEvent,
|
|
52
53
|
Dodopayments::SubscriptionPausedWebhookEvent,
|
|
53
54
|
Dodopayments::SubscriptionPlanChangedWebhookEvent,
|
|
54
55
|
Dodopayments::SubscriptionRenewedWebhookEvent,
|
|
@@ -49,6 +49,7 @@ module Dodopayments
|
|
|
49
49
|
Dodopayments::SubscriptionExpiredWebhookEvent,
|
|
50
50
|
Dodopayments::SubscriptionFailedWebhookEvent,
|
|
51
51
|
Dodopayments::SubscriptionOnHoldWebhookEvent,
|
|
52
|
+
Dodopayments::SubscriptionPastDueWebhookEvent,
|
|
52
53
|
Dodopayments::SubscriptionPausedWebhookEvent,
|
|
53
54
|
Dodopayments::SubscriptionPlanChangedWebhookEvent,
|
|
54
55
|
Dodopayments::SubscriptionRenewedWebhookEvent,
|