dodopayments 2.18.1 → 2.19.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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/models/checkout_session_request.rb +5 -3
  5. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rb +5 -3
  6. data/lib/dodopayments/models/credit_entitlements/balance_list_grants_response.rb +24 -3
  7. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +3 -3
  8. data/lib/dodopayments/models/customer.rb +3 -3
  9. data/lib/dodopayments/models/customer_create_params.rb +3 -3
  10. data/lib/dodopayments/models/customer_limited_details.rb +3 -3
  11. data/lib/dodopayments/models/customer_list_entitlement_grants_params.rb +85 -0
  12. data/lib/dodopayments/models/customer_update_params.rb +5 -3
  13. data/lib/dodopayments/models/discount.rb +4 -3
  14. data/lib/dodopayments/models/discount_create_params.rb +3 -3
  15. data/lib/dodopayments/models/discount_detail.rb +3 -3
  16. data/lib/dodopayments/models/discount_update_params.rb +5 -3
  17. data/lib/dodopayments/models/entitlement.rb +5 -5
  18. data/lib/dodopayments/models/entitlement_create_params.rb +5 -5
  19. data/lib/dodopayments/models/entitlement_integration_type.rb +1 -0
  20. data/lib/dodopayments/models/entitlement_list_params.rb +1 -0
  21. data/lib/dodopayments/models/entitlement_update_params.rb +12 -5
  22. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +13 -4
  23. data/lib/dodopayments/models/feature.rb +26 -0
  24. data/lib/dodopayments/models/feature_type.rb +15 -0
  25. data/lib/dodopayments/models/integration_config.rb +30 -1
  26. data/lib/dodopayments/models/integration_config_response.rb +22 -1
  27. data/lib/dodopayments/models/metadata.rb +15 -1
  28. data/lib/dodopayments/models/payment.rb +3 -3
  29. data/lib/dodopayments/models/payment_create_params.rb +3 -3
  30. data/lib/dodopayments/models/payment_create_response.rb +3 -3
  31. data/lib/dodopayments/models/payment_list_response.rb +4 -3
  32. data/lib/dodopayments/models/product.rb +3 -3
  33. data/lib/dodopayments/models/product_create_params.rb +3 -3
  34. data/lib/dodopayments/models/product_entitlement_summary.rb +2 -2
  35. data/lib/dodopayments/models/product_list_response.rb +3 -3
  36. data/lib/dodopayments/models/product_update_params.rb +5 -3
  37. data/lib/dodopayments/models/refund.rb +3 -3
  38. data/lib/dodopayments/models/refund_create_params.rb +3 -3
  39. data/lib/dodopayments/models/subscription.rb +3 -3
  40. data/lib/dodopayments/models/subscription_charge_params.rb +5 -3
  41. data/lib/dodopayments/models/subscription_create_params.rb +3 -3
  42. data/lib/dodopayments/models/subscription_create_response.rb +3 -3
  43. data/lib/dodopayments/models/subscription_list_response.rb +3 -3
  44. data/lib/dodopayments/models/subscription_update_params.rb +6 -3
  45. data/lib/dodopayments/models/update_subscription_plan_req.rb +5 -3
  46. data/lib/dodopayments/models.rb +8 -0
  47. data/lib/dodopayments/resources/checkout_sessions.rb +2 -2
  48. data/lib/dodopayments/resources/credit_entitlements/balances.rb +1 -1
  49. data/lib/dodopayments/resources/customers.rb +35 -2
  50. data/lib/dodopayments/resources/discounts.rb +2 -2
  51. data/lib/dodopayments/resources/entitlements.rb +4 -4
  52. data/lib/dodopayments/resources/payments.rb +1 -1
  53. data/lib/dodopayments/resources/products.rb +2 -2
  54. data/lib/dodopayments/resources/refunds.rb +1 -1
  55. data/lib/dodopayments/resources/subscriptions.rb +5 -5
  56. data/lib/dodopayments/version.rb +1 -1
  57. data/lib/dodopayments.rb +3 -0
  58. data/rbi/dodopayments/models/checkout_session_request.rbi +9 -3
  59. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbi +11 -3
  60. data/rbi/dodopayments/models/credit_entitlements/balance_list_grants_response.rbi +13 -3
  61. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +3 -3
  62. data/rbi/dodopayments/models/customer.rbi +12 -4
  63. data/rbi/dodopayments/models/customer_create_params.rbi +12 -4
  64. data/rbi/dodopayments/models/customer_limited_details.rbi +12 -4
  65. data/rbi/dodopayments/models/customer_list_entitlement_grants_params.rbi +229 -0
  66. data/rbi/dodopayments/models/customer_update_params.rbi +9 -3
  67. data/rbi/dodopayments/models/discount.rbi +5 -3
  68. data/rbi/dodopayments/models/discount_create_params.rbi +12 -4
  69. data/rbi/dodopayments/models/discount_detail.rbi +3 -3
  70. data/rbi/dodopayments/models/discount_update_params.rbi +9 -3
  71. data/rbi/dodopayments/models/entitlement.rbi +4 -3
  72. data/rbi/dodopayments/models/entitlement_create_params.rbi +15 -4
  73. data/rbi/dodopayments/models/entitlement_integration_type.rbi +5 -0
  74. data/rbi/dodopayments/models/entitlement_list_params.rbi +5 -0
  75. data/rbi/dodopayments/models/entitlement_update_params.rbi +22 -3
  76. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +16 -3
  77. data/rbi/dodopayments/models/feature.rbi +46 -0
  78. data/rbi/dodopayments/models/feature_type.rbi +21 -0
  79. data/rbi/dodopayments/models/integration_config.rbi +50 -0
  80. data/rbi/dodopayments/models/integration_config_response.rbi +44 -0
  81. data/rbi/dodopayments/models/metadata.rbi +12 -1
  82. data/rbi/dodopayments/models/payment.rbi +3 -3
  83. data/rbi/dodopayments/models/payment_create_params.rbi +12 -4
  84. data/rbi/dodopayments/models/payment_create_response.rbi +3 -3
  85. data/rbi/dodopayments/models/payment_list_response.rbi +5 -3
  86. data/rbi/dodopayments/models/product.rbi +3 -3
  87. data/rbi/dodopayments/models/product_create_params.rbi +12 -4
  88. data/rbi/dodopayments/models/product_entitlement_summary.rbi +1 -0
  89. data/rbi/dodopayments/models/product_list_response.rbi +3 -3
  90. data/rbi/dodopayments/models/product_update_params.rbi +9 -3
  91. data/rbi/dodopayments/models/refund.rbi +3 -3
  92. data/rbi/dodopayments/models/refund_create_params.rbi +12 -4
  93. data/rbi/dodopayments/models/subscription.rbi +3 -3
  94. data/rbi/dodopayments/models/subscription_charge_params.rbi +9 -3
  95. data/rbi/dodopayments/models/subscription_create_params.rbi +12 -4
  96. data/rbi/dodopayments/models/subscription_create_response.rbi +3 -3
  97. data/rbi/dodopayments/models/subscription_list_response.rbi +3 -3
  98. data/rbi/dodopayments/models/subscription_update_params.rbi +11 -3
  99. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +9 -3
  100. data/rbi/dodopayments/models.rbi +9 -0
  101. data/rbi/dodopayments/resources/checkout_sessions.rbi +4 -2
  102. data/rbi/dodopayments/resources/credit_entitlements/balances.rbi +2 -1
  103. data/rbi/dodopayments/resources/customers.rbi +36 -2
  104. data/rbi/dodopayments/resources/discounts.rbi +3 -2
  105. data/rbi/dodopayments/resources/entitlements.rbi +10 -2
  106. data/rbi/dodopayments/resources/payments.rbi +1 -1
  107. data/rbi/dodopayments/resources/products.rbi +3 -2
  108. data/rbi/dodopayments/resources/refunds.rbi +1 -1
  109. data/rbi/dodopayments/resources/subscriptions.rbi +10 -5
  110. data/sig/dodopayments/models/customer_list_entitlement_grants_params.rbs +98 -0
  111. data/sig/dodopayments/models/entitlement_integration_type.rbs +2 -0
  112. data/sig/dodopayments/models/entitlement_list_params.rbs +2 -0
  113. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +5 -0
  114. data/sig/dodopayments/models/feature.rbs +22 -0
  115. data/sig/dodopayments/models/feature_type.rbs +13 -0
  116. data/sig/dodopayments/models/integration_config.rbs +21 -1
  117. data/sig/dodopayments/models/integration_config_response.rbs +21 -1
  118. data/sig/dodopayments/models/metadata.rbs +9 -1
  119. data/sig/dodopayments/models.rbs +8 -0
  120. data/sig/dodopayments/resources/customers.rbs +9 -0
  121. metadata +11 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53e205dc9f7e8ee7ebdaeb422170dbc186e5a6f7e06d1c3cfb535351c9aded9b
