moov_ruby 0.3.5 → 0.3.7

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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/client.rb +2 -1
  3. data/lib/moov/invoices.rb +792 -0
  4. data/lib/moov/models/components/amountdecimalupdate.rb +39 -0
  5. data/lib/moov/models/components/amountdecimalupdate.rbi +15 -0
  6. data/lib/moov/models/components/createinvoice.rb +53 -0
  7. data/lib/moov/models/components/createinvoice.rbi +23 -0
  8. data/lib/moov/models/components/createpaymentlink.rb +2 -2
  9. data/lib/moov/models/components/createpaymentlinklineitem.rb +53 -0
  10. data/lib/moov/models/components/createpaymentlinklineitem.rbi +23 -0
  11. data/lib/moov/models/components/createpaymentlinklineitemoption.rb +49 -0
  12. data/lib/moov/models/components/createpaymentlinklineitemoption.rbi +21 -0
  13. data/lib/moov/models/components/createpaymentlinklineitemoptionvalidationerror.rb +45 -0
  14. data/lib/moov/models/components/createpaymentlinklineitemoptionvalidationerror.rbi +19 -0
  15. data/lib/moov/models/components/createpaymentlinklineitems.rb +34 -0
  16. data/lib/moov/models/components/{paymentlinklineitemsupdate.rbi → createpaymentlinklineitems.rbi} +2 -2
  17. data/lib/moov/models/components/{paymentlinklineitemsupdate.rb → createpaymentlinklineitemsupdate.rb} +3 -3
  18. data/lib/moov/models/components/{paymentlinklineitemsvalidationerror.rbi → createpaymentlinklineitemsupdate.rbi} +2 -2
  19. data/lib/moov/models/components/createpaymentlinklineitemsvalidationerror.rb +33 -0
  20. data/lib/moov/models/components/createpaymentlinklineitemsvalidationerror.rbi +13 -0
  21. data/lib/moov/models/components/createpaymentlinklineitemvalidationerror.rb +49 -0
  22. data/lib/moov/models/components/createpaymentlinklineitemvalidationerror.rbi +21 -0
  23. data/lib/moov/models/components/invoice.rb +117 -0
  24. data/lib/moov/models/components/invoice.rbi +55 -0
  25. data/lib/moov/models/components/invoiceexternalpayment.rb +49 -0
  26. data/lib/moov/models/components/invoiceexternalpayment.rbi +21 -0
  27. data/lib/moov/models/components/invoiceexternalpayment_paymenttype.rb +21 -0
  28. data/lib/moov/models/components/invoiceexternalpayment_paymenttype.rbi +11 -0
  29. data/lib/moov/models/components/invoicelineitem.rb +49 -0
  30. data/lib/moov/models/components/{paymentlinklineitemvalidationerror.rbi → invoicelineitem.rbi} +6 -6
  31. data/lib/moov/models/components/invoicelineitemoption.rb +45 -0
  32. data/lib/moov/models/components/{paymentlinklineitemoptionvalidationerror.rbi → invoicelineitemoption.rbi} +6 -6
  33. data/lib/moov/models/components/{paymentlinklineitemoptionvalidationerror.rb → invoicelineitemoptionvalidationerror.rb} +1 -1
  34. data/lib/moov/models/components/invoicelineitemoptionvalidationerror.rbi +19 -0
  35. data/lib/moov/models/components/invoicelineitems.rb +33 -0
  36. data/lib/moov/models/components/invoicelineitems.rbi +13 -0
  37. data/lib/moov/models/components/invoicelineitemsupdate.rb +33 -0
  38. data/lib/moov/models/components/invoicelineitemsupdate.rbi +13 -0
  39. data/lib/moov/models/components/{paymentlinklineitemsvalidationerror.rb → invoicelineitemsvalidationerror.rb} +3 -3
  40. data/lib/moov/models/components/invoicelineitemsvalidationerror.rbi +13 -0
  41. data/lib/moov/models/components/{paymentlinklineitemvalidationerror.rb → invoicelineitemvalidationerror.rb} +3 -3
  42. data/lib/moov/models/components/invoicelineitemvalidationerror.rbi +21 -0
  43. data/lib/moov/models/components/invoicepayment.rb +28 -0
  44. data/lib/moov/models/components/invoicepayment.rbi +11 -0
  45. data/lib/moov/models/components/invoicestatus.rb +26 -0
  46. data/lib/moov/models/components/invoicestatus.rbi +11 -0
  47. data/lib/moov/models/components/invoicetransferpayment.rb +37 -0
  48. data/lib/moov/models/components/invoicetransferpayment.rbi +15 -0
  49. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rb +21 -0
  50. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rbi +11 -0
  51. data/lib/moov/models/components/markinvoicepaid.rb +41 -0
  52. data/lib/moov/models/components/markinvoicepaid.rbi +17 -0
  53. data/lib/moov/models/components/paymentlinklineitem.rb +6 -2
  54. data/lib/moov/models/components/paymentlinklineitem.rbi +2 -0
  55. data/lib/moov/models/components/paymentlinklineitemimagemetadata.rb +45 -0
  56. data/lib/moov/models/components/paymentlinklineitemimagemetadata.rbi +19 -0
  57. data/lib/moov/models/components/paymentlinklineitemoption.rb +6 -2
  58. data/lib/moov/models/components/paymentlinklineitemoption.rbi +2 -0
  59. data/lib/moov/models/components/updateinvoice.rb +53 -0
  60. data/lib/moov/models/components/updateinvoice.rbi +23 -0
  61. data/lib/moov/models/components/updatepaymentlink.rb +2 -2
  62. data/lib/moov/models/components/webhookdatainvoicecreated.rb +37 -0
  63. data/lib/moov/models/components/webhookdatainvoicecreated.rbi +15 -0
  64. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +41 -0
  65. data/lib/moov/models/components/webhookdatainvoiceupdated.rbi +17 -0
  66. data/lib/moov/models/components/webhookevent.rb +2 -2
  67. data/lib/moov/models/components/webhookeventtype.rb +2 -0
  68. data/lib/moov/models/components.rb +28 -4
  69. data/lib/moov/models/errors/createinvoiceerror.rb +57 -0
  70. data/lib/moov/models/errors/createinvoiceerror.rbi +25 -0
  71. data/lib/moov/models/errors/createpaymentlinkerror.rb +2 -2
  72. data/lib/moov/models/errors/listinvoicesvalidationerror.rb +49 -0
  73. data/lib/moov/models/errors/listinvoicesvalidationerror.rbi +21 -0
  74. data/lib/moov/models/errors/markinvoicepaiderror.rb +45 -0
  75. data/lib/moov/models/errors/markinvoicepaiderror.rbi +19 -0
  76. data/lib/moov/models/errors/updateinvoiceerror.rb +57 -0
  77. data/lib/moov/models/errors/updateinvoiceerror.rbi +25 -0
  78. data/lib/moov/models/errors/updatepaymentlinkerror.rb +2 -2
  79. data/lib/moov/models/errors.rb +4 -0
  80. data/lib/moov/models/operations/createinvoice_request.rb +50 -0
  81. data/lib/moov/models/operations/createinvoice_request.rbi +17 -0
  82. data/lib/moov/models/operations/createinvoice_response.rb +49 -0
  83. data/lib/moov/models/operations/createinvoice_response.rbi +21 -0
  84. data/lib/moov/models/operations/getinvoice_request.rb +50 -0
  85. data/lib/moov/models/operations/getinvoice_request.rbi +17 -0
  86. data/lib/moov/models/operations/getinvoice_response.rb +49 -0
  87. data/lib/moov/models/operations/getinvoice_response.rbi +21 -0
  88. data/lib/moov/models/operations/listinvoices_request.rb +62 -0
  89. data/lib/moov/models/operations/listinvoices_request.rbi +23 -0
  90. data/lib/moov/models/operations/listinvoices_response.rb +49 -0
  91. data/lib/moov/models/operations/listinvoices_response.rbi +21 -0
  92. data/lib/moov/models/operations/markpaidinvoice_request.rb +54 -0
  93. data/lib/moov/models/operations/markpaidinvoice_request.rbi +19 -0
  94. data/lib/moov/models/operations/markpaidinvoice_response.rb +49 -0
  95. data/lib/moov/models/operations/markpaidinvoice_response.rbi +21 -0
  96. data/lib/moov/models/operations/updateinvoice_request.rb +54 -0
  97. data/lib/moov/models/operations/updateinvoice_request.rbi +19 -0
  98. data/lib/moov/models/operations/updateinvoice_response.rb +49 -0
  99. data/lib/moov/models/operations/updateinvoice_response.rbi +21 -0
  100. data/lib/moov/models/operations.rb +10 -0
  101. data/lib/moov/sdkconfiguration.rb +3 -3
  102. data/lib/moov_ruby.rb +1 -0
  103. metadata +87 -10
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::InvoicePayment
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoicePayment
11
+ end
@@ -0,0 +1,26 @@
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 InvoiceStatus < T::Enum
13
+
14
+
15
+ enums do
16
+ DRAFT = new('draft')
17
+ UNPAID = new('unpaid')
18
+ PAYMENT_PENDING = new('payment-pending')
19
+ PAID = new('paid')
20
+ OVERDUE = new('overdue')
21
+ CANCELED = new('canceled')
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::InvoiceStatus
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceStatus
11
+ end
@@ -0,0 +1,37 @@
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 InvoiceTransferPayment
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :payment_type, Models::Components::InvoiceTransferPaymentPaymentType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::InvoiceTransferPaymentPaymentType, false) } }
18
+
19
+ field :transfer_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID'), required: true } }
20
+
21
+ sig { params(payment_type: Models::Components::InvoiceTransferPaymentPaymentType, transfer_id: ::String).void }
22
+ def initialize(payment_type:, transfer_id:)
23
+ @payment_type = payment_type
24
+ @transfer_id = transfer_id
25
+ end
26
+
27
+ sig { params(other: T.untyped).returns(T::Boolean) }
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @payment_type == other.payment_type
31
+ return false unless @transfer_id == other.transfer_id
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::InvoiceTransferPayment
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceTransferPayment
11
+ def payment_type(); end
12
+ def payment_type=(str_); end
13
+ def transfer_id(); end
14
+ def transfer_id=(str_); end
15
+ end
@@ -0,0 +1,21 @@
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 InvoiceTransferPaymentPaymentType < T::Enum
13
+
14
+
15
+ enums do
16
+ TRANSFER = new('transfer')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::InvoiceTransferPaymentPaymentType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceTransferPaymentPaymentType
11
+ end
@@ -0,0 +1,41 @@
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 MarkInvoicePaid
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
18
+
19
+ field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
20
+
21
+ field :payment_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentDate'), 'decoder': Utils.datetime_from_iso_format(true) } }
22
+
23
+ sig { params(foreign_id: T.nilable(::String), description: T.nilable(::String), payment_date: T.nilable(::DateTime)).void }
24
+ def initialize(foreign_id: nil, description: nil, payment_date: nil)
25
+ @foreign_id = foreign_id
26
+ @description = description
27
+ @payment_date = payment_date
28
+ end
29
+
30
+ sig { params(other: T.untyped).returns(T::Boolean) }
31
+ def ==(other)
32
+ return false unless other.is_a? self.class
33
+ return false unless @foreign_id == other.foreign_id
34
+ return false unless @description == other.description
35
+ return false unless @payment_date == other.payment_date
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::MarkInvoicePaid
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MarkInvoicePaid
11
+ def foreign_id(); end
12
+ def foreign_id=(str_); end
13
+ def description(); end
14
+ def description=(str_); end
15
+ def payment_date(); end
16
+ def payment_date=(str_); end
17
+ end
@@ -21,15 +21,18 @@ module Moov
21
21
  field :quantity, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity'), required: true } }
