moov_ruby 0.3.22 → 0.3.24

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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/client.rb +2 -1
  3. data/lib/moov/invoices.rb +288 -0
  4. data/lib/moov/models/components/createinvoice.rb +6 -6
  5. data/lib/moov/models/components/createinvoice.rbi +2 -2
  6. data/lib/moov/models/components/createinvoicepayment.rb +45 -0
  7. data/lib/moov/models/components/createinvoicepayment.rbi +19 -0
  8. data/lib/moov/models/components/createruntransfer.rb +58 -0
  9. data/lib/moov/models/components/createruntransfer.rbi +25 -0
  10. data/lib/moov/models/components/createscheduledtransferlineitem.rb +53 -0
  11. data/lib/moov/models/components/createscheduledtransferlineitem.rbi +23 -0
  12. data/lib/moov/models/components/createscheduledtransferlineitemoption.rb +49 -0
  13. data/lib/moov/models/components/createscheduledtransferlineitemoption.rbi +21 -0
  14. data/lib/moov/models/components/createscheduledtransferlineitems.rb +34 -0
  15. data/lib/moov/models/components/createscheduledtransferlineitems.rbi +13 -0
  16. data/lib/moov/models/components/createwebhook.rb +45 -0
  17. data/lib/moov/models/components/createwebhook.rbi +19 -0
  18. data/lib/moov/models/components/eventtype.rb +41 -0
  19. data/lib/moov/models/components/eventtype.rbi +17 -0
  20. data/lib/moov/models/components/incurredfee.rb +6 -2
  21. data/lib/moov/models/components/incurredfee.rbi +2 -0
  22. data/lib/moov/models/components/invoice.rb +9 -9
  23. data/lib/moov/models/components/invoice.rbi +4 -4
  24. data/lib/moov/models/components/invoiceexternalpayment.rb +3 -11
  25. data/lib/moov/models/components/invoiceexternalpayment.rbi +0 -4
  26. data/lib/moov/models/components/invoicepayment.rb +13 -5
  27. data/lib/moov/models/components/invoicepayment.rbi +6 -2
  28. data/lib/moov/models/components/invoicetransferpayment.rb +2 -6
  29. data/lib/moov/models/components/invoicetransferpayment.rbi +0 -2
  30. data/lib/moov/models/components/occurrence.rb +2 -2
  31. data/lib/moov/models/components/occurrencesresponse.rb +1 -1
  32. data/lib/moov/models/components/pingresponse.rb +41 -0
  33. data/lib/moov/models/components/pingresponse.rbi +17 -0
  34. data/lib/moov/models/components/recur.rb +2 -2
  35. data/lib/moov/models/components/recurresponse.rb +46 -0
  36. data/lib/moov/models/components/recurresponse.rbi +19 -0
  37. data/lib/moov/models/components/runtransfer.rb +2 -3
  38. data/lib/moov/models/components/scheduledtransferimagemetadata.rb +45 -0
  39. data/lib/moov/models/components/scheduledtransferimagemetadata.rbi +19 -0
  40. data/lib/moov/models/components/scheduledtransferlineitem.rb +6 -2
  41. data/lib/moov/models/components/scheduledtransferlineitem.rbi +2 -0
  42. data/lib/moov/models/components/scheduledtransferlineitemoption.rb +6 -2
  43. data/lib/moov/models/components/scheduledtransferlineitemoption.rbi +2 -0
  44. data/lib/moov/models/components/scheduledtransferlineitems.rb +1 -2
  45. data/lib/moov/models/components/schedulelistresponse.rb +3 -3
  46. data/lib/moov/models/components/scheduleresponse.rb +3 -3
  47. data/lib/moov/models/components/updatewebhook.rb +45 -0
  48. data/lib/moov/models/components/updatewebhook.rbi +19 -0
  49. data/lib/moov/models/components/webhook.rb +61 -0
  50. data/lib/moov/models/components/webhook.rbi +27 -0
  51. data/lib/moov/models/components/webhooksecret.rb +33 -0
  52. data/lib/moov/models/components/webhooksecret.rbi +13 -0
  53. data/lib/moov/models/components/{invoiceexternalpayment_paymenttype.rb → webhookstatus.rb} +4 -3
  54. data/lib/moov/models/components/webhookstatus.rbi +11 -0
  55. data/lib/moov/models/components.rb +14 -2
  56. data/lib/moov/models/errors/createinvoicepaymenterror.rb +49 -0
  57. data/lib/moov/models/errors/createinvoicepaymenterror.rbi +21 -0
  58. data/lib/moov/models/errors/createwebhookvalidationerror.rb +49 -0
  59. data/lib/moov/models/errors/createwebhookvalidationerror.rbi +21 -0
  60. data/lib/moov/models/errors/updatewebhookvalidationerror.rb +49 -0
  61. data/lib/moov/models/errors/updatewebhookvalidationerror.rbi +21 -0
  62. data/lib/moov/models/errors.rb +3 -0
  63. data/lib/moov/models/operations/createinvoicepayment_request.rb +54 -0
  64. data/lib/moov/models/operations/createinvoicepayment_request.rbi +19 -0
  65. data/lib/moov/models/operations/createinvoicepayment_response.rb +49 -0
  66. data/lib/moov/models/operations/createinvoicepayment_response.rbi +21 -0
  67. data/lib/moov/models/operations/createwebhook_request.rb +46 -0
  68. data/lib/moov/models/operations/createwebhook_request.rbi +15 -0
  69. data/lib/moov/models/operations/createwebhook_response.rb +49 -0
  70. data/lib/moov/models/operations/createwebhook_response.rbi +21 -0
  71. data/lib/moov/models/operations/disablewebhook_request.rb +46 -0
  72. data/lib/moov/models/operations/disablewebhook_request.rbi +15 -0
  73. data/lib/moov/models/operations/disablewebhook_response.rb +45 -0
  74. data/lib/moov/models/operations/disablewebhook_response.rbi +19 -0
  75. data/lib/moov/models/operations/getwebhook_request.rb +46 -0
  76. data/lib/moov/models/operations/getwebhook_request.rbi +15 -0
  77. data/lib/moov/models/operations/getwebhook_response.rb +49 -0
  78. data/lib/moov/models/operations/getwebhook_response.rbi +21 -0
  79. data/lib/moov/models/operations/getwebhooksecret_request.rb +46 -0
  80. data/lib/moov/models/operations/getwebhooksecret_request.rbi +15 -0
  81. data/lib/moov/models/operations/getwebhooksecret_response.rb +49 -0
  82. data/lib/moov/models/operations/getwebhooksecret_response.rbi +21 -0
  83. data/lib/moov/models/operations/listeventtypes_request.rb +42 -0
  84. data/lib/moov/models/operations/listeventtypes_request.rbi +13 -0
  85. data/lib/moov/models/operations/listeventtypes_response.rb +49 -0
  86. data/lib/moov/models/operations/listeventtypes_response.rbi +21 -0
  87. data/lib/moov/models/operations/listfeerevenue_request.rb +14 -2
  88. data/lib/moov/models/operations/listfeerevenue_request.rbi +6 -0
  89. data/lib/moov/models/operations/listinvoicepayments_request.rb +50 -0
  90. data/lib/moov/models/operations/listinvoicepayments_request.rbi +17 -0
  91. data/lib/moov/models/operations/listinvoicepayments_response.rb +49 -0
  92. data/lib/moov/models/operations/listinvoicepayments_response.rbi +21 -0
  93. data/lib/moov/models/operations/listwebhooks_request.rb +42 -0
  94. data/lib/moov/models/operations/listwebhooks_request.rbi +13 -0
  95. data/lib/moov/models/operations/listwebhooks_response.rb +49 -0
  96. data/lib/moov/models/operations/listwebhooks_response.rbi +21 -0
  97. data/lib/moov/models/operations/pingwebhook_request.rb +46 -0
  98. data/lib/moov/models/operations/pingwebhook_request.rbi +15 -0
  99. data/lib/moov/models/operations/pingwebhook_response.rb +49 -0
  100. data/lib/moov/models/operations/pingwebhook_response.rbi +21 -0
  101. data/lib/moov/models/operations/retrievefees_request.rb +6 -2
  102. data/lib/moov/models/operations/retrievefees_request.rbi +2 -0
  103. data/lib/moov/models/operations/updatewebhook_request.rb +50 -0
  104. data/lib/moov/models/operations/updatewebhook_request.rbi +17 -0
  105. data/lib/moov/models/operations/updatewebhook_response.rb +49 -0
  106. data/lib/moov/models/operations/updatewebhook_response.rbi +21 -0
  107. data/lib/moov/models/operations.rb +20 -0
  108. data/lib/moov/sdkconfiguration.rb +2 -2
  109. data/lib/moov/webhooks.rb +1056 -0
  110. data/lib/moov_ruby.rb +1 -0
  111. metadata +77 -6
  112. data/lib/moov/models/components/invoiceexternalpayment_paymenttype.rbi +0 -11
  113. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rb +0 -21
  114. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rbi +0 -11
