clerk-sdk-ruby 5.1.2 → 5.1.3

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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/lib/clerk/actortokens.rb +11 -3
  3. data/lib/clerk/agenttasks.rb +335 -0
  4. data/lib/clerk/allowlistidentifiers.rb +15 -4
  5. data/lib/clerk/api_keys.rb +35 -9
  6. data/lib/clerk/betafeatures.rb +11 -3
  7. data/lib/clerk/billing.rb +43 -11
  8. data/lib/clerk/blocklistidentifiers.rb +15 -4
  9. data/lib/clerk/clients.rb +15 -4
  10. data/lib/clerk/domains.rb +19 -5
  11. data/lib/clerk/emailaddresses.rb +21 -7
  12. data/lib/clerk/emailandsmstemplates.rb +7 -2
  13. data/lib/clerk/emailsmstemplates.rb +19 -5
  14. data/lib/clerk/instancesettings.rb +299 -8
  15. data/lib/clerk/invitations.rb +19 -5
  16. data/lib/clerk/jwks.rb +7 -2
  17. data/lib/clerk/jwttemplates.rb +23 -6
  18. data/lib/clerk/m2m.rb +23 -5
  19. data/lib/clerk/machines.rb +39 -10
  20. data/lib/clerk/miscellaneous.rb +7 -2
  21. data/lib/clerk/models/components/action.rb +20 -0
  22. data/lib/clerk/models/components/action.rbi +11 -0
  23. data/lib/clerk/models/components/adjustcreditbalancerequest.rb +48 -0
  24. data/lib/clerk/models/components/adjustcreditbalancerequest.rbi +21 -0
  25. data/lib/clerk/models/components/agenttask.rb +47 -0
  26. data/lib/clerk/models/components/agenttask.rbi +19 -0
  27. data/lib/clerk/models/components/agenttask_object.rb +19 -0
  28. data/lib/clerk/models/components/agenttask_object.rbi +11 -0
  29. data/lib/clerk/models/components/balance.rb +44 -0
  30. data/lib/clerk/models/components/balance.rbi +19 -0
  31. data/lib/clerk/models/components/billingpaymentattempt.rb +5 -1
  32. data/lib/clerk/models/components/billingpaymentattempt.rbi +2 -0
  33. data/lib/clerk/models/components/billingpaymentattempt_credits.rb +40 -0
  34. data/lib/clerk/models/components/billingpaymentattempt_credits.rbi +17 -0
  35. data/lib/clerk/models/components/billingpaymentattempt_payer.rb +36 -0
  36. data/lib/clerk/models/components/billingpaymentattempt_payer.rbi +15 -0
  37. data/lib/clerk/models/components/billingpaymentattempt_proration.rb +44 -0
  38. data/lib/clerk/models/components/billingpaymentattempt_proration.rbi +19 -0
  39. data/lib/clerk/models/components/billingpaymentattempt_totals.rb +52 -0
  40. data/lib/clerk/models/components/billingpaymentattempt_totals.rbi +23 -0
  41. data/lib/clerk/models/components/billingpriceresponse.rb +5 -1
  42. data/lib/clerk/models/components/billingpriceresponse.rbi +2 -0
  43. data/lib/clerk/models/components/billingstatement.rb +1 -1
  44. data/lib/clerk/models/components/{totals.rb → billingstatement_totals.rb} +6 -2
  45. data/lib/clerk/models/components/{totals.rbi → billingstatement_totals.rbi} +4 -2
  46. data/lib/clerk/models/components/commercecreditbalanceresponse.rb +36 -0
  47. data/lib/clerk/models/components/commercecreditbalanceresponse.rbi +15 -0
  48. data/lib/clerk/models/components/commercecreditledgerresponse.rb +64 -0
  49. data/lib/clerk/models/components/commercecreditledgerresponse.rbi +29 -0
  50. data/lib/clerk/models/components/commerceperunittotal.rb +40 -0
  51. data/lib/clerk/models/components/commerceperunittotal.rbi +17 -0
  52. data/lib/clerk/models/components/commerceperunittotaltier.rb +40 -0
  53. data/lib/clerk/models/components/commerceperunittotaltier.rbi +17 -0
  54. data/lib/clerk/models/components/commerceplan.rb +5 -1
  55. data/lib/clerk/models/components/commerceplan.rbi +2 -0
  56. data/lib/clerk/models/components/commerceplanunitprice.rb +40 -0
  57. data/lib/clerk/models/components/commerceplanunitprice.rbi +17 -0
  58. data/lib/clerk/models/components/commerceplanunitpricetier.rb +40 -0
  59. data/lib/clerk/models/components/commerceplanunitpricetier.rbi +17 -0
  60. data/lib/clerk/models/components/commercesubscriptionitem.rb +13 -1
  61. data/lib/clerk/models/components/commercesubscriptionitem.rbi +6 -0
  62. data/lib/clerk/models/components/commercesubscriptionitem_credits.rb +40 -0
  63. data/lib/clerk/models/components/commercesubscriptionitem_credits.rbi +17 -0
  64. data/lib/clerk/models/components/commercesubscriptionitem_payer.rb +36 -0
  65. data/lib/clerk/models/components/commercesubscriptionitem_payer.rbi +15 -0
  66. data/lib/clerk/models/components/commercesubscriptionitem_plan.rb +5 -1
  67. data/lib/clerk/models/components/commercesubscriptionitem_plan.rbi +2 -0
  68. data/lib/clerk/models/components/commercesubscriptionitem_proration.rb +44 -0
  69. data/lib/clerk/models/components/commercesubscriptionitem_proration.rbi +19 -0
  70. data/lib/clerk/models/components/commercesubscriptionitem_totals.rb +52 -0
  71. data/lib/clerk/models/components/commercesubscriptionitem_totals.rbi +23 -0
  72. data/lib/clerk/models/components/commercesubscriptionitem_totals_credits.rb +40 -0
  73. data/lib/clerk/models/components/commercesubscriptionitem_totals_credits.rbi +17 -0
  74. data/lib/clerk/models/components/commercesubscriptionitem_totals_payer.rb +36 -0
  75. data/lib/clerk/models/components/commercesubscriptionitem_totals_payer.rbi +15 -0
  76. data/lib/clerk/models/components/commercesubscriptionitem_totals_proration.rb +44 -0
  77. data/lib/clerk/models/components/commercesubscriptionitem_totals_proration.rbi +19 -0
  78. data/lib/clerk/models/components/oauthapplicationsettings.rb +40 -0
  79. data/lib/clerk/models/components/oauthapplicationsettings.rbi +17 -0
  80. data/lib/clerk/models/components/oauthapplicationsettings_object.rb +19 -0
  81. data/lib/clerk/models/components/oauthapplicationsettings_object.rbi +11 -0
  82. data/lib/clerk/models/components/schemas_commercesubscriptionitem.rb +1 -1
  83. data/lib/clerk/models/components/{payer.rb → schemas_commercesubscriptionitem_payer.rb} +1 -1
  84. data/lib/clerk/models/components/{payer.rbi → schemas_commercesubscriptionitem_payer.rbi} +2 -2
  85. data/lib/clerk/models/components/seats.rb +32 -0
  86. data/lib/clerk/models/components/seats.rbi +13 -0
  87. data/lib/clerk/models/components.rb +27 -2
  88. data/lib/clerk/models/operations/adjustorganizationbillingcreditbalance_request.rb +36 -0
  89. data/lib/clerk/models/operations/adjustorganizationbillingcreditbalance_request.rbi +15 -0
  90. data/lib/clerk/models/operations/adjustorganizationbillingcreditbalance_response.rb +44 -0
  91. data/lib/clerk/models/operations/adjustorganizationbillingcreditbalance_response.rbi +19 -0
  92. data/lib/clerk/models/operations/adjustuserbillingcreditbalance_request.rb +36 -0
  93. data/lib/clerk/models/operations/adjustuserbillingcreditbalance_request.rbi +15 -0
  94. data/lib/clerk/models/operations/adjustuserbillingcreditbalance_response.rb +44 -0
  95. data/lib/clerk/models/operations/adjustuserbillingcreditbalance_response.rbi +19 -0
  96. data/lib/clerk/models/operations/createagenttask_request.rb +60 -0
  97. data/lib/clerk/models/operations/createagenttask_request.rbi +23 -0
  98. data/lib/clerk/models/operations/createagenttask_response.rb +44 -0
  99. data/lib/clerk/models/operations/createagenttask_response.rbi +19 -0
  100. data/lib/clerk/models/operations/createm2mtoken_request.rb +5 -1
  101. data/lib/clerk/models/operations/createm2mtoken_request.rbi +2 -0
  102. data/lib/clerk/models/operations/getinstanceoauthapplicationsettings_response.rb +44 -0
  103. data/lib/clerk/models/operations/getinstanceoauthapplicationsettings_response.rbi +19 -0
  104. data/lib/clerk/models/operations/getorganizationbillingcreditbalance_request.rb +32 -0
  105. data/lib/clerk/models/operations/getorganizationbillingcreditbalance_request.rbi +13 -0
  106. data/lib/clerk/models/operations/getorganizationbillingcreditbalance_response.rb +44 -0
  107. data/lib/clerk/models/operations/getorganizationbillingcreditbalance_response.rbi +19 -0
  108. data/lib/clerk/models/operations/getuserbillingcreditbalance_request.rb +32 -0
  109. data/lib/clerk/models/operations/getuserbillingcreditbalance_request.rbi +13 -0
  110. data/lib/clerk/models/operations/getuserbillingcreditbalance_response.rb +44 -0
  111. data/lib/clerk/models/operations/getuserbillingcreditbalance_response.rbi +19 -0
  112. data/lib/clerk/models/operations/listinstanceorganizationinvitations_status.rb +1 -0
  113. data/lib/clerk/models/operations/listorganizationinvitations_status.rb +1 -0
  114. data/lib/clerk/models/operations/on_behalf_of.rb +37 -0
  115. data/lib/clerk/models/operations/on_behalf_of.rbi +15 -0
  116. data/lib/clerk/models/operations/permissions.rb +19 -0
  117. data/lib/clerk/models/operations/permissions.rbi +11 -0
  118. data/lib/clerk/models/operations/revokeagenttask_request.rb +32 -0
  119. data/lib/clerk/models/operations/revokeagenttask_request.rbi +13 -0
  120. data/lib/clerk/models/operations/revokeagenttask_response.rb +44 -0
  121. data/lib/clerk/models/operations/revokeagenttask_response.rbi +19 -0
  122. data/lib/clerk/models/operations/token_format.rb +20 -0
  123. data/lib/clerk/models/operations/token_format.rbi +11 -0
  124. data/lib/clerk/models/operations/updateinstanceoauthapplicationsettings_request.rb +36 -0
  125. data/lib/clerk/models/operations/updateinstanceoauthapplicationsettings_request.rbi +15 -0
  126. data/lib/clerk/models/operations/updateinstanceoauthapplicationsettings_response.rb +44 -0
  127. data/lib/clerk/models/operations/updateinstanceoauthapplicationsettings_response.rbi +19 -0
  128. data/lib/clerk/models/operations/usersgetorganizationinvitations_status.rb +1 -0
  129. data/lib/clerk/models/operations.rb +18 -0
  130. data/lib/clerk/oauthaccesstokens.rb +7 -2
  131. data/lib/clerk/oauthapplications.rb +27 -7
  132. data/lib/clerk/openapiclient.rb +4 -2
  133. data/lib/clerk/organizationdomains.rb +23 -6
  134. data/lib/clerk/organizationinvitations.rb +32 -9
  135. data/lib/clerk/organizationmemberships.rb +23 -6
  136. data/lib/clerk/organizationpermissions.rb +23 -6
  137. data/lib/clerk/organizationroles.rb +31 -8
  138. data/lib/clerk/organizations.rb +374 -11
  139. data/lib/clerk/phonenumbers.rb +19 -5
  140. data/lib/clerk/proxychecks.rb +7 -2
  141. data/lib/clerk/redirecturls.rb +19 -5
  142. data/lib/clerk/rolesets.rb +31 -8
  143. data/lib/clerk/samlconnections.rb +23 -6
  144. data/lib/clerk/sdkconfiguration.rb +3 -3
  145. data/lib/clerk/sessions.rb +35 -9
  146. data/lib/clerk/signintokens.rb +11 -3
  147. data/lib/clerk/signups.rb +11 -3
  148. data/lib/clerk/templates.rb +7 -2
  149. data/lib/clerk/testingtokens.rb +7 -2
  150. data/lib/clerk/users.rb +458 -32
  151. data/lib/clerk/waitlistentries.rb +27 -7
  152. data/lib/clerk/webhooks.rb +15 -4
  153. data/lib/clerk_sdk_ruby.rb +1 -0
  154. data/lib/crystalline/types.rb +11 -3
  155. metadata +107 -6
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+
11
+ class CommercePlanUnitPriceTier
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+ # Start block (inclusive) for this tier
16
+ field :starts_at_block, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('starts_at_block'), required: true } }
17
+
18
+ field :fee_per_block, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('fee_per_block'), required: true } }
19
+ # End block (inclusive) for this tier; null means unlimited
20
+ field :ends_after_block, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('ends_after_block') } }
21
+
22
+
23
+ def initialize(starts_at_block:, fee_per_block:, ends_after_block: nil)
24
+ @starts_at_block = starts_at_block
25
+ @fee_per_block = fee_per_block
26
+ @ends_after_block = ends_after_block
27
+ end
28
+
29
+
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @starts_at_block == other.starts_at_block
33
+ return false unless @fee_per_block == other.fee_per_block
34
+ return false unless @ends_after_block == other.ends_after_block
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommercePlanUnitPriceTier
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommercePlanUnitPriceTier
11
+ def starts_at_block(); end
12
+ def starts_at_block=(str_); end
13
+ def fee_per_block(); end
14
+ def fee_per_block=(str_); end
15
+ def ends_after_block(); end
16
+ def ends_after_block=(str_); end
17
+ end
@@ -54,13 +54,19 @@ module Clerk
54
54
  field :created_at, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('created_at') } }
