dodopayments 2.8.1 → 2.9.1

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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/client.rb +4 -0
  5. data/lib/dodopayments/models/attach_product_entitlement.rb +22 -0
  6. data/lib/dodopayments/models/cancellation_feedback.rb +21 -0
  7. data/lib/dodopayments/models/checkout_session_flags.rb +12 -1
  8. data/lib/dodopayments/models/checkout_session_request.rb +14 -1
  9. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +1 -0
  10. data/lib/dodopayments/models/credit_overage_reset_webhook_event.rb +52 -0
  11. data/lib/dodopayments/models/customer_list_entitlements_params.rb +20 -0
  12. data/lib/dodopayments/models/customer_list_entitlements_response.rb +105 -0
  13. data/lib/dodopayments/models/digital_product_delivery.rb +19 -14
  14. data/lib/dodopayments/models/digital_product_delivery_file.rb +40 -9
  15. data/lib/dodopayments/models/entitlement.rb +97 -0
  16. data/lib/dodopayments/models/entitlement_create_params.rb +54 -0
  17. data/lib/dodopayments/models/entitlement_delete_params.rb +20 -0
  18. data/lib/dodopayments/models/entitlement_grant_created_webhook_event.rb +56 -0
  19. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +56 -0
  20. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +56 -0
  21. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +56 -0
  22. data/lib/dodopayments/models/entitlement_integration_type.rb +21 -0
  23. data/lib/dodopayments/models/entitlement_list_params.rb +55 -0
  24. data/lib/dodopayments/models/entitlement_retrieve_params.rb +20 -0
  25. data/lib/dodopayments/models/entitlement_update_params.rb +54 -0
  26. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +190 -0
  27. data/lib/dodopayments/models/entitlements/file_delete_params.rb +28 -0
  28. data/lib/dodopayments/models/entitlements/file_upload_params.rb +22 -0
  29. data/lib/dodopayments/models/entitlements/file_upload_response.rb +23 -0
  30. data/lib/dodopayments/models/entitlements/grant_list_params.rb +68 -0
  31. data/lib/dodopayments/models/entitlements/grant_revoke_params.rb +28 -0
  32. data/lib/dodopayments/models/entitlements/license_key_grant.rb +45 -0
  33. data/lib/dodopayments/models/integration_config.rb +217 -0
  34. data/lib/dodopayments/models/integration_config_response.rb +278 -0
  35. data/lib/dodopayments/models/license_key_instance_list_params.rb +9 -1
  36. data/lib/dodopayments/models/one_time_product_cart_item.rb +15 -1
  37. data/lib/dodopayments/models/payment.rb +19 -3
  38. data/lib/dodopayments/models/payment_create_params.rb +23 -35
  39. data/lib/dodopayments/models/payment_create_response.rb +3 -33
  40. data/lib/dodopayments/models/product.rb +10 -217
  41. data/lib/dodopayments/models/product_create_params.rb +25 -6
  42. data/lib/dodopayments/models/product_entitlement_summary.rb +57 -0
  43. data/lib/dodopayments/models/product_list_response.rb +3 -218
  44. data/lib/dodopayments/models/product_update_params.rb +21 -7
  45. data/lib/dodopayments/models/scheduled_plan_change.rb +99 -0
  46. data/lib/dodopayments/models/subscription.rb +20 -102
  47. data/lib/dodopayments/models/subscription_create_params.rb +27 -37
  48. data/lib/dodopayments/models/subscription_create_response.rb +19 -3
  49. data/lib/dodopayments/models/subscription_list_response.rb +3 -103
  50. data/lib/dodopayments/models/subscription_update_params.rb +23 -1
  51. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +11 -1
  52. data/lib/dodopayments/models/unwrap_webhook_event.rb +11 -1
  53. data/lib/dodopayments/models/update_subscription_plan_req.rb +10 -1
  54. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  55. data/lib/dodopayments/models/webhook_payload.rb +6 -153
  56. data/lib/dodopayments/models.rb +40 -0
  57. data/lib/dodopayments/resources/checkout_sessions.rb +6 -2
  58. data/lib/dodopayments/resources/customers.rb +20 -0
  59. data/lib/dodopayments/resources/entitlements/files.rb +63 -0
  60. data/lib/dodopayments/resources/entitlements/grants.rb +76 -0
  61. data/lib/dodopayments/resources/entitlements.rb +153 -0
  62. data/lib/dodopayments/resources/license_key_instances.rb +3 -1
  63. data/lib/dodopayments/resources/payments.rb +6 -2
  64. data/lib/dodopayments/resources/products.rb +4 -4
  65. data/lib/dodopayments/resources/subscriptions.rb +20 -5
  66. data/lib/dodopayments/resources/webhooks.rb +2 -2
  67. data/lib/dodopayments/version.rb +1 -1
  68. data/lib/dodopayments.rb +30 -0
  69. data/rbi/dodopayments/client.rbi +3 -0
  70. data/rbi/dodopayments/models/attach_product_entitlement.rbi +35 -0
  71. data/rbi/dodopayments/models/cancellation_feedback.rbi +45 -0
  72. data/rbi/dodopayments/models/checkout_session_flags.rbi +20 -3
  73. data/rbi/dodopayments/models/checkout_session_request.rbi +18 -0
  74. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +5 -0
  75. data/rbi/dodopayments/models/credit_overage_reset_webhook_event.rbi +103 -0
  76. data/rbi/dodopayments/models/customer_list_entitlements_params.rbi +38 -0
  77. data/rbi/dodopayments/models/customer_list_entitlements_response.rbi +189 -0
  78. data/rbi/dodopayments/models/digital_product_delivery.rbi +16 -18
  79. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +51 -8
  80. data/rbi/dodopayments/models/entitlement.rbi +127 -0
  81. data/rbi/dodopayments/models/entitlement_create_params.rbi +115 -0
  82. data/rbi/dodopayments/models/entitlement_delete_params.rbi +38 -0
  83. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +107 -0
  84. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +107 -0
  85. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +106 -0
  86. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +107 -0
  87. data/rbi/dodopayments/models/entitlement_integration_type.rbi +44 -0
  88. data/rbi/dodopayments/models/entitlement_list_params.rbi +146 -0
  89. data/rbi/dodopayments/models/entitlement_retrieve_params.rbi +38 -0
  90. data/rbi/dodopayments/models/entitlement_update_params.rbi +111 -0
  91. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +269 -0
  92. data/rbi/dodopayments/models/entitlements/file_delete_params.rbi +48 -0
  93. data/rbi/dodopayments/models/entitlements/file_upload_params.rbi +40 -0
  94. data/rbi/dodopayments/models/entitlements/file_upload_response.rbi +34 -0
  95. data/rbi/dodopayments/models/entitlements/grant_list_params.rbi +145 -0
  96. data/rbi/dodopayments/models/entitlements/grant_revoke_params.rbi +48 -0
  97. data/rbi/dodopayments/models/entitlements/license_key_grant.rbi +68 -0
  98. data/rbi/dodopayments/models/integration_config.rbi +411 -0
  99. data/rbi/dodopayments/models/integration_config_response.rbi +531 -0
  100. data/rbi/dodopayments/models/license_key_instance_list_params.rbi +8 -0
  101. data/rbi/dodopayments/models/one_time_product_cart_item.rbi +24 -3
  102. data/rbi/dodopayments/models/payment.rbi +31 -3
  103. data/rbi/dodopayments/models/payment_create_params.rbi +28 -56
  104. data/rbi/dodopayments/models/payment_create_response.rbi +3 -68
  105. data/rbi/dodopayments/models/product.rbi +8 -420
  106. data/rbi/dodopayments/models/product_create_params.rbi +43 -7
  107. data/rbi/dodopayments/models/product_entitlement_summary.rbi +88 -0
  108. data/rbi/dodopayments/models/product_list_response.rbi +3 -430
  109. data/rbi/dodopayments/models/product_update_params.rbi +35 -9
  110. data/rbi/dodopayments/models/scheduled_plan_change.rbi +141 -0
  111. data/rbi/dodopayments/models/subscription.rbi +24 -149
  112. data/rbi/dodopayments/models/subscription_create_params.rbi +36 -68
  113. data/rbi/dodopayments/models/subscription_create_response.rbi +47 -3
  114. data/rbi/dodopayments/models/subscription_list_response.rbi +4 -167
  115. data/rbi/dodopayments/models/subscription_update_params.rbi +27 -0
  116. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +5 -0
  117. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +5 -0
  118. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +10 -0
  119. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  120. data/rbi/dodopayments/models/webhook_payload.rbi +6 -197
  121. data/rbi/dodopayments/models.rbi +46 -0
  122. data/rbi/dodopayments/resources/checkout_sessions.rbi +16 -0
  123. data/rbi/dodopayments/resources/customers.rbi +14 -0
  124. data/rbi/dodopayments/resources/entitlements/files.rbi +45 -0
  125. data/rbi/dodopayments/resources/entitlements/grants.rbi +63 -0
  126. data/rbi/dodopayments/resources/entitlements.rbi +143 -0
  127. data/rbi/dodopayments/resources/license_key_instances.rbi +3 -0
  128. data/rbi/dodopayments/resources/payments.rbi +10 -2
  129. data/rbi/dodopayments/resources/products.rbi +34 -7
  130. data/rbi/dodopayments/resources/subscriptions.rbi +31 -5
  131. data/rbi/dodopayments/resources/webhooks.rbi +10 -0
  132. data/sig/dodopayments/client.rbs +2 -0
  133. data/sig/dodopayments/models/attach_product_entitlement.rbs +13 -0
  134. data/sig/dodopayments/models/cancellation_feedback.rbs +28 -0
  135. data/sig/dodopayments/models/checkout_session_flags.rbs +10 -3
  136. data/sig/dodopayments/models/checkout_session_request.rbs +5 -0
  137. data/sig/dodopayments/models/credit_entitlements/credit_ledger_entry.rbs +2 -0
  138. data/sig/dodopayments/models/credit_overage_reset_webhook_event.rbs +45 -0
  139. data/sig/dodopayments/models/customer_list_entitlements_params.rbs +23 -0
  140. data/sig/dodopayments/models/customer_list_entitlements_response.rbs +95 -0
  141. data/sig/dodopayments/models/digital_product_delivery.rbs +5 -5
  142. data/sig/dodopayments/models/digital_product_delivery_file.rbs +32 -5
  143. data/sig/dodopayments/models/entitlement.rbs +65 -0
  144. data/sig/dodopayments/models/entitlement_create_params.rbs +48 -0
  145. data/sig/dodopayments/models/entitlement_delete_params.rbs +23 -0
  146. data/sig/dodopayments/models/entitlement_grant_created_webhook_event.rbs +45 -0
  147. data/sig/dodopayments/models/entitlement_grant_delivered_webhook_event.rbs +45 -0
  148. data/sig/dodopayments/models/entitlement_grant_failed_webhook_event.rbs +45 -0
  149. data/sig/dodopayments/models/entitlement_grant_revoked_webhook_event.rbs +45 -0
  150. data/sig/dodopayments/models/entitlement_integration_type.rbs +28 -0
  151. data/sig/dodopayments/models/entitlement_list_params.rbs +69 -0
  152. data/sig/dodopayments/models/entitlement_retrieve_params.rbs +23 -0
  153. data/sig/dodopayments/models/entitlement_update_params.rbs +46 -0
  154. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +127 -0
  155. data/sig/dodopayments/models/entitlements/file_delete_params.rbs +30 -0
  156. data/sig/dodopayments/models/entitlements/file_upload_params.rbs +25 -0
  157. data/sig/dodopayments/models/entitlements/file_upload_response.rbs +15 -0
  158. data/sig/dodopayments/models/entitlements/grant_list_params.rbs +71 -0
  159. data/sig/dodopayments/models/entitlements/grant_revoke_params.rbs +30 -0
  160. data/sig/dodopayments/models/entitlements/license_key_grant.rbs +37 -0
  161. data/sig/dodopayments/models/integration_config.rbs +171 -0
  162. data/sig/dodopayments/models/integration_config_response.rbs +225 -0
  163. data/sig/dodopayments/models/license_key_instance_list_params.rbs +10 -1
  164. data/sig/dodopayments/models/one_time_product_cart_item.rbs +14 -3
  165. data/sig/dodopayments/models/payment.rbs +16 -4
  166. data/sig/dodopayments/models/payment_create_params.rbs +16 -27
  167. data/sig/dodopayments/models/payment_create_response.rbs +4 -27
  168. data/sig/dodopayments/models/product.rbs +4 -205
  169. data/sig/dodopayments/models/product_create_params.rbs +4 -4
  170. data/sig/dodopayments/models/product_entitlement_summary.rbs +40 -0
  171. data/sig/dodopayments/models/product_list_response.rbs +4 -205
  172. data/sig/dodopayments/models/product_update_params.rbs +4 -4
  173. data/sig/dodopayments/models/scheduled_plan_change.rbs +73 -0
  174. data/sig/dodopayments/models/subscription.rbs +14 -74
  175. data/sig/dodopayments/models/subscription_create_params.rbs +16 -27
  176. data/sig/dodopayments/models/subscription_create_response.rbs +16 -4
  177. data/sig/dodopayments/models/subscription_list_response.rbs +4 -74
  178. data/sig/dodopayments/models/subscription_update_params.rbs +12 -0
  179. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -0
  180. data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -0
  181. data/sig/dodopayments/models/update_subscription_plan_req.rbs +5 -0
  182. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  183. data/sig/dodopayments/models/webhook_payload.rbs +8 -134
  184. data/sig/dodopayments/models.rbs +40 -0
  185. data/sig/dodopayments/resources/checkout_sessions.rbs +2 -0
  186. data/sig/dodopayments/resources/customers.rbs +5 -0
  187. data/sig/dodopayments/resources/entitlements/files.rbs +20 -0
  188. data/sig/dodopayments/resources/entitlements/grants.rbs +24 -0
  189. data/sig/dodopayments/resources/entitlements.rbs +46 -0
  190. data/sig/dodopayments/resources/license_key_instances.rbs +1 -0
  191. data/sig/dodopayments/resources/payments.rbs +3 -1
  192. data/sig/dodopayments/resources/products.rbs +2 -2
  193. data/sig/dodopayments/resources/subscriptions.rbs +7 -1
  194. data/sig/dodopayments/resources/webhooks.rbs +10 -0
  195. metadata +92 -2