22
22
  # Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations).
23
23
  field :options, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PaymentLinkLineItemOption)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
24
+ # Optional list of images associated with this line item.
25
+ field :images, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PaymentLinkLineItemImageMetadata)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('images') } }
24
26
  # Optional unique identifier associating the line item with a product.
25
27
  field :product_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('productID') } }
26
28
 
27
- sig { params(name: ::String, base_price: Models::Components::AmountDecimal, quantity: ::Integer, options: T.nilable(T::Array[Models::Components::PaymentLinkLineItemOption]), 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::PaymentLinkLineItemOption]), images: T.nilable(T::Array[Models::Components::PaymentLinkLineItemImageMetadata]), product_id: T.nilable(::String)).void }
30
+ def initialize(name:, base_price:, quantity:, options: nil, images: nil, product_id: nil)
29
31
  @name = name
30
32
  @base_price = base_price
31
33
  @quantity = quantity
32
34
  @options = options
35
+ @images = images
33
36
  @product_id = product_id
34
37
  end
35
38
 
@@ -40,6 +43,7 @@ module Moov
40
43
  return false unless @base_price == other.base_price
41
44
  return false unless @quantity == other.quantity
42
45
  return false unless @options == other.options
46
+ return false unless @images == other.images
43
47
  return false unless @product_id == other.product_id