55
55
  # Unix timestamp (in milliseconds) when the subscription item was last updated.
56
56
  field :updated_at, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('updated_at') } }
57
+ # Unified credits breakdown for this subscription item.
58
+ field :credits, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemCredits), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('credits') } }
57
59
  # The associated plan.
58
60
  field :plan, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemPlan), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('plan') } }
59
61
  # Information about the next payment.
60
62
  field :next_payment, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemNextPayment), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('next_payment') } }
63
+ # Seat quantity for seat-based billing.
64
+ field :seats, Crystalline::Nilable.new(Models::Components::Seats), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('seats') } }
65
+ # Totals for this subscription item.
66
+ field :totals, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemTotals), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('totals') } }
61
67
 
62
68
 
63
- def initialize(object:, id:, instance_id:, status:, plan_period:, payer_id:, is_free_trial:, period_start:, credit: nil, plan_id: nil, price_id: nil, payment_method: nil, lifetime_paid: nil, payer: nil, period_end: nil, proration_date: nil, canceled_at: nil, past_due_at: nil, ended_at: nil, created_at: nil, updated_at: nil, plan: nil, next_payment: nil)
69
+ def initialize(object:, id:, instance_id:, status:, plan_period:, payer_id:, is_free_trial:, period_start:, credit: nil, plan_id: nil, price_id: nil, payment_method: nil, lifetime_paid: nil, payer: nil, period_end: nil, proration_date: nil, canceled_at: nil, past_due_at: nil, ended_at: nil, created_at: nil, updated_at: nil, credits: nil, plan: nil, next_payment: nil, seats: nil, totals: nil)
64
70
  @object = object
