dodopayments 2.8.0 → 2.9.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 (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 +13 -15
  14. data/lib/dodopayments/models/digital_product_delivery_file.rb +32 -8
  15. data/lib/dodopayments/models/entitlement.rb +86 -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 +51 -0
  19. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +51 -0
  20. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +51 -0
  21. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +51 -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 +172 -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 +40 -0
  33. data/lib/dodopayments/models/integration_config.rb +174 -0
  34. data/lib/dodopayments/models/integration_config_response.rb +238 -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 +12 -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 +2 -154
  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 +70 -0
  60. data/lib/dodopayments/resources/entitlements/grants.rb +78 -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 +10 -22
  79. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +40 -8
  80. data/rbi/dodopayments/models/entitlement.rbi +112 -0
  81. data/rbi/dodopayments/models/entitlement_create_params.rbi +112 -0
  82. data/rbi/dodopayments/models/entitlement_delete_params.rbi +38 -0
  83. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +103 -0
  84. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +103 -0
  85. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +102 -0
  86. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +103 -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 +235 -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 +62 -0
  98. data/rbi/dodopayments/models/integration_config.rbi +296 -0
  99. data/rbi/dodopayments/models/integration_config_response.rbi +416 -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 +12 -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 +4 -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 +52 -0
  125. data/rbi/dodopayments/resources/entitlements/grants.rbi +65 -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 +67 -0
  144. data/sig/dodopayments/models/entitlement_create_params.rbs +46 -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 +134 -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 +147 -0
  162. data/sig/dodopayments/models/integration_config_response.rbs +206 -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,103 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementGrantRevokedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::EntitlementGrantRevokedWebhookEvent,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The business identifier
15
+ sig { returns(String) }
16
+ attr_accessor :business_id
17
+
18
+ sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
19
+ attr_reader :data
20
+
21
+ sig do
22
+ params(data: Dodopayments::Entitlements::EntitlementGrant::OrHash).void
23
+ end
24
+ attr_writer :data
25
+
26
+ # The timestamp of when the event occurred
27
+ sig { returns(Time) }
28
+ attr_accessor :timestamp
29
+
30
+ # The event type
31
+ sig do
32
+ returns(
33
+ Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
34
+ )
35
+ end
36
+ attr_accessor :type
37
+
38
+ sig do
39
+ params(
40
+ business_id: String,
41
+ data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
42
+ timestamp: Time,
43
+ type:
44
+ Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::OrSymbol
45
+ ).returns(T.attached_class)
46
+ end
47
+ def self.new(
48
+ # The business identifier
49
+ business_id:,
50
+ data:,
51
+ # The timestamp of when the event occurred
52
+ timestamp:,
53
+ # The event type
54
+ type:
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ business_id: String,
62
+ data: Dodopayments::Entitlements::EntitlementGrant,
63
+ timestamp: Time,
64
+ type:
65
+ Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+
72
+ # The event type
73
+ module Type
74
+ extend Dodopayments::Internal::Type::Enum
75
+
76
+ TaggedSymbol =
77
+ T.type_alias do
78
+ T.all(
79
+ Symbol,
80
+ Dodopayments::EntitlementGrantRevokedWebhookEvent::Type
81
+ )
82
+ end
83
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
84
+
85
+ ENTITLEMENT_GRANT_REVOKED =
86
+ T.let(
87
+ :"entitlement_grant.revoked",
88
+ Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
89
+ )
90
+
91
+ sig do
92
+ override.returns(
93
+ T::Array[
94
+ Dodopayments::EntitlementGrantRevokedWebhookEvent::Type::TaggedSymbol
95
+ ]
96
+ )
97
+ end
98
+ def self.values
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,44 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module EntitlementIntegrationType
6
+ extend Dodopayments::Internal::Type::Enum
7
+
8
+ TaggedSymbol =
9
+ T.type_alias { T.all(Symbol, Dodopayments::EntitlementIntegrationType) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ DISCORD =
13
+ T.let(:discord, Dodopayments::EntitlementIntegrationType::TaggedSymbol)
14
+ TELEGRAM =
15
+ T.let(:telegram, Dodopayments::EntitlementIntegrationType::TaggedSymbol)
16
+ GITHUB =
17
+ T.let(:github, Dodopayments::EntitlementIntegrationType::TaggedSymbol)
18
+ FIGMA =
19
+ T.let(:figma, Dodopayments::EntitlementIntegrationType::TaggedSymbol)
20
+ FRAMER =
21
+ T.let(:framer, Dodopayments::EntitlementIntegrationType::TaggedSymbol)
22
+ NOTION =
23
+ T.let(:notion, Dodopayments::EntitlementIntegrationType::TaggedSymbol)
24
+ DIGITAL_FILES =
25
+ T.let(
26
+ :digital_files,
27
+ Dodopayments::EntitlementIntegrationType::TaggedSymbol
28
+ )
29
+ LICENSE_KEY =
30
+ T.let(
31
+ :license_key,
32
+ Dodopayments::EntitlementIntegrationType::TaggedSymbol
33
+ )
34
+
35
+ sig do
36
+ override.returns(
37
+ T::Array[Dodopayments::EntitlementIntegrationType::TaggedSymbol]
38
+ )
39
+ end
40
+ def self.values
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,146 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementListParams < Dodopayments::Internal::Type::BaseModel
6
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
7
+ include Dodopayments::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::EntitlementListParams,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Filter by integration type
18
+ sig do
19
+ returns(
20
+ T.nilable(
21
+ Dodopayments::EntitlementListParams::IntegrationType::OrSymbol
22
+ )
23
+ )
24
+ end
25
+ attr_reader :integration_type
26
+
27
+ sig do
28
+ params(
29
+ integration_type:
30
+ Dodopayments::EntitlementListParams::IntegrationType::OrSymbol
31
+ ).void
32
+ end
33
+ attr_writer :integration_type
34
+
35
+ # Page number (default 0)
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :page_number
38
+
39
+ sig { params(page_number: Integer).void }
40
+ attr_writer :page_number
41
+
42
+ # Page size (default 10, max 100)
43
+ sig { returns(T.nilable(Integer)) }
44
+ attr_reader :page_size
45
+
46
+ sig { params(page_size: Integer).void }
47
+ attr_writer :page_size
48
+
49
+ sig do
50
+ params(
51
+ integration_type:
52
+ Dodopayments::EntitlementListParams::IntegrationType::OrSymbol,
53
+ page_number: Integer,
54
+ page_size: Integer,
55
+ request_options: Dodopayments::RequestOptions::OrHash
56
+ ).returns(T.attached_class)
57
+ end
58
+ def self.new(
59
+ # Filter by integration type
60
+ integration_type: nil,
61
+ # Page number (default 0)
62
+ page_number: nil,
63
+ # Page size (default 10, max 100)
64
+ page_size: nil,
65
+ request_options: {}
66
+ )
67
+ end
68
+
69
+ sig do
70
+ override.returns(
71
+ {
72
+ integration_type:
73
+ Dodopayments::EntitlementListParams::IntegrationType::OrSymbol,
74
+ page_number: Integer,
75
+ page_size: Integer,
76
+ request_options: Dodopayments::RequestOptions
77
+ }
78
+ )
79
+ end
80
+ def to_hash
81
+ end
82
+
83
+ # Filter by integration type
84
+ module IntegrationType
85
+ extend Dodopayments::Internal::Type::Enum
86
+
87
+ TaggedSymbol =
88
+ T.type_alias do
89
+ T.all(Symbol, Dodopayments::EntitlementListParams::IntegrationType)
90
+ end
91
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
92
+
93
+ DISCORD =
94
+ T.let(
95
+ :discord,
96
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
97
+ )
98
+ TELEGRAM =
99
+ T.let(
100
+ :telegram,
101
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
102
+ )
103
+ GITHUB =
104
+ T.let(
105
+ :github,
106
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
107
+ )
108
+ FIGMA =
109
+ T.let(
110
+ :figma,
111
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
112
+ )
113
+ FRAMER =
114
+ T.let(
115
+ :framer,
116
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
117
+ )
118
+ NOTION =
119
+ T.let(
120
+ :notion,
121
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
122
+ )
123
+ DIGITAL_FILES =
124
+ T.let(
125
+ :digital_files,
126
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
127
+ )
128
+ LICENSE_KEY =
129
+ T.let(
130
+ :license_key,
131
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
132
+ )
133
+
134
+ sig do
135
+ override.returns(
136
+ T::Array[
137
+ Dodopayments::EntitlementListParams::IntegrationType::TaggedSymbol
138
+ ]
139
+ )
140
+ end
141
+ def self.values
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementRetrieveParams < Dodopayments::Internal::Type::BaseModel
6
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
7
+ include Dodopayments::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::EntitlementRetrieveParams,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ sig do
21
+ params(
22
+ id: String,
23
+ request_options: Dodopayments::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(id:, request_options: {})
27
+ end
28
+
29
+ sig do
30
+ override.returns(
31
+ { id: String, request_options: Dodopayments::RequestOptions }
32
+ )
33
+ end
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,111 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementUpdateParams < Dodopayments::Internal::Type::BaseModel
6
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
7
+ include Dodopayments::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::EntitlementUpdateParams,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_accessor :description
22
+
23
+ # Platform-specific configuration for an entitlement. Each variant uses unique
24
+ # field names so `#[serde(untagged)]` can disambiguate correctly.
25
+ sig do
26
+ returns(
27
+ T.nilable(
28
+ T.any(
29
+ Dodopayments::IntegrationConfig::GitHubConfig,
30
+ Dodopayments::IntegrationConfig::DiscordConfig,
31
+ Dodopayments::IntegrationConfig::TelegramConfig,
32
+ Dodopayments::IntegrationConfig::FigmaConfig,
33
+ Dodopayments::IntegrationConfig::FramerConfig,
34
+ Dodopayments::IntegrationConfig::NotionConfig,
35
+ Dodopayments::IntegrationConfig::DigitalFilesConfig,
36
+ Dodopayments::IntegrationConfig::LicenseKeyConfig
37
+ )
38
+ )
39
+ )
40
+ end
41
+ attr_accessor :integration_config
42
+
43
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
44
+ attr_accessor :metadata
45
+
46
+ sig { returns(T.nilable(String)) }
47
+ attr_accessor :name
48
+
49
+ sig do
50
+ params(
51
+ id: String,
52
+ description: T.nilable(String),
53
+ integration_config:
54
+ T.nilable(
55
+ T.any(
56
+ Dodopayments::IntegrationConfig::GitHubConfig::OrHash,
57
+ Dodopayments::IntegrationConfig::DiscordConfig::OrHash,
58
+ Dodopayments::IntegrationConfig::TelegramConfig::OrHash,
59
+ Dodopayments::IntegrationConfig::FigmaConfig::OrHash,
60
+ Dodopayments::IntegrationConfig::FramerConfig::OrHash,
61
+ Dodopayments::IntegrationConfig::NotionConfig::OrHash,
62
+ Dodopayments::IntegrationConfig::DigitalFilesConfig::OrHash,
63
+ Dodopayments::IntegrationConfig::LicenseKeyConfig::OrHash
64
+ )
65
+ ),
66
+ metadata: T.nilable(T::Hash[Symbol, String]),
67
+ name: T.nilable(String),
68
+ request_options: Dodopayments::RequestOptions::OrHash
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ id:,
73
+ description: nil,
74
+ # Platform-specific configuration for an entitlement. Each variant uses unique
75
+ # field names so `#[serde(untagged)]` can disambiguate correctly.
76
+ integration_config: nil,
77
+ metadata: nil,
78
+ name: nil,
79
+ request_options: {}
80
+ )
81
+ end
82
+
83
+ sig do
84
+ override.returns(
85
+ {
86
+ id: String,
87
+ description: T.nilable(String),
88
+ integration_config:
89
+ T.nilable(
90
+ T.any(
91
+ Dodopayments::IntegrationConfig::GitHubConfig,
92
+ Dodopayments::IntegrationConfig::DiscordConfig,
93
+ Dodopayments::IntegrationConfig::TelegramConfig,
94
+ Dodopayments::IntegrationConfig::FigmaConfig,
95
+ Dodopayments::IntegrationConfig::FramerConfig,
96
+ Dodopayments::IntegrationConfig::NotionConfig,
97
+ Dodopayments::IntegrationConfig::DigitalFilesConfig,
98
+ Dodopayments::IntegrationConfig::LicenseKeyConfig
99
+ )
100
+ ),
101
+ metadata: T.nilable(T::Hash[Symbol, String]),
102
+ name: T.nilable(String),
103
+ request_options: Dodopayments::RequestOptions
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,235 @@
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
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :business_id
22
+
23
+ sig { returns(Time) }
24
+ attr_accessor :created_at
25
+
26
+ sig { returns(String) }
27
+ attr_accessor :customer_id
28
+
29
+ sig { returns(String) }
30
+ attr_accessor :entitlement_id
31
+
32
+ sig { returns(String) }
33
+ attr_accessor :external_id
34
+
35
+ sig do
36
+ returns(
37
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
38
+ )
39
+ end
40
+ attr_accessor :status
41
+
42
+ sig { returns(Time) }
43
+ attr_accessor :updated_at
44
+
45
+ sig { returns(T.nilable(Time)) }
46
+ attr_accessor :delivered_at
47
+
48
+ # Present only when the entitlement integration_type is `digital_files`. Populated
49
+ # eagerly on every list and single-record endpoint.
50
+ sig { returns(T.nilable(Dodopayments::DigitalProductDelivery)) }
51
+ attr_reader :digital_product_delivery
52
+
53
+ sig do
54
+ params(
55
+ digital_product_delivery:
56
+ T.nilable(Dodopayments::DigitalProductDelivery::OrHash)
57
+ ).void
58
+ end
59
+ attr_writer :digital_product_delivery
60
+
61
+ sig { returns(T.nilable(String)) }
62
+ attr_accessor :error_code
63
+
64
+ sig { returns(T.nilable(String)) }
65
+ attr_accessor :error_message
66
+
67
+ # Present only when the entitlement integration_type is `license_key`.
68
+ sig { returns(T.nilable(Dodopayments::Entitlements::LicenseKeyGrant)) }
69
+ attr_reader :license_key
70
+
71
+ sig do
72
+ params(
73
+ license_key:
74
+ T.nilable(Dodopayments::Entitlements::LicenseKeyGrant::OrHash)
75
+ ).void
76
+ end
77
+ attr_writer :license_key
78
+
79
+ sig { returns(T.nilable(T.anything)) }
80
+ attr_reader :metadata
81
+
82
+ sig { params(metadata: T.anything).void }
83
+ attr_writer :metadata
84
+
85
+ sig { returns(T.nilable(Time)) }
86
+ attr_accessor :oauth_expires_at
87
+
88
+ sig { returns(T.nilable(String)) }
89
+ attr_accessor :oauth_url
90
+
91
+ sig { returns(T.nilable(String)) }
92
+ attr_accessor :payment_id
93
+
94
+ sig { returns(T.nilable(String)) }
95
+ attr_accessor :revocation_reason
96
+
97
+ sig { returns(T.nilable(Time)) }
98
+ attr_accessor :revoked_at
99
+
100
+ sig { returns(T.nilable(String)) }
101
+ attr_accessor :subscription_id
102
+
103
+ sig do
104
+ params(
105
+ id: String,
106
+ business_id: String,
107
+ created_at: Time,
108
+ customer_id: String,
109
+ entitlement_id: String,
110
+ external_id: String,
111
+ status:
112
+ Dodopayments::Entitlements::EntitlementGrant::Status::OrSymbol,
113
+ updated_at: Time,
114
+ delivered_at: T.nilable(Time),
115
+ digital_product_delivery:
116
+ T.nilable(Dodopayments::DigitalProductDelivery::OrHash),
117
+ error_code: T.nilable(String),
118
+ error_message: T.nilable(String),
119
+ license_key:
120
+ T.nilable(Dodopayments::Entitlements::LicenseKeyGrant::OrHash),
121
+ metadata: T.anything,
122
+ oauth_expires_at: T.nilable(Time),
123
+ oauth_url: T.nilable(String),
124
+ payment_id: T.nilable(String),
125
+ revocation_reason: T.nilable(String),
126
+ revoked_at: T.nilable(Time),
127
+ subscription_id: T.nilable(String)
128
+ ).returns(T.attached_class)
129
+ end
130
+ def self.new(
131
+ id:,
132
+ business_id:,
133
+ created_at:,
134
+ customer_id:,
135
+ entitlement_id:,
136
+ external_id:,
137
+ status:,
138
+ updated_at:,
139
+ delivered_at: nil,
140
+ # Present only when the entitlement integration_type is `digital_files`. Populated
141
+ # eagerly on every list and single-record endpoint.
142
+ digital_product_delivery: nil,
143
+ error_code: nil,
144
+ error_message: nil,
145
+ # Present only when the entitlement integration_type is `license_key`.
146
+ license_key: nil,
147
+ metadata: nil,
148
+ oauth_expires_at: nil,
149
+ oauth_url: nil,
150
+ payment_id: nil,
151
+ revocation_reason: nil,
152
+ revoked_at: nil,
153
+ subscription_id: nil
154
+ )
155
+ end
156
+
157
+ sig do
158
+ override.returns(
159
+ {
160
+ id: String,
161
+ business_id: String,
162
+ created_at: Time,
163
+ customer_id: String,
164
+ entitlement_id: String,
165
+ external_id: String,
166
+ status:
167
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol,
168
+ updated_at: Time,
169
+ delivered_at: T.nilable(Time),
170
+ digital_product_delivery:
171
+ T.nilable(Dodopayments::DigitalProductDelivery),
172
+ error_code: T.nilable(String),
173
+ error_message: T.nilable(String),
174
+ license_key:
175
+ T.nilable(Dodopayments::Entitlements::LicenseKeyGrant),
176
+ metadata: T.anything,
177
+ oauth_expires_at: T.nilable(Time),
178
+ oauth_url: T.nilable(String),
179
+ payment_id: T.nilable(String),
180
+ revocation_reason: T.nilable(String),
181
+ revoked_at: T.nilable(Time),
182
+ subscription_id: T.nilable(String)
183
+ }
184
+ )
185
+ end
186
+ def to_hash
187
+ end
188
+
189
+ module Status
190
+ extend Dodopayments::Internal::Type::Enum
191
+
192
+ TaggedSymbol =
193
+ T.type_alias do
194
+ T.all(
195
+ Symbol,
196
+ Dodopayments::Entitlements::EntitlementGrant::Status
197
+ )
198
+ end
199
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
200
+
201
+ PENDING =
202
+ T.let(
203
+ :Pending,
204
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
205
+ )
206
+ DELIVERED =
207
+ T.let(
208
+ :Delivered,
209
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
210
+ )
211
+ FAILED =
212
+ T.let(
213
+ :Failed,
214
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
215
+ )
216
+ REVOKED =
217
+ T.let(
218
+ :Revoked,
219
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
220
+ )
221
+
222
+ sig do
223
+ override.returns(
224
+ T::Array[
225
+ Dodopayments::Entitlements::EntitlementGrant::Status::TaggedSymbol
226
+ ]
227
+ )
228
+ end
229
+ def self.values
230
+ end
231
+ end
232
+ end
233
+ end
234
+ end
235
+ end