moov_ruby 0.3.4 → 0.3.6

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/client.rb +2 -1
  3. data/lib/moov/fee_plans.rb +120 -1
  4. data/lib/moov/invoices.rb +792 -0
  5. data/lib/moov/models/components/amountdecimalupdate.rb +39 -0
  6. data/lib/moov/models/components/amountdecimalupdate.rbi +15 -0
  7. data/lib/moov/models/components/createinvoice.rb +53 -0
  8. data/lib/moov/models/components/createinvoice.rbi +23 -0
  9. data/lib/moov/models/components/instantbankcreditpaymentmethod.rb +41 -0
  10. data/lib/moov/models/components/instantbankcreditpaymentmethod.rbi +17 -0
  11. data/lib/moov/models/components/instantbankcreditpaymentmethod_paymentmethodtype.rb +21 -0
  12. data/lib/moov/models/components/instantbankcreditpaymentmethod_paymentmethodtype.rbi +11 -0
  13. data/lib/moov/models/components/invoice.rb +117 -0
  14. data/lib/moov/models/components/invoice.rbi +55 -0
  15. data/lib/moov/models/components/invoiceexternalpayment.rb +49 -0
  16. data/lib/moov/models/components/invoiceexternalpayment.rbi +21 -0
  17. data/lib/moov/models/components/invoiceexternalpayment_paymenttype.rb +21 -0
  18. data/lib/moov/models/components/invoiceexternalpayment_paymenttype.rbi +11 -0
  19. data/lib/moov/models/components/invoicelineitem.rb +49 -0
  20. data/lib/moov/models/components/invoicelineitem.rbi +21 -0
  21. data/lib/moov/models/components/invoicelineitemoption.rb +45 -0
  22. data/lib/moov/models/components/invoicelineitemoption.rbi +19 -0
  23. data/lib/moov/models/components/invoicelineitemoptionvalidationerror.rb +45 -0
  24. data/lib/moov/models/components/invoicelineitemoptionvalidationerror.rbi +19 -0
  25. data/lib/moov/models/components/invoicelineitems.rb +33 -0
  26. data/lib/moov/models/components/invoicelineitems.rbi +13 -0
  27. data/lib/moov/models/components/invoicelineitemsupdate.rb +33 -0
  28. data/lib/moov/models/components/invoicelineitemsupdate.rbi +13 -0
  29. data/lib/moov/models/components/invoicelineitemsvalidationerror.rb +33 -0
  30. data/lib/moov/models/components/invoicelineitemsvalidationerror.rbi +13 -0
  31. data/lib/moov/models/components/invoicelineitemvalidationerror.rb +49 -0
  32. data/lib/moov/models/components/invoicelineitemvalidationerror.rbi +21 -0
  33. data/lib/moov/models/components/invoicepayment.rb +28 -0
  34. data/lib/moov/models/components/invoicepayment.rbi +11 -0
  35. data/lib/moov/models/components/invoicestatus.rb +26 -0
  36. data/lib/moov/models/components/invoicestatus.rbi +11 -0
  37. data/lib/moov/models/components/invoicetransferpayment.rb +37 -0
  38. data/lib/moov/models/components/invoicetransferpayment.rbi +15 -0
  39. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rb +21 -0
  40. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rbi +11 -0
  41. data/lib/moov/models/components/markinvoicepaid.rb +41 -0
  42. data/lib/moov/models/components/markinvoicepaid.rbi +17 -0
  43. data/lib/moov/models/components/paymentmethodtype.rb +1 -0
  44. data/lib/moov/models/components/transferoptions.rb +3 -3
  45. data/lib/moov/models/components/updateinvoice.rb +53 -0
  46. data/lib/moov/models/components/updateinvoice.rbi +23 -0
  47. data/lib/moov/models/components/webhookdatainvoicecreated.rb +37 -0
  48. data/lib/moov/models/components/webhookdatainvoicecreated.rbi +15 -0
  49. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +41 -0
  50. data/lib/moov/models/components/webhookdatainvoiceupdated.rbi +17 -0
  51. data/lib/moov/models/components/webhookevent.rb +2 -2
  52. data/lib/moov/models/components/webhookeventtype.rb +2 -0
  53. data/lib/moov/models/components.rb +22 -0
  54. data/lib/moov/models/errors/createinvoiceerror.rb +57 -0
  55. data/lib/moov/models/errors/createinvoiceerror.rbi +25 -0
  56. data/lib/moov/models/errors/listinvoicesvalidationerror.rb +49 -0
  57. data/lib/moov/models/errors/listinvoicesvalidationerror.rbi +21 -0
  58. data/lib/moov/models/errors/markinvoicepaiderror.rb +45 -0
  59. data/lib/moov/models/errors/markinvoicepaiderror.rbi +19 -0
  60. data/lib/moov/models/errors/updateinvoiceerror.rb +57 -0
  61. data/lib/moov/models/errors/updateinvoiceerror.rbi +25 -0
  62. data/lib/moov/models/errors.rb +4 -0
  63. data/lib/moov/models/operations/createinvoice_request.rb +50 -0
  64. data/lib/moov/models/operations/createinvoice_request.rbi +17 -0
  65. data/lib/moov/models/operations/createinvoice_response.rb +49 -0
  66. data/lib/moov/models/operations/createinvoice_response.rbi +21 -0
  67. data/lib/moov/models/operations/getinvoice_request.rb +50 -0
  68. data/lib/moov/models/operations/getinvoice_request.rbi +17 -0
  69. data/lib/moov/models/operations/getinvoice_response.rb +49 -0
  70. data/lib/moov/models/operations/getinvoice_response.rbi +21 -0
  71. data/lib/moov/models/operations/getpaymentmethod_response.rb +2 -2
  72. data/lib/moov/models/operations/listfeerevenue_request.rb +62 -0
  73. data/lib/moov/models/operations/listfeerevenue_request.rbi +23 -0
  74. data/lib/moov/models/operations/listfeerevenue_response.rb +49 -0
  75. data/lib/moov/models/operations/listfeerevenue_response.rbi +21 -0
  76. data/lib/moov/models/operations/listinvoices_request.rb +62 -0
  77. data/lib/moov/models/operations/listinvoices_request.rbi +23 -0
  78. data/lib/moov/models/operations/listinvoices_response.rb +49 -0
  79. data/lib/moov/models/operations/listinvoices_response.rbi +21 -0
  80. data/lib/moov/models/operations/listpaymentmethods_response.rb +2 -2
  81. data/lib/moov/models/operations/markpaidinvoice_request.rb +54 -0
  82. data/lib/moov/models/operations/markpaidinvoice_request.rbi +19 -0
  83. data/lib/moov/models/operations/markpaidinvoice_response.rb +49 -0
  84. data/lib/moov/models/operations/markpaidinvoice_response.rbi +21 -0
  85. data/lib/moov/models/operations/updateinvoice_request.rb +54 -0
  86. data/lib/moov/models/operations/updateinvoice_request.rbi +19 -0
  87. data/lib/moov/models/operations/updateinvoice_response.rb +49 -0
  88. data/lib/moov/models/operations/updateinvoice_response.rbi +21 -0
  89. data/lib/moov/models/operations.rb +12 -0
  90. data/lib/moov/payment_methods.rb +2 -2
  91. data/lib/moov/sdkconfiguration.rb +2 -2
  92. data/lib/moov_ruby.rb +1 -0
  93. metadata +79 -2