65
71
  @id = id
66
72
  @instance_id = instance_id
@@ -82,8 +88,11 @@ module Clerk
82
88
  @ended_at = ended_at
83
89
  @created_at = created_at
84
90
  @updated_at = updated_at
91
+ @credits = credits
85
92
  @plan = plan
86
93
  @next_payment = next_payment
94
+ @seats = seats
95
+ @totals = totals
87
96
  end
88
97
 
89
98
 
@@ -110,8 +119,11 @@ module Clerk
110
119
  return false unless @ended_at == other.ended_at
111
120
  return false unless @created_at == other.created_at
112
121
  return false unless @updated_at == other.updated_at
122
+ return false unless @credits == other.credits
113
123
  return false unless @plan == other.plan
114
124
  return false unless @next_payment == other.next_payment
125
+ return false unless @seats == other.seats
126
+ return false unless @totals == other.totals
115
127
  true
116
128
  end
117
129
  end
@@ -50,8 +50,14 @@ class Clerk::Models::Components::CommerceSubscriptionItem
50
50
  def created_at=(str_); end
51
51
  def updated_at(); end
52
52
  def updated_at=(str_); end
53
+ def credits(); end
54
+ def credits=(str_); end
53
55
  def plan(); end
54
56
  def plan=(str_); end