4
- data.tar.gz: 889f3b95deae7e7e27703e2792a42c7eacca334b62f077aaea57882b5d26efc8
3
+ metadata.gz: 0a1c544a4176c7c0714185ca6adf9c37fb36def28490b0ab142787bc2b3adf84
4
+ data.tar.gz: 526d3979f72eb82772a3fdc05d77a8a083a720dc38346e492829e6343491df90
5
5
  SHA512:
6
- metadata.gz: 9921852a50435bbccfead823afd4b085c8872a4c1b52fec15f7956a9dfe216faea6d93ad7f054dcf24339d062f2fad55f91cb4464f13470782c47288fa011187
7
- data.tar.gz: 7376387a8df94f986e4e8a0fdcef6df3ce6f0b4b5048e30cddb4758e3414aaecdb538765bcae277086a143fdff466a37740cc42925792816add2c23f6f201f8f
6
+ metadata.gz: fa2892ef06e81edaf152d83e460f117ba34c634984f4321240806f531f2a4f48bcea530b0478961afaa7b6c5e0ff0fe4da306abf55307350ae720cf280d700a2
7
+ data.tar.gz: e2523d71b90539c1919ea64fb6699e90e324bfdeef17567851a8d1e0fab41783f18095ecec460d02fde838c599f62ae6f633190b40e78a8a2bd819d1e3665b42
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.19.0](https://github.com/dodopayments/dodopayments-ruby/compare/v2.18.1...v2.19.0) (2026-07-04)
4
+
5
+
6
+ ### Features
7
+
8
+ * **api:** register Feature/FeatureType models and expose customer entitlement-grants list endpoint ([e0a2559](https://github.com/dodopayments/dodopayments-ruby/commit/e0a2559136a4c577fd58c08445a6d54e5aa5036c))
9
+ * **api:** register Feature/FeatureType models and expose customer entitlement-grants list endpoint ([b4e6b71](https://github.com/dodopayments/dodopayments-ruby/commit/b4e6b7103d93dd44e282a3143a235f4ddc0b6068))
10
+
3
11
  ## [2.18.1](https://github.com/dodopayments/dodopayments-ruby/compare/v2.18.0...v2.18.1) (2026-06-27)
4
12
 
5
13
 
data/README.md CHANGED
@@ -23,7 +23,7 @@ To use this gem, install via Bundler by adding the following to your application
23
23
  <!-- x-release-please-start-version -->
24
24
 
25
25
  ```ruby
26
- gem "dodopayments", "~> 2.18.1"
26
+ gem "dodopayments", "~> 2.19.0"
27
27
  ```
28
28
 
29
29
  <!-- x-release-please-end -->
@@ -117,8 +117,10 @@ module Dodopayments
117
117
  # Additional metadata associated with the payment. Defaults to empty if not
118
118
  # provided.
119
119
  #
120
- # @return [Hash{Symbol=>String}, nil]
121
- optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
120
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
121
+ optional :metadata,
122
+ -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] },
123
+ nil?: true
122
124
 
123
125
  # @!attribute minimal_address
124
126
  # If true, only zipcode is required when confirm is true; other address fields
@@ -204,7 +206,7 @@ module Dodopayments
204
206
  #
205
207
  # @param mandate_min_amount_inr_paise [Integer, nil] Override the merchant-level mandate floor (in INR paise) for INR
206
208
  #
207
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
209
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
208
210
  #
209
211
  # @param minimal_address [Boolean] If true, only zipcode is required when confirm is true; other address fields rem
210
212
  #
@@ -46,8 +46,10 @@ module Dodopayments
46
46
  # Optional metadata (max 50 key-value pairs, key max 40 chars, value max 500
47
47
  # chars)
48
48
  #
49
- # @return [Hash{Symbol=>String}, nil]
50
- optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
49
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
50
+ optional :metadata,
51
+ -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] },
52
+ nil?: true
51
53
 
52
54
  # @!attribute reason
53
55
  # Human-readable reason for the entry
@@ -72,7 +74,7 @@ module Dodopayments
72
74
  #
73
75
  # @param idempotency_key [String, nil] Idempotency key to prevent duplicate entries
74
76
  #
75
- # @param metadata [Hash{Symbol=>String}, nil] Optional metadata (max 50 key-value pairs, key max 40 chars, value max 500 chars
77
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Optional metadata (max 50 key-value pairs, key max 40 chars, value max 500 chars
76
78
  #
77
79
  # @param reason [String, nil] Human-readable reason for the entry
78
80
  #
@@ -67,9 +67,12 @@ module Dodopayments
67
67
  optional :expires_at, Time, nil?: true
68
68
 
69
69
  # @!attribute metadata
70
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
70
71
  #
71
- # @return [Hash{Symbol=>String}, nil]
72
- optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
72
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
73
+ optional :metadata,
74
+ -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] },
75
+ nil?: true
73
76
 