@@ -8,7 +8,7 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- # Defines the attributes of a transfer.
11
+
12
12
  class RunTransfer
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
@@ -25,8 +25,7 @@ module Moov
25
25
  field :description, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description'), required: true } }
26
26
  # Optional sales tax amount. This amount is included in the total transfer amount.
27
27
  field :sales_tax_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('salesTaxAmount') } }
28
- # An optional collection of line items for a scheduled transfer.
29
- # When line items are provided their total must equal `amount` minus `salesTaxAmount`.
28
+ # Line items for a scheduled transfer.
30
29
  field :line_items, Crystalline::Nilable.new(Models::Components::ScheduledTransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
31
30
 
32
31
  sig { params(amount: Models::Components::Amount, destination: Models::Components::SchedulePaymentMethod, partner_account_id: ::String, source: Models::Components::SchedulePaymentMethod, description: ::String, sales_tax_amount: T.nilable(Models::Components::Amount), line_items: T.nilable(Models::Components::ScheduledTransferLineItems)).void }
@@ -0,0 +1,45 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+
12
+ class ScheduledTransferImageMetadata
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # Unique identifier for a image resource.
17
+ field :image_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('imageID'), required: true } }
18
+ # The image's public URL.
19
+ field :link, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('link'), required: true } }
20
+ # A unique identifier for an image, used in public image links.
21
+ field :public_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('publicID'), required: true } }
22
+ # Alternative text for the image.
23
+ field :alt_text, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('altText') } }
24
+
25
+ sig { params(image_id: ::String, link: ::String, public_id: ::String, alt_text: T.nilable(::String)).void }
26
+ def initialize(image_id:, link:, public_id:, alt_text: nil)
27
+ @image_id = image_id
28
+ @link = link
29
+ @public_id = public_id
30
+ @alt_text = alt_text
31
+ end
32
+
33
+ sig { params(other: T.untyped).returns(T::Boolean) }
34
+ def ==(other)
35
+ return false unless other.is_a? self.class
36
+ return false unless @image_id == other.image_id
37
+ return false unless @link == other.link
38
+ return false unless @public_id == other.public_id
39
+ return false unless @alt_text == other.alt_text
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::ScheduledTransferImageMetadata
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ScheduledTransferImageMetadata
11
+ def image_id(); end
12
+ def image_id=(str_); end
13
+ def link(); end
14
+ def link=(str_); end
15
+ def public_id(); end
16
+ def public_id=(str_); end
17
+ def alt_text(); end
18
+ def alt_text=(str_); end
19
+ end
@@ -23,14 +23,17 @@ module Moov
23
23
  field :options, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::ScheduledTransferLineItemOption)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
