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,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 BillingPaymentAttemptPayer
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::BillingPaymentAttemptPayer
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::BillingPaymentAttemptPayer
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 BillingPaymentAttemptProration
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::BillingPaymentAttemptProration
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::BillingPaymentAttemptProration
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 breakdown for this payment attempt.
11
+ class BillingPaymentAttemptTotals
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::BillingPaymentAttemptCredits), { '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::BillingPaymentAttemptTotals
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::BillingPaymentAttemptTotals
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
@@ -32,13 +32,15 @@ module Clerk
32
32
  field :fee, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('fee'), required: true } }
33
33
 
34
34
  field :annual_monthly_fee, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('annual_monthly_fee'), required: true } }
35
+ # Whether this price is the default price for its plan.
36
+ field :is_default, Crystalline::Boolean.new, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('is_default'), required: true } }
35
37
  # Unix timestamp (milliseconds) of creation.
36
38
  field :created_at, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('created_at'), required: true } }
37
39
  # The description of the price.
38
40
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('description') } }
39
41
 
40
42
 
41
- def initialize(object:, id:, plan_id:, instance_id:, currency:, currency_symbol:, amount:, annual_monthly_amount:, fee:, annual_monthly_fee:, created_at:, description: nil)
43
+ def initialize(object:, id:, plan_id:, instance_id:, currency:, currency_symbol:, amount:, annual_monthly_amount:, fee:, annual_monthly_fee:, is_default:, created_at:, description: nil)
42
44
  @object = object
43
45
  @id = id
44
46
  @plan_id = plan_id
@@ -49,6 +51,7 @@ module Clerk
49
51
  @annual_monthly_amount = annual_monthly_amount
50
52
  @fee = fee
51
53
  @annual_monthly_fee = annual_monthly_fee
54
+ @is_default = is_default
52
55
  @created_at = created_at
53
56
  @description = description
54
57
  end
@@ -66,6 +69,7 @@ module Clerk
66
69
  return false unless @annual_monthly_amount == other.annual_monthly_amount
67
70
  return false unless @fee == other.fee
68
71
  return false unless @annual_monthly_fee == other.annual_monthly_fee
72
+ return false unless @is_default == other.is_default
69
73
  return false unless @created_at == other.created_at
70
74
  return false unless @description == other.description
71
75
  true
@@ -28,6 +28,8 @@ class Clerk::Models::Components::BillingPriceResponse
28
28
  def fee=(str_); end
29
29
  def annual_monthly_fee(); end
30
30
  def annual_monthly_fee=(str_); end
31
+ def is_default(); end
32
+ def is_default=(str_); end
31
33
  def created_at(); end
32
34
  def created_at=(str_); end
33
35
  def description(); end
@@ -25,7 +25,7 @@ module Clerk
25
25
  # The current status of the statement.
26
26
  field :status, Models::Components::BillingStatementStatus, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('status'), required: true, 'decoder': ::Clerk::Utils.enum_from_string(Models::Components::BillingStatementStatus, false) } }
27
27
  # Totals for the statement.
28
- field :totals, Models::Components::Totals, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('totals'), required: true } }
28
+ field :totals, Models::Components::BillingStatementTotals, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('totals'), required: true } }
29
29
  # Array of statement groups.
30
30
  field :groups, Crystalline::Array.new(Models::Components::Group), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('groups'), required: true } }
31
31
 
@@ -8,7 +8,7 @@ module Clerk
8
8
  module Models
9
9
  module Components
10
10
  # Totals for the statement.
11
- class Totals
11
+ class BillingStatementTotals
12
12
 
13
13
  include Crystalline::MetadataFields
14
14
 
@@ -17,12 +17,15 @@ module Clerk
17
17
 
18
18
  field :subtotal, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('subtotal'), required: true } }
19
19
 
20
+ field :base_fee, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('base_fee'), required: true } }
21
+
20
22
  field :tax_total, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('tax_total'), required: true } }
21
23
 
22
24
 