74
77
  # @!attribute parent_grant_id
75
78
  #
@@ -82,22 +85,40 @@ module Dodopayments
82
85
  optional :source_id, String, nil?: true
83
86
 
84
87
  # @!method initialize(id:, created_at:, credit_entitlement_id:, customer_id:, initial_amount:, is_expired:, is_rolled_over:, remaining_amount:, rollover_count:, source_type:, updated_at:, expires_at: nil, metadata: nil, parent_grant_id: nil, source_id: nil)
88
+ # Some parameter documentations has been truncated, see
89
+ # {Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse} for more
90
+ # details.
91
+ #
85
92
  # Response for a credit grant
86
93
  #
87
94
  # @param id [String]
95
+ #
88
96
  # @param created_at [Time]
97
+ #
89
98
  # @param credit_entitlement_id [String]
99
+ #
90
100
  # @param customer_id [String]
101
+ #
91
102
  # @param initial_amount [String]
103
+ #
92
104
  # @param is_expired [Boolean]
105
+ #
93
106
  # @param is_rolled_over [Boolean]
107
+ #
94
108
  # @param remaining_amount [String]
109
+ #
95
110
  # @param rollover_count [Integer]
111
+ #
96
112
  # @param source_type [Symbol, Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse::SourceType]
113
+ #
97
114
  # @param updated_at [Time]