24
24
  # Optional unique identifier associating the line item with a product.
25
25
  field :product_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('productID') } }
26
+ # Optional list of images associated with this line item.
27
+ field :images, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::ScheduledTransferImageMetadata)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('images') } }
26
28
 
27
- sig { params(name: ::String, base_price: Models::Components::AmountDecimal, quantity: ::Integer, options: T.nilable(T::Array[Models::Components::ScheduledTransferLineItemOption]), product_id: T.nilable(::String)).void }
28
- def initialize(name:, base_price:, quantity:, options: nil, product_id: nil)
29
+ sig { params(name: ::String, base_price: Models::Components::AmountDecimal, quantity: ::Integer, options: T.nilable(T::Array[Models::Components::ScheduledTransferLineItemOption]), product_id: T.nilable(::String), images: T.nilable(T::Array[Models::Components::ScheduledTransferImageMetadata])).void }
30
+ def initialize(name:, base_price:, quantity:, options: nil, product_id: nil, images: nil)
29
31
  @name = name
30
32
  @base_price = base_price
31
33
  @quantity = quantity
32
34
  @options = options
33
35
  @product_id = product_id
36
+ @images = images
34
37
  end
35
38
 
36
39
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -41,6 +44,7 @@ module Moov
41
44
  return false unless @quantity == other.quantity
42
45
  return false unless @options == other.options
43
46
  return false unless @product_id == other.product_id
47
+ return false unless @images == other.images
44
48
  true
45
49
  end
46
50
  end
@@ -18,4 +18,6 @@ class Moov::Models::Components::ScheduledTransferLineItem
18
18
  def options=(str_); end
19
19
  def product_id(); end
20
20
  def product_id=(str_); end
21
+ def images(); end
22
+ def images=(str_); end
21
23
  end
@@ -21,13 +21,16 @@ module Moov
21
21
  field :price_modifier, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priceModifier') } }
22
22
  # Optional group identifier to categorize related options (e.g., 'toppings').
23
23
  field :group, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('group') } }
24
+ # Optional list of images associated with this line item.
25
+ field :images, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::ScheduledTransferImageMetadata)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('images') } }
24
26
 