44
48
  true
45
49
  end
@@ -16,6 +16,8 @@ class Moov::Models::Components::PaymentLinkLineItem
16
16
  def quantity=(str_); end
17
17
  def options(); end
18
18
  def options=(str_); end
19
+ def images(); end
20
+ def images=(str_); end
19
21
  def product_id(); end
20
22
  def product_id=(str_); end
21
23
  end
@@ -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 PaymentLinkLineItemImageMetadata
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::PaymentLinkLineItemImageMetadata
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PaymentLinkLineItemImageMetadata
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
@@ -19,14 +19,17 @@ module Moov
19
19
  field :quantity, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity'), required: true } }
20
20
  # Optional price modification applied by this option. Can be positive, negative, or zero.
21
21
  field :price_modifier, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priceModifier') } }
22
+ # Optional list of images associated with this line item option.
23
+ field :images, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PaymentLinkLineItemImageMetadata)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('images') } }
22
24
  # Optional group identifier to categorize related options (e.g., 'toppings').
23
25
  field :group, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('group') } }
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), images: T.nilable(T::Array[Models::Components::PaymentLinkLineItemImageMetadata]), group: T.nilable(::String)).void }
28
+ def initialize(name:, quantity:, price_modifier: nil, images: nil, group: nil)
27
29
  @name = name