115
+ #
98
116
  # @param expires_at [Time, nil]
99
- # @param metadata [Hash{Symbol=>String}, nil]
117
+ #
118
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
119
+ #
100
120
  # @param parent_grant_id [String, nil]
121
+ #
101
122
  # @param source_id [String, nil]
102
123
 
103
124
  # @see Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse#source_type
@@ -61,8 +61,8 @@ module Dodopayments
61
61
  # created at checkout). Empty when the grant has no resolvable source (e.g.
62
62
  # credits granted directly via the API).
63
63
  #
64
- # @return [Hash{Symbol=>String}]
65
- required :metadata, Dodopayments::Internal::Type::HashOf[String]
64
+ # @return [Hash{Symbol=>String, Float, Boolean}]
65
+ required :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
66
66
 
67
67
  # @!attribute overage_after
68
68
  #
@@ -126,7 +126,7 @@ module Dodopayments
126
126
  #
127
127
  # @param is_credit [Boolean]
128
128
  #
129
- # @param metadata [Hash{Symbol=>String}] Metadata associated with the credit grant's source (the subscription or
129
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Metadata associated with the credit grant's source (the subscription or
130
130
  #
131
131
  # @param overage_after [String]
132
132
  #
@@ -32,8 +32,8 @@ module Dodopayments
32
32
  # @!attribute metadata
33
33
  # Additional metadata for the customer
34
34
  #
35
- # @return [Hash{Symbol=>String}, nil]
36
- optional :metadata, Dodopayments::Internal::Type::HashOf[String]
35
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
36
+ optional :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
37
37
 
38
38
  # @!attribute phone_number
39
39
  #
@@ -51,7 +51,7 @@ module Dodopayments
51
51
  #
52
52
  # @param name [String]
53
53
  #
54
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the customer
54
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the customer
55
55
  #
56
56
  # @param phone_number [String, nil]
57
57
  end
@@ -20,8 +20,8 @@ module Dodopayments
20
20
  # @!attribute metadata
21
21
  # Additional metadata for the customer
22
22
  #
23
- # @return [Hash{Symbol=>String}, nil]
24
- optional :metadata, Dodopayments::Internal::Type::HashOf[String]
23
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
24
+ optional :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
25
25
 
26
26
  # @!attribute phone_number
27
27
  #
@@ -33,7 +33,7 @@ module Dodopayments
33
33
  #
34
34
  # @param name [String]
35
35
  #
36
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the customer
36
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the customer
37
37
  #
38
38
  # @param phone_number [String, nil]
39
39
  #
@@ -24,8 +24,8 @@ module Dodopayments
24
24
  # @!attribute metadata
25
25
  # Additional metadata associated with the customer
26
26
  #
27
- # @return [Hash{Symbol=>String}, nil]
28
- optional :metadata, Dodopayments::Internal::Type::HashOf[String]
27
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
28
+ optional :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
29
29
 
30
30
  # @!attribute phone_number
31
31
  # Phone number of the customer
@@ -40,7 +40,7 @@ module Dodopayments
40
40
  #
41
41
  # @param name [String] Full name of the customer
42
42
  #
43
- # @param metadata [Hash{Symbol=>String}] Additional metadata associated with the customer
43
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata associated with the customer
44
44
  #
45
45
  # @param phone_number [String, nil] Phone number of the customer
46
46
  end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @see Dodopayments::Resources::Customers#list_entitlement_grants