23
- def initialize(grand_total:, subtotal:, tax_total:)
25
+ def initialize(grand_total:, subtotal:, base_fee:, tax_total:)
24
26
  @grand_total = grand_total
25
27
  @subtotal = subtotal
28
+ @base_fee = base_fee
26
29
  @tax_total = tax_total
27
30
  end
28
31
 
@@ -31,6 +34,7 @@ module Clerk
31
34
  return false unless other.is_a? self.class
32
35
  return false unless @grand_total == other.grand_total
33
36
  return false unless @subtotal == other.subtotal
37
+ return false unless @base_fee == other.base_fee
34
38
  return false unless @tax_total == other.tax_total
35
39
  true
36
40
  end
@@ -2,16 +2,18 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Clerk::Models::Components::Totals
5
+ class Clerk::Models::Components::BillingStatementTotals
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Clerk::Models::Components::Totals
10
+ class Clerk::Models::Components::BillingStatementTotals
11
11
  def grand_total(); end
12
12
  def grand_total=(str_); end
13
13
  def subtotal(); end
14
14
  def subtotal=(str_); end
15
+ def base_fee(); end
16
+ def base_fee=(str_); end
15
17
  def tax_total(); end
16
18
  def tax_total=(str_); end
17
19
  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
+ # A payer's credit balance.
11
+ class CommerceCreditBalanceResponse
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+ # String representing the object's type. Always "commerce_credit_balance".
16
+ field :object, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('object'), required: true } }
17
+ # The current credit balance. Null when the payer has never had credits.
18
+ field :balance, Crystalline::Nilable.new(Models::Components::Balance), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('balance'), required: true } }
19
+
20
+
21
+ def initialize(object:, balance: nil)
22
+ @object = object
23
+ @balance = balance
24
+ end
25
+
26
+
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @object == other.object
30
+ return false unless @balance == other.balance
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::CommerceCreditBalanceResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceCreditBalanceResponse
11
+ def object(); end
12
+ def object=(str_); end
13
+ def balance(); end
14
+ def balance=(str_); end
15
+ end
@@ -0,0 +1,64 @@
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
+ # A credit ledger entry.
11
+ class CommerceCreditLedgerResponse
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+ # String representing the object's type. Always "commerce_credit_ledger".
16
+ field :object, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('object'), required: true } }
17
+ # Unique identifier for the ledger entry.
18
+ field :id, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('id'), required: true } }
19
+ # The ID of the payer whose balance was adjusted.
20
+ field :payer_id, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('payer_id'), required: true } }
21
+ # The signed credit amount. Positive for increases, negative for decreases.
22
+ field :amount, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('amount'), required: true } }
23
+ # The currency code of the credit adjustment.
24
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('currency'), required: true } }
25
+ # The type of source that originated the adjustment (e.g. "grant").
26
+ field :source_type, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('source_type'), required: true } }
27
+ # The ID of the source that originated the adjustment.
28
+ field :source_id, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('source_id'), required: true } }
29
+ # Timestamp when the ledger entry was created.
30
+ field :created_at, ::DateTime, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('created_at'), required: true, 'decoder': ::Clerk::Utils.datetime_from_iso_format(false) } }
31
+ # An optional note attached to the ledger entry.
32
+ field :note, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('note') } }
33
+
34
+
35
+ def initialize(object:, id:, payer_id:, amount:, currency:, source_type:, source_id:, created_at:, note: nil)
36
+ @object = object
37
+ @id = id
38
+ @payer_id = payer_id
39
+ @amount = amount
40
+ @currency = currency
41
+ @source_type = source_type
42
+ @source_id = source_id
43
+ @created_at = created_at
44
+ @note = note
45
+ end
46
+
47
+
48
+ def ==(other)
49
+ return false unless other.is_a? self.class
50
+ return false unless @object == other.object
51
+ return false unless @id == other.id
52
+ return false unless @payer_id == other.payer_id
53
+ return false unless @amount == other.amount
54
+ return false unless @currency == other.currency
55
+ return false unless @source_type == other.source_type
56
+ return false unless @source_id == other.source_id
57
+ return false unless @created_at == other.created_at
58
+ return false unless @note == other.note
59
+ true
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,29 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Clerk::Models::Components::CommerceCreditLedgerResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommerceCreditLedgerResponse
11
+ def object(); end
12
+ def object=(str_); end
13
+ def id(); end
14
+ def id=(str_); end
15
+ def payer_id(); end
16
+ def payer_id=(str_); end
17
+ def amount(); end
18
+ def amount=(str_); end
19
+ def currency(); end
20
+ def currency=(str_); end
21
+ def source_type(); end
22
+ def source_type=(str_); end
23
+ def source_id(); end
24
+ def source_id=(str_); end
25
+ def created_at(); end
26
+ def created_at=(str_); end
27
+ def note(); end
28
+ def note=(str_); end
29
+ 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 CommercePerUnitTotal
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+ # Name of the billable unit (for example, seats)
16
+ field :name, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('name'), required: true } }
17
+ # Number of units included in each pricing block
18
+ field :block_size, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('block_size'), required: true } }
19
+ # Computed totals for each pricing tier
20
+ field :tiers, Crystalline::Array.new(Models::Components::CommercePerUnitTotalTier), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('tiers'), required: true } }
21
+
22
+
23
+ def initialize(name:, block_size:, tiers:)
24
+ @name = name
25
+ @block_size = block_size
26
+ @tiers = tiers
27
+ end
28
+
29
+
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @name == other.name
33
+ return false unless @block_size == other.block_size
34
+ return false unless @tiers == other.tiers
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::CommercePerUnitTotal
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommercePerUnitTotal
11
+ def name(); end
12
+ def name=(str_); end
13
+ def block_size(); end
14
+ def block_size=(str_); end
15
+ def tiers(); end
16
+ def tiers=(str_); end
17
+ 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 CommercePerUnitTotalTier
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :fee_per_block, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('fee_per_block'), required: true } }
17
+
18
+ field :total, Models::Components::CommerceMoneyResponse, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('total'), required: true } }
19
+ # Units billed in this tier; null means unlimited
20
+ field :quantity, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('quantity') } }
21
+
22
+
23
+ def initialize(fee_per_block:, total:, quantity: nil)
24
+ @fee_per_block = fee_per_block
25
+ @total = total
26
+ @quantity = quantity
27
+ end
28
+
29
+
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @fee_per_block == other.fee_per_block
33
+ return false unless @total == other.total
34
+ return false unless @quantity == other.quantity
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::CommercePerUnitTotalTier
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommercePerUnitTotalTier
11
+ def fee_per_block(); end
12
+ def fee_per_block=(str_); end
13
+ def total(); end
14
+ def total=(str_); end
15
+ def quantity(); end
16
+ def quantity=(str_); end
17
+ 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::CommercePlan
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,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 CommercePlanUnitPrice
12
+
13
+ include Crystalline::MetadataFields
14
+
15
+ # Name of the billable unit (for example, seats)
16
+ field :name, ::String, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('name'), required: true } }
17
+ # Number of units included in each pricing block
18
+ field :block_size, ::Integer, { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('block_size'), required: true } }
19
+ # Tiered pricing configuration for this unit
20
+ field :tiers, Crystalline::Array.new(Models::Components::CommercePlanUnitPriceTier), { 'format_json': { 'letter_case': ::Clerk::Utils.field_name('tiers'), required: true } }
21
+
22
+
23
+ def initialize(name:, block_size:, tiers:)
24
+ @name = name
25
+ @block_size = block_size
26
+ @tiers = tiers
27
+ end
28
+
29
+
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @name == other.name
33
+ return false unless @block_size == other.block_size
34
+ return false unless @tiers == other.tiers
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::CommercePlanUnitPrice
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Clerk::Models::Components::CommercePlanUnitPrice
11
+ def name(); end
12
+ def name=(str_); end
13
+ def block_size(); end
14
+ def block_size=(str_); end
15
+ def tiers(); end
16
+ def tiers=(str_); end
17
+ end