@@ -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 InvoiceLineItemOptionValidationError
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('name') } }
18
+
19
+ field :group, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('group') } }
20
+
21
+ field :price_modifier, Crystalline::Nilable.new(Models::Components::AmountDecimalValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priceModifier') } }
22
+
23
+ field :quantity, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity') } }
24
+
25
+ sig { params(name: T.nilable(::String), group: T.nilable(::String), price_modifier: T.nilable(Models::Components::AmountDecimalValidationError), quantity: T.nilable(::String)).void }
26
+ def initialize(name: nil, group: nil, price_modifier: nil, quantity: nil)
27
+ @name = name
28
+ @group = group
29
+ @price_modifier = price_modifier
30
+ @quantity = quantity
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 @name == other.name
37
+ return false unless @group == other.group
38
+ return false unless @price_modifier == other.price_modifier
39
+ return false unless @quantity == other.quantity
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::InvoiceLineItemOptionValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceLineItemOptionValidationError
11
+ def name(); end
12
+ def name=(str_); end
13
+ def group(); end
14
+ def group=(str_); end
15
+ def price_modifier(); end
16
+ def price_modifier=(str_); end
17
+ def quantity(); end
18
+ def quantity=(str_); end
19
+ 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
+ # A collection of line items for an invoice.
12
+ class InvoiceLineItems
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The list of line items.
17
+ field :items, Crystalline::Array.new(Models::Components::InvoiceLineItem), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('items'), required: true } }
18
+
19
+ sig { params(items: T::Array[Models::Components::InvoiceLineItem]).void }
20
+ def initialize(items:)
21
+ @items = items
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 @items == other.items
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::InvoiceLineItems
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceLineItems
11
+ def items(); end
12
+ def items=(str_); end
13
+ 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
+ # A collection of line items for an invoice.
12
+ class InvoiceLineItemsUpdate
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The list of line items.
17
+ field :items, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::InvoiceLineItem)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('items') } }
18
+
19
+ sig { params(items: T.nilable(T::Array[Models::Components::InvoiceLineItem])).void }
20
+ def initialize(items: nil)
21
+ @items = items
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 @items == other.items
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::InvoiceLineItemsUpdate
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceLineItemsUpdate
11
+ def items(); end
12
+ def items=(str_); end
13
+ 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
+
12
+ class InvoiceLineItemsValidationError
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :items, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::InvoiceLineItemValidationError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('items') } }
18
+
19
+ sig { params(items: T.nilable(T::Hash[Symbol, Models::Components::InvoiceLineItemValidationError])).void }
20
+ def initialize(items: nil)
21
+ @items = items
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 @items == other.items
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::InvoiceLineItemsValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceLineItemsValidationError
11
+ def items(); end
12
+ def items=(str_); end
13
+ end
@@ -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 Components
10
+
11
+
12
+ class InvoiceLineItemValidationError
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :product_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('productID') } }
18
+
19
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('name') } }
20
+
21
+ field :base_price, Crystalline::Nilable.new(Models::Components::AmountDecimalValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('basePrice') } }
22
+
23
+ field :options, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::InvoiceLineItemOptionValidationError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
24
+
25
+ field :quantity, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity') } }
26
+
27
+ sig { params(product_id: T.nilable(::String), name: T.nilable(::String), base_price: T.nilable(Models::Components::AmountDecimalValidationError), options: T.nilable(T::Hash[Symbol, Models::Components::InvoiceLineItemOptionValidationError]), quantity: T.nilable(::String)).void }
28
+ def initialize(product_id: nil, name: nil, base_price: nil, options: nil, quantity: nil)
29
+ @product_id = product_id
30
+ @name = name
31
+ @base_price = base_price
32
+ @options = options
33
+ @quantity = quantity
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 @product_id == other.product_id
40
+ return false unless @name == other.name
41
+ return false unless @base_price == other.base_price
42
+ return false unless @options == other.options
43
+ return false unless @quantity == other.quantity
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::Components::InvoiceLineItemValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::InvoiceLineItemValidationError
11
+ def product_id(); end
12
+ def product_id=(str_); end
13
+ def name(); end
14
+ def name=(str_); end
15
+ def base_price(); end
16
+ def base_price=(str_); end
17
+ def options(); end
18
+ def options=(str_); end
19
+ def quantity(); end
20
+ def quantity=(str_); end
21
+ end
@@ -0,0 +1,28 @@
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 InvoicePayment
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+
18
+ def initialize; end
19
+
20
+ sig { params(other: T.untyped).returns(T::Boolean) }
21
+ def ==(other)
22
+ return false unless other.is_a? self.class
23
+ true
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -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
@@ -24,6 +24,7 @@ module Moov
24
24
  PULL_FROM_CARD = new('pull-from-card')