28
30
  @quantity = quantity
29
31
  @price_modifier = price_modifier
32
+ @images = images
30
33
  @group = group
31
34
  end
32
35
 
@@ -36,6 +39,7 @@ module Moov
36
39
  return false unless @name == other.name
37
40
  return false unless @quantity == other.quantity
38
41
  return false unless @price_modifier == other.price_modifier
42
+ return false unless @images == other.images
39
43
  return false unless @group == other.group
40
44
  true
41
45
  end
@@ -14,6 +14,8 @@ class Moov::Models::Components::PaymentLinkLineItemOption
14
14
  def quantity=(str_); end
15
15
  def price_modifier(); end
16
16
  def price_modifier=(str_); end
17
+ def images(); end
18
+ def images=(str_); end
17
19
  def group(); end
18
20
  def group=(str_); end
19
21
  end
@@ -0,0 +1,53 @@
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 UpdateInvoice
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
18
+ # A collection of line items for an invoice.
19
+ field :line_items, Crystalline::Nilable.new(Models::Components::InvoiceLineItemsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
20
+ # Status can only be updated to `canceled` when the status is either `draft`, `unpaid`, or `overdue`.
21
+ field :status, Crystalline::Nilable.new(Models::Components::InvoiceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::InvoiceStatus, true) } }
22
+
23
+ field :tax_amount, Crystalline::Nilable.new(Models::Components::AmountDecimalUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('taxAmount') } }
24
+
25
+ field :invoice_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceDate'), 'decoder': Utils.datetime_from_iso_format(true) } }
26
+
27
+ field :due_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dueDate'), 'decoder': Utils.datetime_from_iso_format(true) } }
28
+
29
+ sig { params(description: T.nilable(::String), line_items: T.nilable(Models::Components::InvoiceLineItemsUpdate), status: T.nilable(Models::Components::InvoiceStatus), tax_amount: T.nilable(Models::Components::AmountDecimalUpdate), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime)).void }
30
+ def initialize(description: nil, line_items: nil, status: nil, tax_amount: nil, invoice_date: nil, due_date: nil)
31
+ @description = description
32
+ @line_items = line_items
33
+ @status = status
34
+ @tax_amount = tax_amount
35
+ @invoice_date = invoice_date
36
+ @due_date = due_date
37
+ end
38
+
39
+ sig { params(other: T.untyped).returns(T::Boolean) }
40
+ def ==(other)
41
+ return false unless other.is_a? self.class
42
+ return false unless @description == other.description
43
+ return false unless @line_items == other.line_items
44
+ return false unless @status == other.status
45
+ return false unless @tax_amount == other.tax_amount
46
+ return false unless @invoice_date == other.invoice_date
47
+ return false unless @due_date == other.due_date
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::UpdateInvoice
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::UpdateInvoice
11
+ def description(); end
12
+ def description=(str_); end
13
+ def line_items(); end
14
+ def line_items=(str_); end
15
+ def status(); end
16
+ def status=(str_); end
17
+ def tax_amount(); end
18
+ def tax_amount=(str_); end
19
+ def invoice_date(); end
20
+ def invoice_date=(str_); end
21
+ def due_date(); end
22
+ def due_date=(str_); end
23
+ end
@@ -25,11 +25,11 @@ module Moov
25
25
  field :payout, Crystalline::Nilable.new(Models::Components::PaymentLinkPayoutDetailsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout') } }
26
26
  # An optional collection of line items for a payment link.
27
27
  # When line items are provided, their total plus sales tax must equal the payment link amount.
28
- field :line_items, Crystalline::Nilable.new(Models::Components::PaymentLinkLineItemsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
28
+ field :line_items, Crystalline::Nilable.new(Models::Components::CreatePaymentLinkLineItemsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
29
29
 
30
30
  field :expires_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), 'decoder': Utils.datetime_from_iso_format(true) } }