25
- sig { params(name: ::String, quantity: ::Integer, price_modifier: T.nilable(Models::Components::AmountDecimal), group: T.nilable(::String)).void }
26
- def initialize(name:, quantity:, price_modifier: nil, group: nil)
27
+ sig { params(name: ::String, quantity: ::Integer, price_modifier: T.nilable(Models::Components::AmountDecimal), group: T.nilable(::String), images: T.nilable(T::Array[Models::Components::ScheduledTransferImageMetadata])).void }
28
+ def initialize(name:, quantity:, price_modifier: nil, group: nil, images: nil)
27
29
  @name = name
28
30
  @quantity = quantity
29
31
  @price_modifier = price_modifier
30
32
  @group = group
33
+ @images = images
31
34
  end
32
35
 
33
36
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -37,6 +40,7 @@ module Moov
37
40
  return false unless @quantity == other.quantity
38
41
  return false unless @price_modifier == other.price_modifier
39
42
  return false unless @group == other.group
43
+ return false unless @images == other.images
40
44
  true
41
45
  end
42
46
  end
@@ -16,4 +16,6 @@ class Moov::Models::Components::ScheduledTransferLineItemOption
16
16
  def price_modifier=(str_); end
17
17
  def group(); end
18
18
  def group=(str_); end
19
+ def images(); end
20
+ def images=(str_); end
19
21
  end
@@ -8,8 +8,7 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- # An optional collection of line items for a scheduled transfer.
12
- # When line items are provided their total must equal `amount` minus `salesTaxAmount`.
11
+ # Line items for a scheduled transfer.
13
12
  class ScheduledTransferLineItems
14
13
  extend T::Sig
15
14
  include Crystalline::MetadataFields
@@ -33,8 +33,8 @@ module Moov
33
33
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
34
34
 
35
35
  field :occurrences, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::OccurrencesResponse)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('occurrences') } }
36
- # Defines configuration for recurring transfers.
37
- field :recur, Crystalline::Nilable.new(Models::Components::Recur), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('recur') } }
36
+
37
+ field :recur, Crystalline::Nilable.new(Models::Components::RecurResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('recur') } }
38
38
 
39
39
  field :disabled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disabledOn'), 'decoder': Utils.datetime_from_iso_format(true) } }
40
40
 
@@ -44,7 +44,7 @@ module Moov
44
44
 
45
45
  field :partner_account, Crystalline::Nilable.new(Models::Components::PartialScheduleAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccount') } }
46
46
 
47
- sig { params(destination_account_id: ::String, mode: Models::Components::Mode, owner_account_id: ::String, partner_account_id: ::String, schedule_id: ::String, source_account_id: ::String, created_on: ::DateTime, updated_on: ::DateTime, description: T.nilable(::String), occurrences: T.nilable(T::Array[Models::Components::OccurrencesResponse]), recur: T.nilable(Models::Components::Recur), disabled_on: T.nilable(::DateTime), source_account: T.nilable(Models::Components::PartialScheduleAccount), destination_account: T.nilable(Models::Components::PartialScheduleAccount), partner_account: T.nilable(Models::Components::PartialScheduleAccount)).void }
47
+ sig { params(destination_account_id: ::String, mode: Models::Components::Mode, owner_account_id: ::String, partner_account_id: ::String, schedule_id: ::String, source_account_id: ::String, created_on: ::DateTime, updated_on: ::DateTime, description: T.nilable(::String), occurrences: T.nilable(T::Array[Models::Components::OccurrencesResponse]), recur: T.nilable(Models::Components::RecurResponse), disabled_on: T.nilable(::DateTime), source_account: T.nilable(Models::Components::PartialScheduleAccount), destination_account: T.nilable(Models::Components::PartialScheduleAccount), partner_account: T.nilable(Models::Components::PartialScheduleAccount)).void }
48
48
  def initialize(destination_account_id:, mode:, owner_account_id:, partner_account_id:, schedule_id:, source_account_id:, created_on:, updated_on:, description: nil, occurrences: nil, recur: nil, disabled_on: nil, source_account: nil, destination_account: nil, partner_account: nil)
49
49
  @destination_account_id = destination_account_id
50
50
  @mode = mode
@@ -33,12 +33,12 @@ module Moov
33
33
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
34
34
 
35
35
  field :occurrences, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::OccurrencesResponse)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('occurrences') } }
36
- # Defines configuration for recurring transfers.
37
- field :recur, Crystalline::Nilable.new(Models::Components::Recur), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('recur') } }
36
+
37
+ field :recur, Crystalline::Nilable.new(Models::Components::RecurResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('recur') } }
38
38
 