@@ -0,0 +1,269 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ EntitlementGrant = Entitlements::EntitlementGrant
6
+
7
+ module Entitlements
8
+ class EntitlementGrant < Dodopayments::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::Entitlements::EntitlementGrant,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique identifier of the grant.
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # Identifier of the business that owns the grant.
22
+ sig { returns(String) }
23
+ attr_accessor :business_id
24
+
25
+ # Timestamp when the grant was created.
26
+ sig { returns(Time) }
27
+ attr_accessor :created_at
28
+
29
+ # Identifier of the customer the grant was issued to.
30
+ sig { returns(String) }
31
+ attr_accessor :customer_id
32
+
33
+ # Identifier of the entitlement this grant was issued from.
34
+ sig { returns(String) }
35
+ attr_accessor :entitlement_id
36
+
37
+ # Arbitrary key-value metadata recorded on the grant.
38
+ sig { returns(T::Hash[Symbol, String]) }
39
+ attr_accessor :metadata
40
+
41
+ # Lifecycle status of the grant.
42
+ sig do
43
+ returns(
44
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
45
+ )
46
+ end
47
+ attr_accessor :status
48
+
49
+ # Timestamp when the grant was last modified.
50
+ sig { returns(Time) }
51
+ attr_accessor :updated_at
52
+
53
+ # Timestamp when the grant transitioned to `delivered`, when applicable.
54
+ sig { returns(T.nilable(Time)) }
55
+ attr_accessor :delivered_at
56
+
57
+ # Digital-product-delivery payload, present when the entitlement integration is
58
+ # `digital_files`.
59
+ sig { returns(T.nilable(Dodopayments::DigitalProductDelivery)) }
60
+ attr_reader :digital_product_delivery
61
+
62
+ sig do
63
+ params(
64
+ digital_product_delivery:
65
+ T.nilable(Dodopayments::DigitalProductDelivery::OrHash)
66
+ ).void
67
+ end
68
+ attr_writer :digital_product_delivery
69
+
70
+ # Machine-readable code reported when delivery failed, when applicable.
71
+ sig { returns(T.nilable(String)) }
72
+ attr_accessor :error_code
73
+
74
+ # Human-readable message reported when delivery failed, when applicable.
75
+ sig { returns(T.nilable(String)) }
76
+ attr_accessor :error_message
77
+
78
+ # License-key delivery payload, present when the entitlement integration is
79
+ # `license_key`.
80
+ sig { returns(T.nilable(Dodopayments::Entitlements::LicenseKeyGrant)) }
81
+ attr_reader :license_key
82
+
83
+ sig do
84
+ params(
85
+ license_key:
86
+ T.nilable(Dodopayments::Entitlements::LicenseKeyGrant::OrHash)
87
+ ).void
88
+ end
89
+ attr_writer :license_key
90
+
91
+ # Timestamp when `oauth_url` stops being valid, when applicable.
92
+ sig { returns(T.nilable(Time)) }
93
+ attr_accessor :oauth_expires_at
94
+
95
+ # Customer-facing OAuth URL for OAuth-style integrations. Populated during the
96
+ # customer-portal accept flow; `null` until the customer completes that step, and
97
+ # on grants for non-OAuth integrations.
98
+ sig { returns(T.nilable(String)) }
99
+ attr_accessor :oauth_url
100
+
101
+ # Identifier of the payment that triggered this grant, when applicable.
102
+ sig { returns(T.nilable(String)) }
103
+ attr_accessor :payment_id
104
+
105
+ # Reason recorded when the grant was revoked, when applicable.
106
+ sig { returns(T.nilable(String)) }
107
+ attr_accessor :revocation_reason
108
+
109
+ # Timestamp when the grant transitioned to `revoked`, when applicable.
110
+ sig { returns(T.nilable(Time)) }
111
+ attr_accessor :revoked_at
112
+
113
+ # Identifier of the subscription that triggered this grant, when applicable.
114
+ sig { returns(T.nilable(String)) }
115
+ attr_accessor :subscription_id
116
+
117
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
118
+ # and any integration-specific delivery payload.
119
+ sig do
120
+ params(
121
+ id: String,
122
+ business_id: String,
123
+ created_at: Time,
124
+ customer_id: String,
125
+ entitlement_id: String,
126
+ metadata: T::Hash[Symbol, String],
127
+ status:
128
+ Dodopayments::Entitlements::EntitlementGrant::Status::OrSymbol,
129
+ updated_at: Time,
130
+ delivered_at: T.nilable(Time),
131
+ digital_product_delivery:
132
+ T.nilable(Dodopayments::DigitalProductDelivery::OrHash),
133
+ error_code: T.nilable(String),
134
+ error_message: T.nilable(String),
135
+ license_key:
136
+ T.nilable(Dodopayments::Entitlements::LicenseKeyGrant::OrHash),
137
+ oauth_expires_at: T.nilable(Time),
138
+ oauth_url: T.nilable(String),
139
+ payment_id: T.nilable(String),
140
+ revocation_reason: T.nilable(String),
141
+ revoked_at: T.nilable(Time),
142
+ subscription_id: T.nilable(String)
143
+ ).returns(T.attached_class)
144
+ end
145
+ def self.new(
146
+ # Unique identifier of the grant.
147
+ id:,
148
+ # Identifier of the business that owns the grant.
149
+ business_id:,
150
+ # Timestamp when the grant was created.
151
+ created_at:,
152
+ # Identifier of the customer the grant was issued to.
153
+ customer_id:,
154
+ # Identifier of the entitlement this grant was issued from.
155
+ entitlement_id:,
156
+ # Arbitrary key-value metadata recorded on the grant.
157
+ metadata:,
158
+ # Lifecycle status of the grant.
159
+ status:,
160
+ # Timestamp when the grant was last modified.
161
+ updated_at:,
162
+ # Timestamp when the grant transitioned to `delivered`, when applicable.
163
+ delivered_at: nil,
164
+ # Digital-product-delivery payload, present when the entitlement integration is
165
+ # `digital_files`.
166
+ digital_product_delivery: nil,
167
+ # Machine-readable code reported when delivery failed, when applicable.
168
+ error_code: nil,
169
+ # Human-readable message reported when delivery failed, when applicable.
170
+ error_message: nil,
171
+ # License-key delivery payload, present when the entitlement integration is
172
+ # `license_key`.
173
+ license_key: nil,
174
+ # Timestamp when `oauth_url` stops being valid, when applicable.
175
+ oauth_expires_at: nil,
176
+ # Customer-facing OAuth URL for OAuth-style integrations. Populated during the
177
+ # customer-portal accept flow; `null` until the customer completes that step, and
178
+ # on grants for non-OAuth integrations.
179
+ oauth_url: nil,
180
+ # Identifier of the payment that triggered this grant, when applicable.
181
+ payment_id: nil,
182
+ # Reason recorded when the grant was revoked, when applicable.
183
+ revocation_reason: nil,
184
+ # Timestamp when the grant transitioned to `revoked`, when applicable.
185
+ revoked_at: nil,
186
+ # Identifier of the subscription that triggered this grant, when applicable.
187
+ subscription_id: nil
188
+ )
189
+ end
190
+
191
+ sig do
192
+ override.returns(
193
+ {
194
+ id: String,
195
+ business_id: String,
196
+ created_at: Time,
197
+ customer_id: String,
198
+ entitlement_id: String,
199
+ metadata: T::Hash[Symbol, String],
200
+ status:
201
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol,
202
+ updated_at: Time,
203
+ delivered_at: T.nilable(Time),
204
+ digital_product_delivery:
205
+ T.nilable(Dodopayments::DigitalProductDelivery),
206
+ error_code: T.nilable(String),
207
+ error_message: T.nilable(String),
208
+ license_key:
209
+ T.nilable(Dodopayments::Entitlements::LicenseKeyGrant),
210
+ oauth_expires_at: T.nilable(Time),
211
+ oauth_url: T.nilable(String),
212
+ payment_id: T.nilable(String),
213
+ revocation_reason: T.nilable(String),
214
+ revoked_at: T.nilable(Time),
215
+ subscription_id: T.nilable(String)
216
+ }
217
+ )
218
+ end
219
+ def to_hash
220
+ end
221
+
222
+ # Lifecycle status of the grant.
223
+ module Status
224
+ extend Dodopayments::Internal::Type::Enum
225
+
226
+ TaggedSymbol =
227
+ T.type_alias do
228
+ T.all(
229
+ Symbol,
230
+ Dodopayments::Entitlements::EntitlementGrant::Status
231
+ )
232
+ end
233
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
234
+
235
+ PENDING =
236
+ T.let(
237
+ :Pending,
238
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
239
+ )
240
+ DELIVERED =
241
+ T.let(
242
+ :Delivered,
243
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
244
+ )
245
+ FAILED =
246
+ T.let(
247
+ :Failed,
248
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
249
+ )
250
+ REVOKED =
251
+ T.let(
252
+ :Revoked,
253
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
254
+ )
255
+
256
+ sig do
257
+ override.returns(
258
+ T::Array[
259
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
260
+ ]
261
+ )
262
+ end
263
+ def self.values
264
+ end
265
+ end
266
+ end
267
+ end
268
+ end
269
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Entitlements
6
+ class FileDeleteParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Dodopayments::Entitlements::FileDeleteParams,
14
+ Dodopayments::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :file_id
23
+
24
+ sig do
25
+ params(
26
+ id: String,
27
+ file_id: String,
28
+ request_options: Dodopayments::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(id:, file_id:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ id: String,
38
+ file_id: String,
39
+ request_options: Dodopayments::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Entitlements
6
+ class FileUploadParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Dodopayments::Entitlements::FileUploadParams,
14
+ Dodopayments::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig do
22
+ params(
23
+ id: String,
24
+ request_options: Dodopayments::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { id: String, request_options: Dodopayments::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,34 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Entitlements
6
+ class FileUploadResponse < Dodopayments::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Dodopayments::Models::Entitlements::FileUploadResponse,
11
+ Dodopayments::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Identifier of the attached file. Pass it to
16
+ # `DELETE /entitlements/{id}/files/{file_id}` to detach the file later.
17
+ sig { returns(String) }
18
+ attr_accessor :file_id
19
+
20
+ sig { params(file_id: String).returns(T.attached_class) }
21
+ def self.new(
22
+ # Identifier of the attached file. Pass it to
23
+ # `DELETE /entitlements/{id}/files/{file_id}` to detach the file later.
24
+ file_id:
25
+ )
26
+ end
27
+
28
+ sig { override.returns({ file_id: String }) }
29
+ def to_hash
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,145 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Entitlements
6
+ class GrantListParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Dodopayments::Entitlements::GrantListParams,
14
+ Dodopayments::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # Filter by customer ID
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :customer_id
24
+
25
+ sig { params(customer_id: String).void }
26
+ attr_writer :customer_id
27
+
28
+ # Page number (default 0)
29
+ sig { returns(T.nilable(Integer)) }
30
+ attr_reader :page_number
31
+
32
+ sig { params(page_number: Integer).void }
33
+ attr_writer :page_number
34
+
35
+ # Page size (default 10, max 100)
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :page_size
38
+
39
+ sig { params(page_size: Integer).void }
40
+ attr_writer :page_size
41
+
42
+ # Filter by grant status
43
+ sig do
44
+ returns(
45
+ T.nilable(
46
+ Dodopayments::Entitlements::GrantListParams::Status::OrSymbol
47
+ )
48
+ )
49
+ end
50
+ attr_reader :status
51
+
52
+ sig do
53
+ params(
54
+ status:
55
+ Dodopayments::Entitlements::GrantListParams::Status::OrSymbol
56
+ ).void
57
+ end
58
+ attr_writer :status
59
+
60
+ sig do
61
+ params(
62
+ id: String,
63
+ customer_id: String,
64
+ page_number: Integer,
65
+ page_size: Integer,
66
+ status:
67
+ Dodopayments::Entitlements::GrantListParams::Status::OrSymbol,
68
+ request_options: Dodopayments::RequestOptions::OrHash
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ id:,
73
+ # Filter by customer ID
74
+ customer_id: nil,
75
+ # Page number (default 0)
76
+ page_number: nil,
77
+ # Page size (default 10, max 100)
78
+ page_size: nil,
79
+ # Filter by grant status
80
+ status: nil,
81
+ request_options: {}
82
+ )
83
+ end
84
+
85
+ sig do
86
+ override.returns(
87
+ {
88
+ id: String,
89
+ customer_id: String,
90
+ page_number: Integer,
91
+ page_size: Integer,
92
+ status:
93
+ Dodopayments::Entitlements::GrantListParams::Status::OrSymbol,
94
+ request_options: Dodopayments::RequestOptions
95
+ }
96
+ )
97
+ end
98
+ def to_hash
99
+ end
100
+
101
+ # Filter by grant status
102
+ module Status
103
+ extend Dodopayments::Internal::Type::Enum
104
+
105
+ TaggedSymbol =
106
+ T.type_alias do
107
+ T.all(Symbol, Dodopayments::Entitlements::GrantListParams::Status)
108
+ end
109
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
110
+
111
+ PENDING =
112
+ T.let(
113
+ :Pending,
114
+ Dodopayments::Entitlements::GrantListParams::Status::TaggedSymbol
115
+ )
116
+ DELIVERED =
117
+ T.let(
118
+ :Delivered,
119
+ Dodopayments::Entitlements::GrantListParams::Status::TaggedSymbol
120
+ )
121
+ FAILED =
122
+ T.let(
123
+ :Failed,
124
+ Dodopayments::Entitlements::GrantListParams::Status::TaggedSymbol
125
+ )
126
+ REVOKED =
127
+ T.let(
128
+ :Revoked,
129
+ Dodopayments::Entitlements::GrantListParams::Status::TaggedSymbol
130
+ )
131
+
132
+ sig do
133
+ override.returns(
134
+ T::Array[
135
+ Dodopayments::Entitlements::GrantListParams::Status::TaggedSymbol
136
+ ]
137
+ )
138
+ end
139
+ def self.values
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Entitlements
6
+ class GrantRevokeParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Dodopayments::Entitlements::GrantRevokeParams,
14
+ Dodopayments::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :grant_id
23
+
24
+ sig do
25
+ params(
26
+ id: String,
27
+ grant_id: String,
28
+ request_options: Dodopayments::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(id:, grant_id:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ id: String,
38
+ grant_id: String,
39
+ request_options: Dodopayments::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Entitlements
6
+ class LicenseKeyGrant < Dodopayments::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Dodopayments::Entitlements::LicenseKeyGrant,
11
+ Dodopayments::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Number of activations consumed so far.
16
+ sig { returns(Integer) }
17
+ attr_accessor :activations_used
18
+
19
+ # Issued license key.
20
+ sig { returns(String) }
21
+ attr_accessor :key
22
+
23
+ # Maximum activations allowed by the entitlement, when set.
24
+ sig { returns(T.nilable(Integer)) }
25
+ attr_accessor :activations_limit
26
+
27
+ # When the license key expires, when applicable.
28
+ sig { returns(T.nilable(Time)) }
29
+ attr_accessor :expires_at
30
+
31
+ # License-key delivery payload, present on grants for `license_key` entitlements.
32
+ # The grant's top-level `status` is the source of truth for the grant's lifecycle.
33
+ sig do
34
+ params(
35
+ activations_used: Integer,
36
+ key: String,
37
+ activations_limit: T.nilable(Integer),
38
+ expires_at: T.nilable(Time)
39
+ ).returns(T.attached_class)
40
+ end
41
+ def self.new(
42
+ # Number of activations consumed so far.
43
+ activations_used:,
44
+ # Issued license key.
45
+ key:,
46
+ # Maximum activations allowed by the entitlement, when set.
47
+ activations_limit: nil,
48
+ # When the license key expires, when applicable.
49
+ expires_at: nil
50
+ )
51
+ end
52
+
53
+ sig do
54
+ override.returns(
55
+ {
56
+ activations_used: Integer,
57
+ key: String,
58
+ activations_limit: T.nilable(Integer),
59
+ expires_at: T.nilable(Time)
60
+ }
61
+ )
62
+ end
63
+ def to_hash
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end