31
31
 
32
- sig { params(amount: T.nilable(Models::Components::AmountUpdate), display: T.nilable(Models::Components::PaymentLinkDisplayOptionsUpdate), customer: T.nilable(Models::Components::PaymentLinkCustomerOptions), payment: T.nilable(Models::Components::PaymentLinkPaymentDetailsUpdate), payout: T.nilable(Models::Components::PaymentLinkPayoutDetailsUpdate), line_items: T.nilable(Models::Components::PaymentLinkLineItemsUpdate), expires_on: T.nilable(::DateTime)).void }
32
+ sig { params(amount: T.nilable(Models::Components::AmountUpdate), display: T.nilable(Models::Components::PaymentLinkDisplayOptionsUpdate), customer: T.nilable(Models::Components::PaymentLinkCustomerOptions), payment: T.nilable(Models::Components::PaymentLinkPaymentDetailsUpdate), payout: T.nilable(Models::Components::PaymentLinkPayoutDetailsUpdate), line_items: T.nilable(Models::Components::CreatePaymentLinkLineItemsUpdate), expires_on: T.nilable(::DateTime)).void }
33
33
  def initialize(amount: nil, display: nil, customer: nil, payment: nil, payout: nil, line_items: nil, expires_on: nil)
34
34
  @amount = amount