6
+ class CustomerListEntitlementGrantsParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ # @!attribute customer_id
11
+ #
12
+ # @return [String]
13
+ required :customer_id, String
14
+
15
+ # @!attribute integration_type
16
+ # Filter by integration type (e.g. `feature_flag`)
17
+ #
18
+ # @return [Symbol, Dodopayments::Models::CustomerListEntitlementGrantsParams::IntegrationType, nil]
19
+ optional :integration_type,
20
+ enum: -> { Dodopayments::CustomerListEntitlementGrantsParams::IntegrationType }
21
+
22
+ # @!attribute page_number
23
+ # Page number (default 0)
24
+ #
25
+ # @return [Integer, nil]
26
+ optional :page_number, Integer
27
+
28
+ # @!attribute page_size
29
+ # Page size (default 10, max 100)
30
+ #
31
+ # @return [Integer, nil]
32
+ optional :page_size, Integer
33
+
34
+ # @!attribute status
35
+ # Filter by grant status
36
+ #
37
+ # @return [Symbol, Dodopayments::Models::CustomerListEntitlementGrantsParams::Status, nil]
38
+ optional :status, enum: -> { Dodopayments::CustomerListEntitlementGrantsParams::Status }
39
+
40
+ # @!method initialize(customer_id:, integration_type: nil, page_number: nil, page_size: nil, status: nil, request_options: {})
41
+ # @param customer_id [String]
42
+ #
43
+ # @param integration_type [Symbol, Dodopayments::Models::CustomerListEntitlementGrantsParams::IntegrationType] Filter by integration type (e.g. `feature_flag`)
44
+ #
45
+ # @param page_number [Integer] Page number (default 0)
46
+ #
47
+ # @param page_size [Integer] Page size (default 10, max 100)
48
+ #
49
+ # @param status [Symbol, Dodopayments::Models::CustomerListEntitlementGrantsParams::Status] Filter by grant status
50
+ #
51
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
52
+
53
+ # Filter by integration type (e.g. `feature_flag`)
54
+ module IntegrationType
55
+ extend Dodopayments::Internal::Type::Enum
56
+
57
+ DISCORD = :discord
58
+ TELEGRAM = :telegram
59
+ GITHUB = :github
60
+ FIGMA = :figma
61
+ FRAMER = :framer
62
+ NOTION = :notion
63
+ DIGITAL_FILES = :digital_files
64
+ LICENSE_KEY = :license_key
65
+ FEATURE_FLAG = :feature_flag
66
+
67
+ # @!method self.values
68
+ # @return [Array<Symbol>]
69
+ end
70
+
71
+ # Filter by grant status
72
+ module Status
73
+ extend Dodopayments::Internal::Type::Enum
74
+
75
+ PENDING = :Pending
76
+ DELIVERED = :Delivered
77
+ FAILED = :Failed
78
+ REVOKED = :Revoked
79
+
80
+ # @!method self.values
81
+ # @return [Array<Symbol>]
82
+ end
83
+ end
84
+ end
85
+ end
@@ -20,8 +20,10 @@ module Dodopayments
20
20
  # @!attribute metadata
21
21
  # Additional metadata for the customer
22
22
  #
23
- # @return [Hash{Symbol=>String}, nil]
24
- optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
23
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
24
+ optional :metadata,
25
+ -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] },
26
+ nil?: true
25
27
 
26
28
  # @!attribute name
27
29
  #
@@ -38,7 +40,7 @@ module Dodopayments
38
40
  #
39
41
  # @param email [String, nil]
40
42
  #
41
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata for the customer
43
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata for the customer
42
44
  #
43
45
  # @param name [String, nil]
44
46
  #
@@ -35,9 +35,10 @@ module Dodopayments
35
35
  required :discount_id, String
36
36
 
37
37
  # @!attribute metadata
38
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
38
39
  #
39
- # @return [Hash{Symbol=>String}]
40
- required :metadata, Dodopayments::Internal::Type::HashOf[String]
40
+ # @return [Hash{Symbol=>String, Float, Boolean}]
41
+ required :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
41
42
 
42
43
  # @!attribute preserve_on_plan_change
43
44
  # Whether this discount should be preserved when a subscription changes plans.
@@ -104,7 +105,7 @@ module Dodopayments
104
105
  #
105
106
  # @param discount_id [String] The unique discount ID
106
107
  #
107
- # @param metadata [Hash{Symbol=>String}]
108
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
108
109
  #
109
110
  # @param preserve_on_plan_change [Boolean] Whether this discount should be preserved when a subscription changes plans.
110
111
  #
@@ -40,8 +40,8 @@ module Dodopayments
40
40
  # @!attribute metadata
41
41
  # Additional metadata for the discount
42
42
  #
43
- # @return [Hash{Symbol=>String}, nil]
44
- optional :metadata, Dodopayments::Internal::Type::HashOf[String]
43
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
44
+ optional :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
45
45
 
46
46
  # @!attribute name
47
47
  #
@@ -87,7 +87,7 @@ module Dodopayments
87
87
  #
88
88
  # @param expires_at [Time, nil] When the discount expires, if ever.
89
89
  #
90
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the discount
90
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the discount
91
91
  #
92
92
  # @param name [String, nil]
93
93
  #
@@ -36,8 +36,8 @@ module Dodopayments
36
36
  # @!attribute metadata
37
37
  # Additional metadata
38
38
  #
39
- # @return [Hash{Symbol=>String}]
40
- required :metadata, Dodopayments::Internal::Type::HashOf[String]
39
+ # @return [Hash{Symbol=>String, Float, Boolean}]
40
+ required :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
41
41
 