39
39
  field :disabled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disabledOn'), 'decoder': Utils.datetime_from_iso_format(true) } }
40
40
 
41
- sig { params(destination_account_id: ::String, mode: Models::Components::Mode, owner_account_id: ::String, partner_account_id: ::String, schedule_id: ::String, source_account_id: ::String, created_on: ::DateTime, updated_on: ::DateTime, description: T.nilable(::String), occurrences: T.nilable(T::Array[Models::Components::OccurrencesResponse]), recur: T.nilable(Models::Components::Recur), disabled_on: T.nilable(::DateTime)).void }
41
+ sig { params(destination_account_id: ::String, mode: Models::Components::Mode, owner_account_id: ::String, partner_account_id: ::String, schedule_id: ::String, source_account_id: ::String, created_on: ::DateTime, updated_on: ::DateTime, description: T.nilable(::String), occurrences: T.nilable(T::Array[Models::Components::OccurrencesResponse]), recur: T.nilable(Models::Components::RecurResponse), disabled_on: T.nilable(::DateTime)).void }
42
42
  def initialize(destination_account_id:, mode:, owner_account_id:, partner_account_id:, schedule_id:, source_account_id:, created_on:, updated_on:, description: nil, occurrences: nil, recur: nil, disabled_on: nil)
43
43
  @destination_account_id = destination_account_id
44
44
  @mode = mode
@@ -0,0 +1,45 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # Request body for updating an existing webhook.
12
+ class UpdateWebhook
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The URL where webhook events will be sent.
17
+ field :url, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('url'), required: true } }
18
+ # The status of the webhook.
19
+ field :status, Models::Components::WebhookStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': Utils.enum_from_string(Models::Components::WebhookStatus, false) } }
20
+ # The list of event types this webhook should subscribe to.
21
+ field :event_types, Crystalline::Array.new(Models::Components::WebhookEventType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventTypes'), required: true } }
22
+ # A description of the webhook for reference. Can be an empty string.
23
+ field :description, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description'), required: true } }
24
+
25
+ sig { params(url: ::String, status: Models::Components::WebhookStatus, event_types: T::Array[Models::Components::WebhookEventType], description: ::String).void }
26
+ def initialize(url:, status:, event_types:, description:)
27
+ @url = url
28
+ @status = status
29
+ @event_types = event_types
30
+ @description = description
31
+ end
32
+
33
+ sig { params(other: T.untyped).returns(T::Boolean) }
34
+ def ==(other)
35
+ return false unless other.is_a? self.class
36
+ return false unless @url == other.url
37
+ return false unless @status == other.status
38
+ return false unless @event_types == other.event_types
39
+ return false unless @description == other.description
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::UpdateWebhook
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::UpdateWebhook
11
+ def url(); end
12
+ def url=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def event_types(); end
16
+ def event_types=(str_); end
17
+ def description(); end
18
+ def description=(str_); end
19
+ end
@@ -0,0 +1,61 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # A configured webhook endpoint that receives event notifications.
12
+ class Webhook
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # Unique identifier for the webhook.
17
+ field :webhook_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('webhookID'), required: true } }
18
+ # The URL where webhook events will be sent.
19
+ field :url, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('url'), required: true } }
20
+ # The status of a webhook.
21
+ field :status, Models::Components::WebhookStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': Utils.enum_from_string(Models::Components::WebhookStatus, false) } }
22
+ # The list of event types this webhook is subscribed to.
23
+ field :event_types, Crystalline::Array.new(Models::Components::WebhookEventType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventTypes'), required: true } }
24
+ # A description of the webhook for reference.
25
+ field :description, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description'), required: true } }
26
+ # Timestamp of when the webhook was created.
27
+ field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
28
+ # Timestamp of when the webhook was last updated.
29
+ field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
30
+ # Timestamp of when the webhook last received an event.
31
+ field :last_used_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastUsedOn'), 'decoder': Utils.datetime_from_iso_format(true) } }
32
+
33
+ sig { params(webhook_id: ::String, url: ::String, status: Models::Components::WebhookStatus, event_types: T::Array[Models::Components::WebhookEventType], description: ::String, created_on: ::DateTime, updated_on: ::DateTime, last_used_on: T.nilable(::DateTime)).void }
34
+ def initialize(webhook_id:, url:, status:, event_types:, description:, created_on:, updated_on:, last_used_on: nil)
35
+ @webhook_id = webhook_id
36
+ @url = url
37
+ @status = status
38
+ @event_types = event_types
39
+ @description = description
40
+ @created_on = created_on
41
+ @updated_on = updated_on
42
+ @last_used_on = last_used_on
43
+ end
44
+
45
+ sig { params(other: T.untyped).returns(T::Boolean) }
46
+ def ==(other)
47
+ return false unless other.is_a? self.class
48
+ return false unless @webhook_id == other.webhook_id
49
+ return false unless @url == other.url
50
+ return false unless @status == other.status
51
+ return false unless @event_types == other.event_types
52
+ return false unless @description == other.description
53
+ return false unless @created_on == other.created_on
54
+ return false unless @updated_on == other.updated_on
55
+ return false unless @last_used_on == other.last_used_on
56
+ true
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,27 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::Webhook
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::Webhook
11
+ def webhook_id(); end
12
+ def webhook_id=(str_); end
13
+ def url(); end
14
+ def url=(str_); end
15
+ def status(); end
16
+ def status=(str_); end
17
+ def event_types(); end
18
+ def event_types=(str_); end
19
+ def description(); end
20
+ def description=(str_); end
21
+ def created_on(); end
22
+ def created_on=(str_); end
23
+ def updated_on(); end
24
+ def updated_on=(str_); end
25
+ def last_used_on(); end
26
+ def last_used_on=(str_); end
27
+ end
@@ -0,0 +1,33 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ # The secret used to verify webhook payloads.
12
+ class WebhookSecret
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The secret key used to sign webhook payloads. Use this to verify the authenticity of incoming webhooks.
17
+ field :secret, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('secret'), required: true } }
18
+
19
+ sig { params(secret: ::String).void }
20
+ def initialize(secret:)
21
+ @secret = secret
22
+ end
23
+
24
+ sig { params(other: T.untyped).returns(T::Boolean) }
25
+ def ==(other)
26
+ return false unless other.is_a? self.class
27
+ return false unless @secret == other.secret
28
+ true
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::WebhookSecret
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::WebhookSecret
11
+ def secret(); end
12
+ def secret=(str_); end
13
+ end
@@ -8,12 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
-
12
- class InvoiceExternalPaymentPaymentType < T::Enum
11
+ # WebhookStatus - The status of a webhook.
12
+ class WebhookStatus < T::Enum
13
13
 