35
35
  @display = display
@@ -0,0 +1,37 @@
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 WebhookDataInvoiceCreated
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
18
+
19
+ field :invoice_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceID'), required: true } }
20
+
21
+ sig { params(account_id: ::String, invoice_id: ::String).void }
22
+ def initialize(account_id:, invoice_id:)
23
+ @account_id = account_id
24
+ @invoice_id = invoice_id
25
+ end
26
+
27
+ sig { params(other: T.untyped).returns(T::Boolean) }
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @account_id == other.account_id
31
+ return false unless @invoice_id == other.invoice_id
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::WebhookDataInvoiceCreated
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::WebhookDataInvoiceCreated
11
+ def account_id(); end
12
+ def account_id=(str_); end
13
+ def invoice_id(); end
14
+ def invoice_id=(str_); end
15
+ end
@@ -0,0 +1,41 @@
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 WebhookDataInvoiceUpdated
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
18
+
19
+ field :invoice_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceID'), required: true } }
20
+
21
+ field :status, Models::Components::InvoiceStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': Utils.enum_from_string(Models::Components::InvoiceStatus, false) } }
22
+
23
+ sig { params(account_id: ::String, invoice_id: ::String, status: Models::Components::InvoiceStatus).void }
24
+ def initialize(account_id:, invoice_id:, status:)
25
+ @account_id = account_id
26
+ @invoice_id = invoice_id
27
+ @status = status
28
+ end
29
+
30
+ sig { params(other: T.untyped).returns(T::Boolean) }
31
+ def ==(other)
32
+ return false unless other.is_a? self.class
33
+ return false unless @account_id == other.account_id
34
+ return false unless @invoice_id == other.invoice_id
35
+ return false unless @status == other.status
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::WebhookDataInvoiceUpdated
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::WebhookDataInvoiceUpdated
11
+ def account_id(); end
12
+ def account_id=(str_); end
13
+ def invoice_id(); end
14
+ def invoice_id=(str_); end
15
+ def status(); end
16
+ def status=(str_); end
17
+ end
@@ -18,11 +18,11 @@ module Moov
18
18
  # The type of event that occurred.
19
19
  field :type, Models::Components::WebhookEventType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('type'), required: true, 'decoder': Utils.enum_from_string(Models::Components::WebhookEventType, false) } }
20
20
  # The data for the webhook event. The contents are based on the event type.