55
57
  def next_payment(); end
56
58
  def next_payment=(str_); end
59
+ def seats(); end
60
+ def seats=(str_); end
61
+ def totals(); end
62
+ def totals=(str_); end
57
63
  end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+ # Unified credits breakdown for this subscription item.
11
+ class CommerceSubscriptionItemCredits
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :total, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('total'), required: true } }
17
+
18
+ field :proration, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemProration), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('proration'), required: true } }
19
+
20
+ field :payer, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemPayer), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('payer'), required: true } }
21
+
22
+
23
+ def initialize(total:, proration: nil, payer: nil)
24
+ @total = total
25
+ @proration = proration
26
+ @payer = payer
27
+ end
28
+
29
+
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @total == other.total
33
+ return false unless @proration == other.proration
34
+ return false unless @payer == other.payer
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceSubscriptionItemCredits
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceSubscriptionItemCredits
11
+ def total(); end
12
+ def total=(str_); end
13
+ def proration(); end
14
+ def proration=(str_); end
15
+ def payer(); end
16
+ def payer=(str_); end
17
+ end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+
11
+ class CommerceSubscriptionItemPayer
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :remaining_balance, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('remaining_balance'), required: true } }
17
+
18
+ field :applied_amount, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('applied_amount'), required: true } }
19
+
20
+
21
+ def initialize(remaining_balance:, applied_amount:)
22
+ @remaining_balance = remaining_balance
23
+ @applied_amount = applied_amount
24
+ end
25
+
26
+
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @remaining_balance == other.remaining_balance
30
+ return false unless @applied_amount == other.applied_amount
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceSubscriptionItemPayer
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceSubscriptionItemPayer
11
+ def remaining_balance(); end
12
+ def remaining_balance=(str_); end
13
+ def applied_amount(); end
14
+ def applied_amount=(str_); end
15
+ end
@@ -50,9 +50,11 @@ module Clerk
50
50
  field :features, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::FeatureResponse)), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('features') } }