42
42
  # @!attribute position
43
43
  # Position of this discount in the stack (0-based)
@@ -117,7 +117,7 @@ module Dodopayments
117
117
  #
118
118
  # @param discount_id [String] The unique discount ID
119
119
  #
120
- # @param metadata [Hash{Symbol=>String}] Additional metadata
120
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata
121
121
  #
122
122
  # @param position [Integer] Position of this discount in the stack (0-based)
123
123
  #
@@ -35,8 +35,10 @@ module Dodopayments
35
35
  # @!attribute metadata
36
36
  # Additional metadata for the discount
37
37
  #
38
- # @return [Hash{Symbol=>String}, nil]
39
- optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
38
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
39
+ optional :metadata,
40
+ -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] },
41
+ nil?: true
40
42
 
41
43
  # @!attribute name
42
44
  #
@@ -88,7 +90,7 @@ module Dodopayments
88
90
  #
89
91
  # @param expires_at [Time, nil]
90
92
  #
91
- # @param metadata [Hash{Symbol=>String}, nil] Additional metadata for the discount
93
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata for the discount
92
94
  #
93
95
  # @param name [String, nil]
94
96
  #
@@ -26,7 +26,7 @@ module Dodopayments
26
26
  # Integration-specific configuration. For `digital_files` entitlements this
27
27
  # includes presigned download URLs for each attached file.
28
28
  #
29
- # @return [Dodopayments::Models::IntegrationConfigResponse::GitHubConfig, Dodopayments::Models::IntegrationConfigResponse::DiscordConfig, Dodopayments::Models::IntegrationConfigResponse::TelegramConfig, Dodopayments::Models::IntegrationConfigResponse::FigmaConfig, Dodopayments::Models::IntegrationConfigResponse::FramerConfig, Dodopayments::Models::IntegrationConfigResponse::NotionConfig, Dodopayments::Models::IntegrationConfigResponse::DigitalFilesConfig, Dodopayments::Models::IntegrationConfigResponse::LicenseKeyConfig]
29
+ # @return [Dodopayments::Models::IntegrationConfigResponse::FeatureFlagConfig, Dodopayments::Models::IntegrationConfigResponse::GitHubConfig, Dodopayments::Models::IntegrationConfigResponse::DiscordConfig, Dodopayments::Models::IntegrationConfigResponse::TelegramConfig, Dodopayments::Models::IntegrationConfigResponse::FigmaConfig, Dodopayments::Models::IntegrationConfigResponse::FramerConfig, Dodopayments::Models::IntegrationConfigResponse::NotionConfig, Dodopayments::Models::IntegrationConfigResponse::DigitalFilesConfig, Dodopayments::Models::IntegrationConfigResponse::LicenseKeyConfig]
30
30
  required :integration_config, union: -> { Dodopayments::IntegrationConfigResponse }
31
31
 
32
32
  # @!attribute integration_type
@@ -45,8 +45,8 @@ module Dodopayments
45
45
  # @!attribute metadata
46
46
  # Arbitrary key-value metadata supplied at creation or via PATCH.
47
47
  #
48
- # @return [Hash{Symbol=>String}]
49
- required :metadata, Dodopayments::Internal::Type::HashOf[String]
48
+ # @return [Hash{Symbol=>String, Float, Boolean}]
49
+ required :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
50
50
 
51
51
  # @!attribute name
52
52
  # Display name supplied at creation.
@@ -79,13 +79,13 @@ module Dodopayments
79
79
  #
80
80
  # @param created_at [Time] Timestamp when the entitlement was created.
81
81
  #
82
- # @param integration_config [Dodopayments::Models::IntegrationConfigResponse::GitHubConfig, Dodopayments::Models::IntegrationConfigResponse::DiscordConfig, Dodopayments::Models::IntegrationConfigResponse::TelegramConfig, Dodopayments::Models::IntegrationConfigResponse::FigmaConfig, Dodopayments::Models::IntegrationConfigResponse::FramerConfig, Dodopayments::Models::IntegrationConfigResponse::NotionConfig, Dodopayments::Models::IntegrationConfigResponse::DigitalFilesConfig, Dodopayments::Models::IntegrationConfigResponse::LicenseKeyConfig] Integration-specific configuration. For `digital_files` entitlements
82
+ # @param integration_config [Dodopayments::Models::IntegrationConfigResponse::FeatureFlagConfig, Dodopayments::Models::IntegrationConfigResponse::GitHubConfig, Dodopayments::Models::IntegrationConfigResponse::DiscordConfig, Dodopayments::Models::IntegrationConfigResponse::TelegramConfig, Dodopayments::Models::IntegrationConfigResponse::FigmaConfig, Dodopayments::Models::IntegrationConfigResponse::FramerConfig, Dodopayments::Models::IntegrationConfigResponse::NotionConfig, Dodopayments::Models::IntegrationConfigResponse::DigitalFilesConfig, Dodopayments::Models::IntegrationConfigResponse::LicenseKeyConfig] Integration-specific configuration. For `digital_files` entitlements
83
83
  #