14
14
 
15
15
  enums do
16
- EXTERNAL = new('external')
16
+ ENABLED = new('enabled')
17
+ DISABLED = new('disabled')
17
18
  end
18
19
  end
19
20
  end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::WebhookStatus
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::WebhookStatus
11
+ end
@@ -171,6 +171,7 @@ module Moov
171
171
  autoload :CreateInvoiceLineItems, 'moov/models/components/createinvoicelineitems.rb'
172
172
  autoload :CreateInvoiceLineItemsUpdate, 'moov/models/components/createinvoicelineitemsupdate.rb'
173
173
  autoload :CreateInvoiceLineItemsValidationError, 'moov/models/components/createinvoicelineitemsvalidationerror.rb'
174
+ autoload :CreateInvoicePayment, 'moov/models/components/createinvoicepayment.rb'
174
175
  autoload :CreatePaymentLink, 'moov/models/components/createpaymentlink.rb'
175
176
  autoload :CreatePaymentLinkLineItem, 'moov/models/components/createpaymentlinklineitem.rb'
176
177
  autoload :CreatePaymentLinkLineItemOption, 'moov/models/components/createpaymentlinklineitemoption.rb'
@@ -187,6 +188,10 @@ module Moov
187
188
  autoload :CreateRefundResponse, 'moov/models/components/createrefundresponse.rb'
188
189
  autoload :CreateRepresentative, 'moov/models/components/createrepresentative.rb'
189
190
  autoload :CreateReversal, 'moov/models/components/createreversal.rb'
191
+ autoload :CreateRunTransfer, 'moov/models/components/createruntransfer.rb'
192
+ autoload :CreateScheduledTransferLineItem, 'moov/models/components/createscheduledtransferlineitem.rb'
193
+ autoload :CreateScheduledTransferLineItemOption, 'moov/models/components/createscheduledtransferlineitemoption.rb'
194
+ autoload :CreateScheduledTransferLineItems, 'moov/models/components/createscheduledtransferlineitems.rb'
190
195
  autoload :CreateSweepConfig, 'moov/models/components/createsweepconfig.rb'
191
196
  autoload :CreateTerminalApplication, 'moov/models/components/createterminalapplication.rb'
192
197
  autoload :CreateTicket, 'moov/models/components/createticket.rb'
@@ -207,6 +212,7 @@ module Moov
207
212
  autoload :CreateTransferSourceACH, 'moov/models/components/createtransfersourceach.rb'
208
213
  autoload :CreateTransferSourceCard, 'moov/models/components/createtransfersourcecard.rb'
