moov_ruby 0.3.5 → 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 (79) 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/invoice.rb +117 -0
  9. data/lib/moov/models/components/invoice.rbi +55 -0
  10. data/lib/moov/models/components/invoiceexternalpayment.rb +49 -0
  11. data/lib/moov/models/components/invoiceexternalpayment.rbi +21 -0
  12. data/lib/moov/models/components/invoiceexternalpayment_paymenttype.rb +21 -0
  13. data/lib/moov/models/components/invoiceexternalpayment_paymenttype.rbi +11 -0
  14. data/lib/moov/models/components/invoicelineitem.rb +49 -0
  15. data/lib/moov/models/components/invoicelineitem.rbi +21 -0
  16. data/lib/moov/models/components/invoicelineitemoption.rb +45 -0
  17. data/lib/moov/models/components/invoicelineitemoption.rbi +19 -0
  18. data/lib/moov/models/components/invoicelineitemoptionvalidationerror.rb +45 -0
  19. data/lib/moov/models/components/invoicelineitemoptionvalidationerror.rbi +19 -0
  20. data/lib/moov/models/components/invoicelineitems.rb +33 -0
  21. data/lib/moov/models/components/invoicelineitems.rbi +13 -0
  22. data/lib/moov/models/components/invoicelineitemsupdate.rb +33 -0
  23. data/lib/moov/models/components/invoicelineitemsupdate.rbi +13 -0
  24. data/lib/moov/models/components/invoicelineitemsvalidationerror.rb +33 -0
  25. data/lib/moov/models/components/invoicelineitemsvalidationerror.rbi +13 -0
  26. data/lib/moov/models/components/invoicelineitemvalidationerror.rb +49 -0
  27. data/lib/moov/models/components/invoicelineitemvalidationerror.rbi +21 -0
  28. data/lib/moov/models/components/invoicepayment.rb +28 -0
  29. data/lib/moov/models/components/invoicepayment.rbi +11 -0
  30. data/lib/moov/models/components/invoicestatus.rb +26 -0
  31. data/lib/moov/models/components/invoicestatus.rbi +11 -0
  32. data/lib/moov/models/components/invoicetransferpayment.rb +37 -0
  33. data/lib/moov/models/components/invoicetransferpayment.rbi +15 -0
  34. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rb +21 -0
  35. data/lib/moov/models/components/invoicetransferpayment_paymenttype.rbi +11 -0
  36. data/lib/moov/models/components/markinvoicepaid.rb +41 -0
  37. data/lib/moov/models/components/markinvoicepaid.rbi +17 -0
  38. data/lib/moov/models/components/updateinvoice.rb +53 -0
  39. data/lib/moov/models/components/updateinvoice.rbi +23 -0
  40. data/lib/moov/models/components/webhookdatainvoicecreated.rb +37 -0
  41. data/lib/moov/models/components/webhookdatainvoicecreated.rbi +15 -0
  42. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +41 -0
  43. data/lib/moov/models/components/webhookdatainvoiceupdated.rbi +17 -0
  44. data/lib/moov/models/components/webhookevent.rb +2 -2
  45. data/lib/moov/models/components/webhookeventtype.rb +2 -0
  46. data/lib/moov/models/components.rb +20 -0
  47. data/lib/moov/models/errors/createinvoiceerror.rb +57 -0
  48. data/lib/moov/models/errors/createinvoiceerror.rbi +25 -0
  49. data/lib/moov/models/errors/listinvoicesvalidationerror.rb +49 -0
  50. data/lib/moov/models/errors/listinvoicesvalidationerror.rbi +21 -0
  51. data/lib/moov/models/errors/markinvoicepaiderror.rb +45 -0
  52. data/lib/moov/models/errors/markinvoicepaiderror.rbi +19 -0
  53. data/lib/moov/models/errors/updateinvoiceerror.rb +57 -0
  54. data/lib/moov/models/errors/updateinvoiceerror.rbi +25 -0
  55. data/lib/moov/models/errors.rb +4 -0
  56. data/lib/moov/models/operations/createinvoice_request.rb +50 -0
  57. data/lib/moov/models/operations/createinvoice_request.rbi +17 -0
  58. data/lib/moov/models/operations/createinvoice_response.rb +49 -0
  59. data/lib/moov/models/operations/createinvoice_response.rbi +21 -0
  60. data/lib/moov/models/operations/getinvoice_request.rb +50 -0
  61. data/lib/moov/models/operations/getinvoice_request.rbi +17 -0
  62. data/lib/moov/models/operations/getinvoice_response.rb +49 -0
  63. data/lib/moov/models/operations/getinvoice_response.rbi +21 -0
  64. data/lib/moov/models/operations/listinvoices_request.rb +62 -0
  65. data/lib/moov/models/operations/listinvoices_request.rbi +23 -0
  66. data/lib/moov/models/operations/listinvoices_response.rb +49 -0
  67. data/lib/moov/models/operations/listinvoices_response.rbi +21 -0
  68. data/lib/moov/models/operations/markpaidinvoice_request.rb +54 -0
  69. data/lib/moov/models/operations/markpaidinvoice_request.rbi +19 -0
  70. data/lib/moov/models/operations/markpaidinvoice_response.rb +49 -0
  71. data/lib/moov/models/operations/markpaidinvoice_response.rbi +21 -0
  72. data/lib/moov/models/operations/updateinvoice_request.rb +54 -0
  73. data/lib/moov/models/operations/updateinvoice_request.rbi +19 -0
  74. data/lib/moov/models/operations/updateinvoice_response.rb +49 -0
  75. data/lib/moov/models/operations/updateinvoice_response.rbi +21 -0
  76. data/lib/moov/models/operations.rb +10 -0
  77. data/lib/moov/sdkconfiguration.rb +2 -2
  78. data/lib/moov_ruby.rb +1 -0
  79. metadata +71 -2
@@ -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
@@ -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
@@ -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')