21
- field :data, Crystalline::Union.new(Models::Components::WebhookDataAccountCreated, Models::Components::WebhookDataAccountUpdated, Models::Components::WebhookDataAccountDisconnected, Models::Components::WebhookDataBalanceUpdated, Models::Components::WebhookDataBankAccountCreated, Models::Components::WebhookDataBankAccountUpdated, Models::Components::WebhookDataBankAccountDeleted, Models::Components::WebhookDataCancellationCreated, Models::Components::WebhookDataCancellationUpdated, Models::Components::WebhookDataCardAutoUpdated, Models::Components::WebhookDataCapabilityRequested, Models::Components::WebhookDataCapabilityUpdated, Models::Components::WebhookDataDisputeCreated, Models::Components::WebhookDataDisputeUpdated, Models::Components::WebhookDataNetworkIDUpdated, Models::Components::WebhookDataPaymentMethodEnabled, Models::Components::WebhookDataPaymentMethodDisabled, Models::Components::WebhookDataRefundCreated, Models::Components::WebhookDataRefundUpdated, Models::Components::WebhookDataRepresentativeCreated, Models::Components::WebhookDataRepresentativeUpdated, Models::Components::WebhookDataRepresentativeDisabled, Models::Components::WebhookDataSweepCreated, Models::Components::WebhookDataSweepUpdated, Models::Components::WebhookDataTerminalApplicationCreated, Models::Components::WebhookDataTerminalApplicationUpdated, Models::Components::WebhookDataTicketCreated, Models::Components::WebhookDataTicketUpdated, Models::Components::WebhookDataTicketMessageAdded, Models::Components::WebhookDataTransferCreated, Models::Components::WebhookDataTransferUpdated, Models::Components::WebhookDataWalletCreated, Models::Components::WebhookDataWalletUpdated, Models::Components::WebhookDataWalletTransactionUpdated, Models::Components::WebhookBillingStatementCreated), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('data'), required: true } }
21
+ field :data, Crystalline::Union.new(Models::Components::WebhookDataAccountCreated, Models::Components::WebhookDataAccountUpdated, Models::Components::WebhookDataAccountDisconnected, Models::Components::WebhookDataBalanceUpdated, Models::Components::WebhookDataBankAccountCreated, Models::Components::WebhookDataBankAccountUpdated, Models::Components::WebhookDataBankAccountDeleted, Models::Components::WebhookDataCancellationCreated, Models::Components::WebhookDataCancellationUpdated, Models::Components::WebhookDataCardAutoUpdated, Models::Components::WebhookDataCapabilityRequested, Models::Components::WebhookDataCapabilityUpdated, Models::Components::WebhookDataDisputeCreated, Models::Components::WebhookDataDisputeUpdated, Models::Components::WebhookDataInvoiceCreated, Models::Components::WebhookDataInvoiceUpdated, Models::Components::WebhookDataNetworkIDUpdated, Models::Components::WebhookDataPaymentMethodEnabled, Models::Components::WebhookDataPaymentMethodDisabled, Models::Components::WebhookDataRefundCreated, Models::Components::WebhookDataRefundUpdated, Models::Components::WebhookDataRepresentativeCreated, Models::Components::WebhookDataRepresentativeUpdated, Models::Components::WebhookDataRepresentativeDisabled, Models::Components::WebhookDataSweepCreated, Models::Components::WebhookDataSweepUpdated, Models::Components::WebhookDataTerminalApplicationCreated, Models::Components::WebhookDataTerminalApplicationUpdated, Models::Components::WebhookDataTicketCreated, Models::Components::WebhookDataTicketUpdated, Models::Components::WebhookDataTicketMessageAdded, Models::Components::WebhookDataTransferCreated, Models::Components::WebhookDataTransferUpdated, Models::Components::WebhookDataWalletCreated, Models::Components::WebhookDataWalletUpdated, Models::Components::WebhookDataWalletTransactionUpdated, Models::Components::WebhookBillingStatementCreated), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('data'), required: true } }
22
22
 
23
23
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
24
24
 