209
214
  autoload :CreateWallet, 'moov/models/components/createwallet.rb'
215
+ autoload :CreateWebhook, 'moov/models/components/createwebhook.rb'
210
216
  autoload :CreatedTransfer, 'moov/models/components/createdtransfer.rb'
211
217
  autoload :CustomerSupport, 'moov/models/components/customersupport.rb'
212
218
  autoload :CustomerSupportError, 'moov/models/components/customersupporterror.rb'
@@ -233,6 +239,7 @@ module Moov
233
239
  autoload :EntryMode, 'moov/models/components/entrymode.rb'
234
240
  autoload :EstimatedActivity, 'moov/models/components/estimatedactivity.rb'
235
241
  autoload :EstimatedActivityError, 'moov/models/components/estimatedactivityerror.rb'
242
+ autoload :EventType, 'moov/models/components/eventtype.rb'
236
243
  autoload :EvidenceTextResponse, 'moov/models/components/evidencetextresponse.rb'
237
244
  autoload :EvidenceType, 'moov/models/components/evidencetype.rb'
238
245
  autoload :EvidenceUploadResponse, 'moov/models/components/evidenceuploadresponse.rb'
@@ -286,7 +293,6 @@ module Moov
286
293
  autoload :InstitutionsSearchResponse, 'moov/models/components/institutionssearchresponse.rb'
287
294
  autoload :Invoice, 'moov/models/components/invoice.rb'
288
295
  autoload :InvoiceExternalPayment, 'moov/models/components/invoiceexternalpayment.rb'
289
- autoload :InvoiceExternalPaymentPaymentType, 'moov/models/components/invoiceexternalpayment_paymenttype.rb'
290
296
  autoload :InvoiceLineItem, 'moov/models/components/invoicelineitem.rb'
291
297
  autoload :InvoiceLineItemImageMetadata, 'moov/models/components/invoicelineitemimagemetadata.rb'
292
298
  autoload :InvoiceLineItemOption, 'moov/models/components/invoicelineitemoption.rb'
@@ -298,7 +304,6 @@ module Moov
298
304
  autoload :InvoicePaymentType, 'moov/models/components/invoicepaymenttype.rb'
299
305
  autoload :InvoiceStatus, 'moov/models/components/invoicestatus.rb'
300
306
  autoload :InvoiceTransferPayment, 'moov/models/components/invoicetransferpayment.rb'
301
- autoload :InvoiceTransferPaymentPaymentType, 'moov/models/components/invoicetransferpayment_paymenttype.rb'
302
307
  autoload :IssuedCard, 'moov/models/components/issuedcard.rb'
303
308
  autoload :IssuedCardAuthorization, 'moov/models/components/issuedcardauthorization.rb'
304
309
  autoload :IssuedCardAuthorizationEvent, 'moov/models/components/issuedcardauthorizationevent.rb'
@@ -391,6 +396,7 @@ module Moov
391
396
  autoload :PendingLitigation, 'moov/models/components/pendinglitigation.rb'
392
397
  autoload :PhoneNumber, 'moov/models/components/phonenumber.rb'
393
398
  autoload :PhoneNumberError, 'moov/models/components/phonenumbererror.rb'
399
+ autoload :PingResponse, 'moov/models/components/pingresponse.rb'
394
400
  autoload :PlaidIntegration, 'moov/models/components/plaidintegration.rb'
395
401
  autoload :PlaidLinkIntegration, 'moov/models/components/plaidlinkintegration.rb'
396
402
  autoload :PlaidLinkPayload, 'moov/models/components/plaidlinkpayload.rb'
@@ -420,6 +426,7 @@ module Moov
420
426
  autoload :ReceiptRequest, 'moov/models/components/receiptrequest.rb'
421
427
  autoload :ReceiptResponse, 'moov/models/components/receiptresponse.rb'
422
428
  autoload :Recur, 'moov/models/components/recur.rb'
429
+ autoload :RecurResponse, 'moov/models/components/recurresponse.rb'
423
430
  autoload :RefundCardDetails, 'moov/models/components/refundcarddetails.rb'
424
431
  autoload :RefundCardStatus, 'moov/models/components/refundcardstatus.rb'
425
432
  autoload :RefundPolicy, 'moov/models/components/refundpolicy.rb'
@@ -446,6 +453,7 @@ module Moov
446
453
  autoload :ScheduleListResponse, 'moov/models/components/schedulelistresponse.rb'
447
454
  autoload :SchedulePaymentMethod, 'moov/models/components/schedulepaymentmethod.rb'
448
455
  autoload :ScheduleResponse, 'moov/models/components/scheduleresponse.rb'