25
25
  APPLE_PAY = new('apple-pay')
26
26
  CARD_PRESENT_PAYMENT = new('card-present-payment')
27
+ INSTANT_BANK_CREDIT = new('instant-bank-credit')
27
28
  end
28
29
  end
29
30
  end
@@ -14,11 +14,11 @@ module Moov
14
14
  include Crystalline::MetadataFields
15
15
 
16
16
 
17
- field :source_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceOptions') } }
17
+ field :source_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod, Models::Components::InstantBankCreditPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceOptions') } }
18
18
 
19
- field :destination_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destinationOptions') } }
19
+ field :destination_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod, Models::Components::InstantBankCreditPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destinationOptions') } }
20
20
 
21
- sig { params(source_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod)]), destination_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod)])).void }
21
+ sig { params(source_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod, Models::Components::InstantBankCreditPaymentMethod)]), destination_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletPaymentMethod, Models::Components::AchDebitFundPaymentMethod, Models::Components::AchDebitCollectPaymentMethod, Models::Components::AchCreditStandardPaymentMethod, Models::Components::AchCreditSameDayPaymentMethod, Models::Components::RtpCreditPaymentMethod, Models::Components::CardPaymentPaymentMethod, Models::Components::PushToCardPaymentMethod, Models::Components::PullFromCardPaymentMethod, Models::Components::ApplePayPaymentMethod, Models::Components::CardPresentPaymentPaymentMethod, Models::Components::InstantBankCreditPaymentMethod)])).void }
22
22
  def initialize(source_options: nil, destination_options: nil)
23
23
  @source_options = source_options
24
24
  @destination_options = destination_options
@@ -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
@@ -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