84
84
  # @param integration_type [Symbol, Dodopayments::Models::EntitlementIntegrationType] Platform integration this entitlement uses.
85
85
  #
86
86
  # @param is_active [Boolean] Always `true` for entitlements returned by the public API;
87
87
  #
88
- # @param metadata [Hash{Symbol=>String}] Arbitrary key-value metadata supplied at creation or via PATCH.
88
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Arbitrary key-value metadata supplied at creation or via PATCH.
89
89
  #
90
90
  # @param name [String] Display name supplied at creation.
91
91
  #
@@ -10,7 +10,7 @@ module Dodopayments
10
10
  # @!attribute integration_config
11
11
  # Platform-specific configuration (validated per integration_type)
12
12
  #
13
- # @return [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig]
13
+ # @return [Dodopayments::Models::IntegrationConfig::FeatureFlagConfig, Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig]
14
14
  required :integration_config, union: -> { Dodopayments::IntegrationConfig }
15
15
 
16
16
  # @!attribute integration_type
@@ -34,11 +34,11 @@ module Dodopayments
34
34
  # @!attribute metadata
35
35
  # Additional metadata for the entitlement
36
36
  #
37
- # @return [Hash{Symbol=>String}, nil]
38
- optional :metadata, Dodopayments::Internal::Type::HashOf[String]
37
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
38
+ optional :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
39
39
 
40
40
  # @!method initialize(integration_config:, integration_type:, name:, description: nil, metadata: nil, request_options: {})
41
- # @param integration_config [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig] Platform-specific configuration (validated per integration_type)
41
+ # @param integration_config [Dodopayments::Models::IntegrationConfig::FeatureFlagConfig, Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig] Platform-specific configuration (validated per integration_type)
42
42
  #
43
43
  # @param integration_type [Symbol, Dodopayments::Models::EntitlementIntegrationType] Which platform integration this entitlement uses
44
44
  #
@@ -46,7 +46,7 @@ module Dodopayments
46
46
  #
47
47
  # @param description [String, nil] Optional description
48
48
  #
49
- # @param metadata [Hash{Symbol=>String}] Additional metadata for the entitlement
49
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the entitlement
50
50
  #
51
51
  # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
52
52
  end
@@ -13,6 +13,7 @@ module Dodopayments
13
13
  NOTION = :notion
14
14
  DIGITAL_FILES = :digital_files
15
15
  LICENSE_KEY = :license_key
16
+ FEATURE_FLAG = :feature_flag
16
17
 
17
18
  # @!method self.values
18
19
  # @return [Array<Symbol>]
@@ -46,6 +46,7 @@ module Dodopayments
46
46
  NOTION = :notion
47
47
  DIGITAL_FILES = :digital_files
48
48
  LICENSE_KEY = :license_key
49
+ FEATURE_FLAG = :feature_flag
49
50
 
50
51
  # @!method self.values
51
52
  # @return [Array<Symbol>]
@@ -21,13 +21,20 @@ module Dodopayments
21
21
  # Integration-specific configuration supplied when creating or updating an
22
22
  # entitlement. The shape required matches the entitlement's `integration_type`.
23
23
  #
24
- # @return [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig, nil]
24
+ # Untagged enum: variants are matched in order. `FeatureFlag` must precede
25
+ # `LicenseKey`, whose fields are all optional and would otherwise match a
26
+ # `feature_flag` config.
27
+ #
28
+ # @return [Dodopayments::Models::IntegrationConfig::FeatureFlagConfig, Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig, nil]
25
29
  optional :integration_config, union: -> { Dodopayments::IntegrationConfig }, nil?: true
26
30
 
27
31
  # @!attribute metadata
32
+ # Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
28
33
  #
29
- # @return [Hash{Symbol=>String}, nil]
30
- optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
34
+ # @return [Hash{Symbol=>String, Float, Boolean}, nil]
35
+ optional :metadata,
36
+ -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] },
37
+ nil?: true
31
38
 
32
39
  # @!attribute name
33
40
  #
@@ -42,9 +49,9 @@ module Dodopayments
42
49
  #
43
50
  # @param description [String, nil]
44
51
  #
45
- # @param integration_config [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig, nil] Integration-specific configuration supplied when creating or updating
52
+ # @param integration_config [Dodopayments::Models::IntegrationConfig::FeatureFlagConfig, Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig, nil] Integration-specific configuration supplied when creating or updating
46
53
  #
47
- # @param metadata [Hash{Symbol=>String}, nil]
54
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Arbitrary key-value metadata. Values can be string, integer, number, or boolean.
48
55
  #
