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
@@ -11,25 +11,68 @@ module Dodopayments
11
11
  )
12
12
  end
13
13
 
14
+ # Short-lived presigned URL for downloading the file.
14
15
  sig { returns(String) }
15
- attr_accessor :file_id
16
+ attr_accessor :download_url
17
+
18
+ # Seconds until `download_url` expires.
19
+ sig { returns(Integer) }
20
+ attr_accessor :expires_in
16
21
 
22
+ # Identifier of the attached file.
17
23
  sig { returns(String) }
18
- attr_accessor :file_name
24
+ attr_accessor :file_id
19
25
 
26
+ # Original filename of the attached file.
20
27
  sig { returns(String) }
21
- attr_accessor :url
28
+ attr_accessor :filename
29
+
30
+ # Optional content-type declared at upload.
31
+ sig { returns(T.nilable(String)) }
32
+ attr_accessor :content_type
22
33
 
34
+ # Optional size of the file in bytes.
35
+ sig { returns(T.nilable(Integer)) }
36
+ attr_accessor :file_size
37
+
38
+ # One file in a digital-product delivery payload.
23
39
  sig do
24
- params(file_id: String, file_name: String, url: String).returns(
25
- T.attached_class
26
- )
40
+ params(
41
+ download_url: String,
42
+ expires_in: Integer,
43
+ file_id: String,
44
+ filename: String,
45
+ content_type: T.nilable(String),
46
+ file_size: T.nilable(Integer)
47
+ ).returns(T.attached_class)
27
48
  end
28
- def self.new(file_id:, file_name:, url:)
49
+ def self.new(
50
+ # Short-lived presigned URL for downloading the file.
51
+ download_url:,
52
+ # Seconds until `download_url` expires.
53
+ expires_in:,
54
+ # Identifier of the attached file.
55
+ file_id:,
56
+ # Original filename of the attached file.
57
+ filename:,
58
+ # Optional content-type declared at upload.
59
+ content_type: nil,
60
+ # Optional size of the file in bytes.
61
+ file_size: nil
62
+ )
29
63
  end
30
64
 
31
65
  sig do
32
- override.returns({ file_id: String, file_name: String, url: String })
66
+ override.returns(
67
+ {
68
+ download_url: String,
69
+ expires_in: Integer,
70
+ file_id: String,
71
+ filename: String,
72
+ content_type: T.nilable(String),
73
+ file_size: T.nilable(Integer)
74
+ }
75
+ )
33
76
  end
34
77
  def to_hash
35
78
  end