25
- sig { params(event_id: ::String, type: Models::Components::WebhookEventType, data: T.any(Models::Components::WebhookDataAccountCreated, Models::Components::WebhookDataAccountUpdated, Models::Components::WebhookDataAccountDisconnected, Models::Components::WebhookDataBalanceUpdated, Models::Components::WebhookDataBankAccountCreated, Models::Components::WebhookDataBankAccountUpdated, Models::Components::WebhookDataBankAccountDeleted, Models::Components::WebhookDataCancellationCreated, Models::Components::WebhookDataCancellationUpdated, Models::Components::WebhookDataCardAutoUpdated, Models::Components::WebhookDataCapabilityRequested, Models::Components::WebhookDataCapabilityUpdated, Models::Components::WebhookDataDisputeCreated, Models::Components::WebhookDataDisputeUpdated, Models::Components::WebhookDataNetworkIDUpdated, Models::Components::WebhookDataPaymentMethodEnabled, Models::Components::WebhookDataPaymentMethodDisabled, Models::Components::WebhookDataRefundCreated, Models::Components::WebhookDataRefundUpdated, Models::Components::WebhookDataRepresentativeCreated, Models::Components::WebhookDataRepresentativeUpdated, Models::Components::WebhookDataRepresentativeDisabled, Models::Components::WebhookDataSweepCreated, Models::Components::WebhookDataSweepUpdated, Models::Components::WebhookDataTerminalApplicationCreated, Models::Components::WebhookDataTerminalApplicationUpdated, Models::Components::WebhookDataTicketCreated, Models::Components::WebhookDataTicketUpdated, Models::Components::WebhookDataTicketMessageAdded, Models::Components::WebhookDataTransferCreated, Models::Components::WebhookDataTransferUpdated, Models::Components::WebhookDataWalletCreated, Models::Components::WebhookDataWalletUpdated, Models::Components::WebhookDataWalletTransactionUpdated, Models::Components::WebhookBillingStatementCreated), created_on: ::DateTime).void }
25
+ sig { params(event_id: ::String, type: Models::Components::WebhookEventType, data: T.any(Models::Components::WebhookDataAccountCreated, Models::Components::WebhookDataAccountUpdated, Models::Components::WebhookDataAccountDisconnected, Models::Components::WebhookDataBalanceUpdated, Models::Components::WebhookDataBankAccountCreated, Models::Components::WebhookDataBankAccountUpdated, Models::Components::WebhookDataBankAccountDeleted, Models::Components::WebhookDataCancellationCreated, Models::Components::WebhookDataCancellationUpdated, Models::Components::WebhookDataCardAutoUpdated, Models::Components::WebhookDataCapabilityRequested, Models::Components::WebhookDataCapabilityUpdated, Models::Components::WebhookDataDisputeCreated, Models::Components::WebhookDataDisputeUpdated, Models::Components::WebhookDataInvoiceCreated, Models::Components::WebhookDataInvoiceUpdated, Models::Components::WebhookDataNetworkIDUpdated, Models::Components::WebhookDataPaymentMethodEnabled, Models::Components::WebhookDataPaymentMethodDisabled, Models::Components::WebhookDataRefundCreated, Models::Components::WebhookDataRefundUpdated, Models::Components::WebhookDataRepresentativeCreated, Models::Components::WebhookDataRepresentativeUpdated, Models::Components::WebhookDataRepresentativeDisabled, Models::Components::WebhookDataSweepCreated, Models::Components::WebhookDataSweepUpdated, Models::Components::WebhookDataTerminalApplicationCreated, Models::Components::WebhookDataTerminalApplicationUpdated, Models::Components::WebhookDataTicketCreated, Models::Components::WebhookDataTicketUpdated, Models::Components::WebhookDataTicketMessageAdded, Models::Components::WebhookDataTransferCreated, Models::Components::WebhookDataTransferUpdated, Models::Components::WebhookDataWalletCreated, Models::Components::WebhookDataWalletUpdated, Models::Components::WebhookDataWalletTransactionUpdated, Models::Components::WebhookBillingStatementCreated), created_on: ::DateTime).void }
26
26
  def initialize(event_id:, type:, data:, created_on:)
27
27
  @event_id = event_id
28
28
  @type = type
@@ -28,6 +28,8 @@ module Moov
28
28
  CAPABILITY_UPDATED = new('capability.updated')
29
29
  DISPUTE_CREATED = new('dispute.created')
30
30
  DISPUTE_UPDATED = new('dispute.updated')
31
+ INVOICE_CREATED = new('invoice.created')
32
+ INVOICE_UPDATED = new('invoice.updated')
31
33
  NETWORK_ID_UPDATED = new('networkID.updated')
32
34
  PAYMENT_METHOD_ENABLED = new('paymentMethod.enabled')
33
35
  PAYMENT_METHOD_DISABLED = new('paymentMethod.disabled')