51
51
  # Number of free trial days for this plan.
52
52
  field :free_trial_days, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('free_trial_days'), required: true } }
53
+ # Per-unit pricing tiers for this plan (for example, seats)
54
+ field :unit_prices, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CommercePlanUnitPrice)), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('unit_prices') } }
53
55
 
54
56
 
55
- def initialize(object:, id:, name:, fee:, product_id:, is_default:, is_recurring:, publicly_visible:, has_base_fee:, for_payer_type:, slug:, free_trial_enabled:, annual_monthly_fee: nil, annual_fee: nil, description: nil, avatar_url: nil, features: nil, free_trial_days: nil)
57
+ def initialize(object:, id:, name:, fee:, product_id:, is_default:, is_recurring:, publicly_visible:, has_base_fee:, for_payer_type:, slug:, free_trial_enabled:, annual_monthly_fee: nil, annual_fee: nil, description: nil, avatar_url: nil, features: nil, free_trial_days: nil, unit_prices: nil)
56
58
  @object = object
57
59
  @id = id
58
60
  @name = name
@@ -71,6 +73,7 @@ module Clerk
71
73
  @avatar_url = avatar_url
72
74
  @features = features
73
75
  @free_trial_days = free_trial_days
76
+ @unit_prices = unit_prices
74
77
  end
75
78
 
76
79
 
@@ -94,6 +97,7 @@ module Clerk
94
97
  return false unless @avatar_url == other.avatar_url
95
98
  return false unless @features == other.features
96
99
  return false unless @free_trial_days == other.free_trial_days
100
+ return false unless @unit_prices == other.unit_prices
97
101
  true
98
102
  end
99
103
  end
@@ -44,4 +44,6 @@ class Clerk::Models::Components::CommerceSubscriptionItemPlan
44
44
  def features=(str_); end
45
45
  def free_trial_days(); end
46
46
  def free_trial_days=(str_); end
47
+ def unit_prices(); end
48
+ def unit_prices=(str_); end
47
49
  end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+