49
56
  # @param name [String, nil]
50
57
  #
@@ -50,8 +50,8 @@ module Dodopayments
50
50
  # @!attribute metadata
51
51
  # Arbitrary key-value metadata recorded on the grant.
52
52
  #
53
- # @return [Hash{Symbol=>String}]
54
- required :metadata, Dodopayments::Internal::Type::HashOf[String]
53
+ # @return [Hash{Symbol=>String, Float, Boolean}]
54
+ required :metadata, -> { Dodopayments::Internal::Type::HashOf[union: Dodopayments::MetadataItem] }
55
55
 
56
56
  # @!attribute status
57
57
  # Lifecycle status of the grant.
@@ -90,6 +90,13 @@ module Dodopayments
90
90
  # @return [String, nil]
91
91
  optional :error_message, String, nil?: true
92
92
 
93
+ # @!attribute feature
94
+ # Typed feature payload, present only when the entitlement integration is
95
+ # `feature_flag`; `null` for every other integration type.
96
+ #
97
+ # @return [Dodopayments::Models::Feature, nil]
98
+ optional :feature, -> { Dodopayments::Feature }, nil?: true
99
+
93
100
  # @!attribute license_key
94
101
  # License-key delivery payload, present when the entitlement integration is
95
102
  # `license_key`.
@@ -135,7 +142,7 @@ module Dodopayments
135
142
  # @return [String, nil]
136
143
  optional :subscription_id, String, nil?: true
137
144
 
138
- # @!method initialize(id:, brand_id:, business_id:, created_at:, customer_id:, entitlement_id:, integration_type:, metadata:, status:, updated_at:, delivered_at: nil, digital_product_delivery: nil, error_code: nil, error_message: nil, license_key: nil, oauth_expires_at: nil, oauth_url: nil, payment_id: nil, revocation_reason: nil, revoked_at: nil, subscription_id: nil)
145
+ # @!method initialize(id:, brand_id:, business_id:, created_at:, customer_id:, entitlement_id:, integration_type:, metadata:, status:, updated_at:, delivered_at: nil, digital_product_delivery: nil, error_code: nil, error_message: nil, feature: nil, license_key: nil, oauth_expires_at: nil, oauth_url: nil, payment_id: nil, revocation_reason: nil, revoked_at: nil, subscription_id: nil)
139
146
  # Some parameter documentations has been truncated, see
140
147
  # {Dodopayments::Models::Entitlements::EntitlementGrant} for more details.
141
148
  #
@@ -156,7 +163,7 @@ module Dodopayments
156
163
  #
157
164
  # @param integration_type [Symbol, Dodopayments::Models::EntitlementIntegrationType] The integration type of the grant's entitlement (e.g. `license_key`).
158
165
  #
159
- # @param metadata [Hash{Symbol=>String}] Arbitrary key-value metadata recorded on the grant.
166
+ # @param metadata [Hash{Symbol=>String, Float, Boolean}] Arbitrary key-value metadata recorded on the grant.
160
167
  #
161
168
  # @param status [Symbol, Dodopayments::Models::Entitlements::EntitlementGrant::Status] Lifecycle status of the grant.
162
169
  #
@@ -170,6 +177,8 @@ module Dodopayments
170
177
  #
171
178
  # @param error_message [String, nil] Human-readable message reported when delivery failed, when applicable.
172
179
  #
180
+ # @param feature [Dodopayments::Models::Feature, nil] Typed feature payload, present only when the entitlement integration is
181
+ #
173
182
  # @param license_key [Dodopayments::Models::Entitlements::LicenseKeyGrant, nil] License-key delivery payload, present when the entitlement integration
174
183
  #
175
184
  # @param oauth_expires_at [Time, nil] Timestamp when `oauth_url` stops being valid, when applicable.
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class Feature < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute feature_id
7
+ # Identifier of the capability this grant confers.
8
+ #
9
+ # @return [String]
10
+ required :feature_id, String
11
+
12
+ # @!attribute feature_type
13
+ # Type of capability conferred.
14
+ #
15
+ # @return [Symbol, Dodopayments::Models::FeatureType]
16
+ required :feature_type, enum: -> { Dodopayments::FeatureType }
17
+
18
+ # @!method initialize(feature_id:, feature_type:)
19
+ # Capability conferred by a `feature_flag` grant.
20
+ #
21
+ # @param feature_id [String] Identifier of the capability this grant confers.
22
+ #
23
+ # @param feature_type [Symbol, Dodopayments::Models::FeatureType] Type of capability conferred.
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # Type of capability a `feature_flag` entitlement confers.
6
+ module FeatureType
7
+ extend Dodopayments::Internal::Type::Enum
8
+
9
+ BOOLEAN = :boolean
10
+
11
+ # @!method self.values
12
+ # @return [Array<Symbol>]
13
+ end
14
+ end
15
+ end