456
+ autoload :ScheduledTransferImageMetadata, 'moov/models/components/scheduledtransferimagemetadata.rb'
449
457
  autoload :ScheduledTransferLineItem, 'moov/models/components/scheduledtransferlineitem.rb'
450
458
  autoload :ScheduledTransferLineItemOption, 'moov/models/components/scheduledtransferlineitemoption.rb'
451
459
  autoload :ScheduledTransferLineItems, 'moov/models/components/scheduledtransferlineitems.rb'
@@ -528,6 +536,7 @@ module Moov
528
536
  autoload :UpdateTicketStatus, 'moov/models/components/updateticketstatus.rb'
529
537
  autoload :UpdateUnderwriting, 'moov/models/components/updateunderwriting.rb'
530
538
  autoload :UpdateUnderwritingErrorError, 'moov/models/components/updateunderwritingerror_error.rb'
539
+ autoload :UpdateWebhook, 'moov/models/components/updatewebhook.rb'
531
540
  autoload :UpsertSchedule, 'moov/models/components/upsertschedule.rb'
532
541
  autoload :UpsertUnderwriting, 'moov/models/components/upsertunderwriting.rb'
533
542
  autoload :Verification, 'moov/models/components/verification.rb'
@@ -546,6 +555,7 @@ module Moov
546
555
  autoload :WalletTransactionStatus, 'moov/models/components/wallettransactionstatus.rb'
547
556
  autoload :WalletTransactionType, 'moov/models/components/wallettransactiontype.rb'
548
557
  autoload :WalletType, 'moov/models/components/wallettype.rb'
558
+ autoload :Webhook, 'moov/models/components/webhook.rb'
549
559
  autoload :WebhookBillingStatementCreated, 'moov/models/components/webhookbillingstatementcreated.rb'
550
560
  autoload :WebhookData, 'moov/models/components/webhookdata.rb'
551
561
  autoload :WebhookDataAccountCreated, 'moov/models/components/webhookdataaccountcreated.rb'
@@ -587,6 +597,8 @@ module Moov
587
597
  autoload :WebhookDataWalletUpdated, 'moov/models/components/webhookdatawalletupdated.rb'
588
598
  autoload :WebhookEvent, 'moov/models/components/webhookevent.rb'
589
599
  autoload :WebhookEventType, 'moov/models/components/webhookeventtype.rb'
600
+ autoload :WebhookSecret, 'moov/models/components/webhooksecret.rb'
601
+ autoload :WebhookStatus, 'moov/models/components/webhookstatus.rb'
590
602
  autoload :WebhookTransferPaymentMethodDetails, 'moov/models/components/webhooktransferpaymentmethoddetails.rb'
591
603
  autoload :WireInstitution, 'moov/models/components/wireinstitution.rb'
592
604
  autoload :WireServices, 'moov/models/components/wireservices.rb'
@@ -0,0 +1,49 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Errors
10
+
11
+
12
+ class CreateInvoicePaymentError < StandardError
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :amount, Crystalline::Nilable.new(Models::Components::AmountDecimalValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
18
+
19
+ field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
20
+
21
+ field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
22
+
23
+ field :payment_date, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentDate') } }
24
+ # Raw HTTP response; suitable for custom response parsing
25
+ field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
26
+
27
+ sig { params(amount: T.nilable(Models::Components::AmountDecimalValidationError), foreign_id: T.nilable(::String), description: T.nilable(::String), payment_date: T.nilable(::String), raw_response: T.nilable(::Faraday::Response)).void }
28
+ def initialize(amount: nil, foreign_id: nil, description: nil, payment_date: nil, raw_response: nil)
29
+ @amount = amount
30
+ @foreign_id = foreign_id
31
+ @description = description
32
+ @payment_date = payment_date
33
+ @raw_response = raw_response
34
+ end
35
+
36
+ sig { params(other: T.untyped).returns(T::Boolean) }
37
+ def ==(other)
38
+ return false unless other.is_a? self.class
39
+ return false unless @amount == other.amount
40
+ return false unless @foreign_id == other.foreign_id
41
+ return false unless @description == other.description
42
+ return false unless @payment_date == other.payment_date
43
+ return false unless @raw_response == other.raw_response
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Errors::CreateInvoicePaymentError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Errors::CreateInvoicePaymentError
11
+ def amount(); end
12
+ def amount=(str_); end
13
+ def foreign_id(); end
14
+ def foreign_id=(str_); end
15
+ def description(); end
16
+ def description=(str_); end
17
+ def payment_date(); end
18
+ def payment_date=(str_); end
19
+ def raw_response(); end
20
+ def raw_response=(str_); end
21
+ end