11
+ class CommerceSubscriptionItemProration
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :amount, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('amount'), required: true } }
17
+
18
+ field :cycle_days_remaining, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('cycle_days_remaining'), required: true } }
19
+
20
+ field :cycle_days_total, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('cycle_days_total'), required: true } }
21
+
22
+ field :cycle_remaining_percent, ::Float, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('cycle_remaining_percent'), required: true } }
23
+
24
+
25
+ def initialize(amount:, cycle_days_remaining:, cycle_days_total:, cycle_remaining_percent:)
26
+ @amount = amount
27
+ @cycle_days_remaining = cycle_days_remaining
28
+ @cycle_days_total = cycle_days_total
29
+ @cycle_remaining_percent = cycle_remaining_percent
30
+ end
31
+
32
+
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @amount == other.amount
36
+ return false unless @cycle_days_remaining == other.cycle_days_remaining
37
+ return false unless @cycle_days_total == other.cycle_days_total
38
+ return false unless @cycle_remaining_percent == other.cycle_remaining_percent
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceSubscriptionItemProration
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceSubscriptionItemProration
11
+ def amount(); end
12
+ def amount=(str_); end
13
+ def cycle_days_remaining(); end
14
+ def cycle_days_remaining=(str_); end
15
+ def cycle_days_total(); end
16
+ def cycle_days_total=(str_); end
17
+ def cycle_remaining_percent(); end
18
+ def cycle_remaining_percent=(str_); end
19
+ end
@@ -0,0 +1,52 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+ # Totals for this subscription item.
11
+ class CommerceSubscriptionItemTotals
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :subtotal, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('subtotal'), required: true } }
17
+
18
+ field :base_fee, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('base_fee'), required: true } }
19
+
20
+ field :tax_total, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('tax_total'), required: true } }
21
+
22
+ field :grand_total, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('grand_total'), required: true } }
23
+
24
+ field :per_unit_totals, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CommercePerUnitTotal)), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('per_unit_totals') } }
25
+
26
+ field :credits, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemTotalsCredits), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('credits') } }
27
+
28
+
29
+ def initialize(subtotal:, base_fee:, tax_total:, grand_total:, per_unit_totals: nil, credits: nil)
30
+ @subtotal = subtotal
31
+ @base_fee = base_fee
32
+ @tax_total = tax_total
33
+ @grand_total = grand_total
34
+ @per_unit_totals = per_unit_totals
35
+ @credits = credits
36
+ end
37
+
38
+
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @subtotal == other.subtotal
42
+ return false unless @base_fee == other.base_fee
43
+ return false unless @tax_total == other.tax_total
44
+ return false unless @grand_total == other.grand_total
45
+ return false unless @per_unit_totals == other.per_unit_totals
46
+ return false unless @credits == other.credits
47
+ true
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceSubscriptionItemTotals
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceSubscriptionItemTotals
11
+ def subtotal(); end
12
+ def subtotal=(str_); end
13
+ def base_fee(); end
14
+ def base_fee=(str_); end
15
+ def tax_total(); end
16
+ def tax_total=(str_); end
17
+ def grand_total(); end
18
+ def grand_total=(str_); end
19
+ def per_unit_totals(); end
20
+ def per_unit_totals=(str_); end
21
+ def credits(); end
22
+ def credits=(str_); end
23
+ end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+
11
+ class CommerceSubscriptionItemTotalsCredits
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :total, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('total'), required: true } }
17
+
18
+ field :proration, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemTotalsProration), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('proration'), required: true } }
19
+
20
+ field :payer, Crystalline::Nilable.new(Models::Components::CommerceSubscriptionItemTotalsPayer), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('payer'), required: true } }
21
+
22
+
23
+ def initialize(total:, proration: nil, payer: nil)
24
+ @total = total
25
+ @proration = proration
26
+ @payer = payer
27
+ end
28
+
29
+
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @total == other.total
33
+ return false unless @proration == other.proration
34
+ return false unless @payer == other.payer
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceSubscriptionItemTotalsCredits
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceSubscriptionItemTotalsCredits
11
+ def total(); end
12
+ def total=(str_); end
13
+ def proration(); end
14
+ def proration=(str_); end
15
+ def payer(); end
16
+ def payer=(str_); end
17
+ end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+
11
+ class CommerceSubscriptionItemTotalsPayer
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :remaining_balance, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('remaining_balance'), required: true } }
17
+
18
+ field :applied_amount, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('applied_amount'), required: true } }
19
+
20
+
21
+ def initialize(remaining_balance:, applied_amount:)
22
+ @remaining_balance = remaining_balance
23
+ @applied_amount = applied_amount
24
+ end
25
+
26
+
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @remaining_balance == other.remaining_balance
30
+ return false unless @applied_amount == other.applied_amount
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceSubscriptionItemTotalsPayer
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceSubscriptionItemTotalsPayer
11
+ def remaining_balance(); end
12
+ def remaining_balance=(str_); end
13
+ def applied_amount(); end
14
+ def applied_amount=(str_); end
15
+ end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+
11
+ class CommerceSubscriptionItemTotalsProration
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :amount, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('amount'), required: true } }
17
+
18
+ field :cycle_days_remaining, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('cycle_days_remaining'), required: true } }
19
+
20
+ field :cycle_days_total, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('cycle_days_total'), required: true } }
21
+
22
+ field :cycle_remaining_percent, ::Float, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('cycle_remaining_percent'), required: true } }
23
+
24
+
25
+ def initialize(amount:, cycle_days_remaining:, cycle_days_total:, cycle_remaining_percent:)
26
+ @amount = amount
27
+ @cycle_days_remaining = cycle_days_remaining
28
+ @cycle_days_total = cycle_days_total
29
+ @cycle_remaining_percent = cycle_remaining_percent
30
+ end
31
+
32
+
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @amount == other.amount
36
+ return false unless @cycle_days_remaining == other.cycle_days_remaining
37
+ return false unless @cycle_days_total == other.cycle_days_total
38
+ return false unless @cycle_remaining_percent == other.cycle_remaining_percent
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceSubscriptionItemTotalsProration
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceSubscriptionItemTotalsProration
11
+ def amount(); end
12
+ def amount=(str_); end
13
+ def cycle_days_remaining(); end
14
+ def cycle_days_remaining=(str_); end
15
+ def cycle_days_total(); end
16
+ def cycle_days_total=(str_); end
17
+ def cycle_remaining_percent(); end
18
+ def cycle_remaining_percent=(str_); end
19
+ end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+ # Success
11
+ class OAuthApplicationSettings
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+ # String representing the object's type. Objects of the same type share the same value.
16
+ field :object, Models::Components::OAuthApplicationSettingsObject, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('object'), required: true, 'decoder': ::Clerk::Utils.enum_from_string(Models::Components::OAuthApplicationSettingsObject, false) } }
17
+ # Whether dynamic OAuth client registration is enabled for the instance (RFC 7591).
18
+ field :dynamic_oauth_client_registration, Crystalline::Boolean.new, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('dynamic_oauth_client_registration'), required: true } }
19
+ # Whether OAuth JWT access tokens are enabled for the instance (disabled indicates opaque access tokens).
20
+ field :oauth_jwt_access_tokens, Crystalline::Boolean.new, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('oauth_jwt_access_tokens'), required: true } }
21
+
22
+
23
+ def initialize(object:, dynamic_oauth_client_registration:, oauth_jwt_access_tokens:)
24
+ @object = object
25
+ @dynamic_oauth_client_registration = dynamic_oauth_client_registration
26
+ @oauth_jwt_access_tokens = oauth_jwt_access_tokens
27
+ end
28
+
29
+
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @object == other.object
33
+ return false unless @dynamic_oauth_client_registration == other.dynamic_oauth_client_registration
34
+ return false unless @oauth_jwt_access_tokens == other.oauth_jwt_access_tokens
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::OAuthApplicationSettings
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::OAuthApplicationSettings
11
+ def object(); end
12
+ def object=(str_); end
13
+ def dynamic_oauth_client_registration(); end
14
+ def dynamic_oauth_client_registration=(str_); end
15
+ def oauth_jwt_access_tokens(); end
16
+ def oauth_jwt_access_tokens=(str_); end
17
+ end
@@ -0,0 +1,19 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: false
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Clerk
8
+ module Models
9
+ module Components
10
+ # OAuthApplicationSettingsObject - String representing the object's type. Objects of the same type share the same value.
11
+ class OAuthApplicationSettingsObject
12
+ include ::Crystalline::Enum
13
+ enums do
14
+ OAUTH_APPLICATION_SETTINGS = new('oauth_application_settings')
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end