@@ -0,0 +1,127 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class Entitlement < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Dodopayments::Entitlement, Dodopayments::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier of the entitlement.
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # Identifier of the business that owns this entitlement.
16
+ sig { returns(String) }
17
+ attr_accessor :business_id
18
+
19
+ # Timestamp when the entitlement was created.
20
+ sig { returns(Time) }
21
+ attr_accessor :created_at
22
+
23
+ # Integration-specific configuration. For `digital_files` entitlements this
24
+ # includes presigned download URLs for each attached file.
25
+ sig { returns(Dodopayments::IntegrationConfigResponse::Variants) }
26
+ attr_accessor :integration_config
27
+
28
+ # Platform integration this entitlement uses.
29
+ sig { returns(Dodopayments::EntitlementIntegrationType::TaggedSymbol) }
30
+ attr_accessor :integration_type
31
+
32
+ # Always `true` for entitlements returned by the public API; soft-deleted
33
+ # entitlements are not returned.
34
+ sig { returns(T::Boolean) }
35
+ attr_accessor :is_active
36
+
37
+ # Arbitrary key-value metadata supplied at creation or via PATCH.
38
+ sig { returns(T::Hash[Symbol, String]) }
39
+ attr_accessor :metadata
40
+
41
+ # Display name supplied at creation.
42
+ sig { returns(String) }
43
+ attr_accessor :name
44
+
45
+ # Timestamp when the entitlement was last modified.
46
+ sig { returns(Time) }
47
+ attr_accessor :updated_at
48
+
49
+ # Optional description supplied at creation.
50
+ sig { returns(T.nilable(String)) }
51
+ attr_accessor :description
52
+
53
+ # Detailed view of a single entitlement: identity, integration type,
54
+ # integration-specific configuration, and metadata.
55
+ sig do
56
+ params(
57
+ id: String,
58
+ business_id: String,
59
+ created_at: Time,
60
+ integration_config:
61
+ T.any(
62
+ Dodopayments::IntegrationConfigResponse::GitHubConfig::OrHash,
63
+ Dodopayments::IntegrationConfigResponse::DiscordConfig::OrHash,
64
+ Dodopayments::IntegrationConfigResponse::TelegramConfig::OrHash,
65
+ Dodopayments::IntegrationConfigResponse::FigmaConfig::OrHash,
66
+ Dodopayments::IntegrationConfigResponse::FramerConfig::OrHash,
67
+ Dodopayments::IntegrationConfigResponse::NotionConfig::OrHash,
68
+ Dodopayments::IntegrationConfigResponse::DigitalFilesConfig::OrHash,
69
+ Dodopayments::IntegrationConfigResponse::LicenseKeyConfig::OrHash
70
+ ),
71
+ integration_type: Dodopayments::EntitlementIntegrationType::OrSymbol,
72
+ is_active: T::Boolean,
73
+ metadata: T::Hash[Symbol, String],
74
+ name: String,
75
+ updated_at: Time,
76
+ description: T.nilable(String)
77
+ ).returns(T.attached_class)
78
+ end
79
+ def self.new(
80
+ # Unique identifier of the entitlement.
81
+ id:,
82
+ # Identifier of the business that owns this entitlement.
83
+ business_id:,
84
+ # Timestamp when the entitlement was created.
85
+ created_at:,
86
+ # Integration-specific configuration. For `digital_files` entitlements this
87
+ # includes presigned download URLs for each attached file.
88
+ integration_config:,
89
+ # Platform integration this entitlement uses.
90
+ integration_type:,
91
+ # Always `true` for entitlements returned by the public API; soft-deleted
92
+ # entitlements are not returned.
93
+ is_active:,
94
+ # Arbitrary key-value metadata supplied at creation or via PATCH.
95
+ metadata:,
96
+ # Display name supplied at creation.
97
+ name:,
98
+ # Timestamp when the entitlement was last modified.
99
+ updated_at:,
100
+ # Optional description supplied at creation.
101
+ description: nil
102
+ )
103
+ end
104
+
105
+ sig do
106
+ override.returns(
107
+ {
108
+ id: String,
109
+ business_id: String,
110
+ created_at: Time,
111
+ integration_config:
112
+ Dodopayments::IntegrationConfigResponse::Variants,
113
+ integration_type:
114
+ Dodopayments::EntitlementIntegrationType::TaggedSymbol,
115
+ is_active: T::Boolean,
116
+ metadata: T::Hash[Symbol, String],
117
+ name: String,
118
+ updated_at: Time,
119
+ description: T.nilable(String)
120
+ }
121
+ )
122
+ end
123
+ def to_hash
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,115 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementCreateParams < 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::EntitlementCreateParams,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Platform-specific configuration (validated per integration_type)
18
+ sig do
19
+ returns(
20
+ T.any(
21
+ Dodopayments::IntegrationConfig::GitHubConfig,
22
+ Dodopayments::IntegrationConfig::DiscordConfig,
23
+ Dodopayments::IntegrationConfig::TelegramConfig,
24
+ Dodopayments::IntegrationConfig::FigmaConfig,
25
+ Dodopayments::IntegrationConfig::FramerConfig,
26
+ Dodopayments::IntegrationConfig::NotionConfig,
27
+ Dodopayments::IntegrationConfig::DigitalFilesConfig,
28
+ Dodopayments::IntegrationConfig::LicenseKeyConfig
29
+ )
30
+ )
31
+ end
32
+ attr_accessor :integration_config
33
+
34
+ # Which platform integration this entitlement uses
35
+ sig { returns(Dodopayments::EntitlementIntegrationType::OrSymbol) }
36
+ attr_accessor :integration_type
37
+
38
+ # Display name for this entitlement
39
+ sig { returns(String) }
40
+ attr_accessor :name
41
+
42
+ # Optional description
43
+ sig { returns(T.nilable(String)) }
44
+ attr_accessor :description
45
+
46
+ # Additional metadata for the entitlement
47
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
48
+ attr_reader :metadata
49
+
50
+ sig { params(metadata: T::Hash[Symbol, String]).void }
51
+ attr_writer :metadata
52
+
53
+ sig do
54
+ params(
55
+ integration_config:
56
+ T.any(
57
+ Dodopayments::IntegrationConfig::GitHubConfig::OrHash,
58
+ Dodopayments::IntegrationConfig::DiscordConfig::OrHash,
59
+ Dodopayments::IntegrationConfig::TelegramConfig::OrHash,
60
+ Dodopayments::IntegrationConfig::FigmaConfig::OrHash,
61
+ Dodopayments::IntegrationConfig::FramerConfig::OrHash,
62
+ Dodopayments::IntegrationConfig::NotionConfig::OrHash,
63
+ Dodopayments::IntegrationConfig::DigitalFilesConfig::OrHash,
64
+ Dodopayments::IntegrationConfig::LicenseKeyConfig::OrHash
65
+ ),
66
+ integration_type: Dodopayments::EntitlementIntegrationType::OrSymbol,
67
+ name: String,
68
+ description: T.nilable(String),
69
+ metadata: T::Hash[Symbol, String],
70
+ request_options: Dodopayments::RequestOptions::OrHash
71
+ ).returns(T.attached_class)
72
+ end
73
+ def self.new(
74
+ # Platform-specific configuration (validated per integration_type)
75
+ integration_config:,
76
+ # Which platform integration this entitlement uses
77
+ integration_type:,
78
+ # Display name for this entitlement
79
+ name:,
80
+ # Optional description
81
+ description: nil,
82
+ # Additional metadata for the entitlement
83
+ metadata: nil,
84
+ request_options: {}
85
+ )
86
+ end
87
+
88
+ sig do
89
+ override.returns(
90
+ {
91
+ integration_config:
92
+ T.any(
93
+ Dodopayments::IntegrationConfig::GitHubConfig,
94
+ Dodopayments::IntegrationConfig::DiscordConfig,
95
+ Dodopayments::IntegrationConfig::TelegramConfig,
96
+ Dodopayments::IntegrationConfig::FigmaConfig,
97
+ Dodopayments::IntegrationConfig::FramerConfig,
98
+ Dodopayments::IntegrationConfig::NotionConfig,
99
+ Dodopayments::IntegrationConfig::DigitalFilesConfig,
100
+ Dodopayments::IntegrationConfig::LicenseKeyConfig
101
+ ),
102
+ integration_type:
103
+ Dodopayments::EntitlementIntegrationType::OrSymbol,
104
+ name: String,
105
+ description: T.nilable(String),
106
+ metadata: T::Hash[Symbol, String],
107
+ request_options: Dodopayments::RequestOptions
108
+ }
109
+ )
110
+ end
111
+ def to_hash
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementDeleteParams < 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::EntitlementDeleteParams,
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,107 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementGrantCreatedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::EntitlementGrantCreatedWebhookEvent,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The business identifier
15
+ sig { returns(String) }
16
+ attr_accessor :business_id
17
+
18
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
19
+ # and any integration-specific delivery payload.
20
+ sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
21
+ attr_reader :data
22
+
23
+ sig do
24
+ params(data: Dodopayments::Entitlements::EntitlementGrant::OrHash).void
25
+ end
26
+ attr_writer :data
27
+
28
+ # The timestamp of when the event occurred
29
+ sig { returns(Time) }
30
+ attr_accessor :timestamp
31
+
32
+ # The event type
33
+ sig do
34
+ returns(
35
+ Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
36
+ )
37
+ end
38
+ attr_accessor :type
39
+
40
+ sig do
41
+ params(
42
+ business_id: String,
43
+ data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
44
+ timestamp: Time,
45
+ type:
46
+ Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::OrSymbol
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # The business identifier
51
+ business_id:,
52
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
53
+ # and any integration-specific delivery payload.
54
+ data:,
55
+ # The timestamp of when the event occurred
56
+ timestamp:,
57
+ # The event type
58
+ type:
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ business_id: String,
66
+ data: Dodopayments::Entitlements::EntitlementGrant,
67
+ timestamp: Time,
68
+ type:
69
+ Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
70
+ }
71
+ )
72
+ end
73
+ def to_hash
74
+ end
75
+
76
+ # The event type
77
+ module Type
78
+ extend Dodopayments::Internal::Type::Enum
79
+
80
+ TaggedSymbol =
81
+ T.type_alias do
82
+ T.all(
83
+ Symbol,
84
+ Dodopayments::EntitlementGrantCreatedWebhookEvent::Type
85
+ )
86
+ end
87
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
88
+
89
+ ENTITLEMENT_GRANT_CREATED =
90
+ T.let(
91
+ :"entitlement_grant.created",
92
+ Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
93
+ )
94
+
95
+ sig do
96
+ override.returns(
97
+ T::Array[
98
+ Dodopayments::EntitlementGrantCreatedWebhookEvent::Type::TaggedSymbol
99
+ ]
100
+ )
101
+ end
102
+ def self.values
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,107 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementGrantDeliveredWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The business identifier
15
+ sig { returns(String) }
16
+ attr_accessor :business_id
17
+
18
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
19
+ # and any integration-specific delivery payload.
20
+ sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
21
+ attr_reader :data
22
+
23
+ sig do
24
+ params(data: Dodopayments::Entitlements::EntitlementGrant::OrHash).void
25
+ end
26
+ attr_writer :data
27
+
28
+ # The timestamp of when the event occurred
29
+ sig { returns(Time) }
30
+ attr_accessor :timestamp
31
+
32
+ # The event type
33
+ sig do
34
+ returns(
35
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
36
+ )
37
+ end
38
+ attr_accessor :type
39
+
40
+ sig do
41
+ params(
42
+ business_id: String,
43
+ data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
44
+ timestamp: Time,
45
+ type:
46
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::OrSymbol
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # The business identifier
51
+ business_id:,
52
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
53
+ # and any integration-specific delivery payload.
54
+ data:,
55
+ # The timestamp of when the event occurred
56
+ timestamp:,
57
+ # The event type
58
+ type:
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ business_id: String,
66
+ data: Dodopayments::Entitlements::EntitlementGrant,
67
+ timestamp: Time,
68
+ type:
69
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
70
+ }
71
+ )
72
+ end
73
+ def to_hash
74
+ end
75
+
76
+ # The event type
77
+ module Type
78
+ extend Dodopayments::Internal::Type::Enum
79
+
80
+ TaggedSymbol =
81
+ T.type_alias do
82
+ T.all(
83
+ Symbol,
84
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type
85
+ )
86
+ end
87
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
88
+
89
+ ENTITLEMENT_GRANT_DELIVERED =
90
+ T.let(
91
+ :"entitlement_grant.delivered",
92
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
93
+ )
94
+
95
+ sig do
96
+ override.returns(
97
+ T::Array[
98
+ Dodopayments::EntitlementGrantDeliveredWebhookEvent::Type::TaggedSymbol
99
+ ]
100
+ )
101
+ end
102
+ def self.values
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,106 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class EntitlementGrantFailedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::EntitlementGrantFailedWebhookEvent,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The business identifier
15
+ sig { returns(String) }
16
+ attr_accessor :business_id
17
+
18
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
19
+ # and any integration-specific delivery payload.
20
+ sig { returns(Dodopayments::Entitlements::EntitlementGrant) }
21
+ attr_reader :data
22
+
23
+ sig do
24
+ params(data: Dodopayments::Entitlements::EntitlementGrant::OrHash).void
25
+ end
26
+ attr_writer :data
27
+
28
+ # The timestamp of when the event occurred
29
+ sig { returns(Time) }
30
+ attr_accessor :timestamp
31
+
32
+ # The event type
33
+ sig do
34
+ returns(
35
+ Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
36
+ )
37
+ end
38
+ attr_accessor :type
39
+
40
+ sig do
41
+ params(
42
+ business_id: String,
43
+ data: Dodopayments::Entitlements::EntitlementGrant::OrHash,
44
+ timestamp: Time,
45
+ type: Dodopayments::EntitlementGrantFailedWebhookEvent::Type::OrSymbol
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # The business identifier
50
+ business_id:,
51
+ # Detailed view of a single entitlement grant: who it's for, its lifecycle state,
52
+ # and any integration-specific delivery payload.
53
+ data:,
54
+ # The timestamp of when the event occurred
55
+ timestamp:,
56
+ # The event type
57
+ type:
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ business_id: String,
65
+ data: Dodopayments::Entitlements::EntitlementGrant,
66
+ timestamp: Time,
67
+ type:
68
+ Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+
75
+ # The event type
76
+ module Type
77
+ extend Dodopayments::Internal::Type::Enum
78
+
79
+ TaggedSymbol =
80
+ T.type_alias do
81
+ T.all(
82
+ Symbol,
83
+ Dodopayments::EntitlementGrantFailedWebhookEvent::Type
84
+ )
85
+ end
86
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
87
+
88
+ ENTITLEMENT_GRANT_FAILED =
89
+ T.let(
90
+ :"entitlement_grant.failed",
91
+ Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
92
+ )
93
+
94
+ sig do
95
+ override.returns(
96
+ T::Array[
97
+ Dodopayments::EntitlementGrantFailedWebhookEvent::Type::TaggedSymbol
98
+ ]
99
+ )
100
+ end
101
+ def self.values
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end