moov_ruby 0.3.18 → 0.3.19

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 (25) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/invoices.rb +1 -1
  3. data/lib/moov/models/components/createtransfer.rb +2 -2
  4. data/lib/moov/models/components/createtransferlineitem.rb +53 -0
  5. data/lib/moov/models/components/{transferlineitemvalidationerror.rbi → createtransferlineitem.rbi} +8 -6
  6. data/lib/moov/models/components/createtransferlineitemoption.rb +49 -0
  7. data/lib/moov/models/components/{transferlineitemoptionvalidationerror.rbi → createtransferlineitemoption.rbi} +8 -6
  8. data/lib/moov/models/components/{transferlineitemoptionvalidationerror.rb → createtransferlineitemoptionvalidationerror.rb} +7 -3
  9. data/lib/moov/models/components/createtransferlineitemoptionvalidationerror.rbi +21 -0
  10. data/lib/moov/models/components/createtransferlineitems.rb +34 -0
  11. data/lib/moov/models/components/{transferlineitemsvalidationerror.rbi → createtransferlineitems.rbi} +2 -2
  12. data/lib/moov/models/components/{transferlineitemsvalidationerror.rb → createtransferlineitemsvalidationerror.rb} +3 -3
  13. data/lib/moov/models/components/createtransferlineitemsvalidationerror.rbi +13 -0
  14. data/lib/moov/models/components/{transferlineitemvalidationerror.rb → createtransferlineitemvalidationerror.rb} +8 -4
  15. data/lib/moov/models/components/createtransferlineitemvalidationerror.rbi +23 -0
  16. data/lib/moov/models/components/transferlineitem.rb +6 -2
  17. data/lib/moov/models/components/transferlineitem.rbi +2 -0
  18. data/lib/moov/models/components/transferlineitemimagemetadata.rb +45 -0
  19. data/lib/moov/models/components/transferlineitemimagemetadata.rbi +19 -0
  20. data/lib/moov/models/components/transferlineitemoption.rb +6 -2
  21. data/lib/moov/models/components/transferlineitemoption.rbi +2 -0
  22. data/lib/moov/models/components.rb +7 -3
  23. data/lib/moov/models/errors/transfervalidationerror.rb +2 -2
  24. data/lib/moov/sdkconfiguration.rb +2 -2
  25. metadata +16 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8771cf9bd0c7937112cdb9348182567578b85be043fca0382164daf4e5dfc0c5
4
- data.tar.gz: 3e485b0be461bdbb3cb4daa27ecc09b80e331c04712bdb2ef30cddd88197171c
3
+ metadata.gz: ecb87a15d2b950f6f0f733c2699a40ffff3bbf379c16b844b8d8566a652b1578
4
+ data.tar.gz: d7849126a9980adf9e884fb433440f1d8ecce325aaa37a719ae309e0e8eb41e3
5
5
  SHA512:
6
- metadata.gz: fe737bdaf9d152863cf082d0c7311ff704cf873e4cf9328b9711c841ef49ae820cc015511ce1f4cd4cd2cc58c25adcd880eb2f096b139254bbc164131f398df7
7
- data.tar.gz: 05b872b10e88e25f78544e0f5b43ae3e3e2499d76bc6d4bb9c1266aa2fc340c224505bf7404293a00aea4ff3ddf8d2198fc3fa6c309cc76393e16929a1de0a0e
6
+ metadata.gz: d67960ae8a0c48186084d10fdc1a2e8763b2b7d5f88ae50b2523f8e9edec60f12268526a9535bf5d0178851587f07c3e3b965360ec340fd308d953c86d358468
7
+ data.tar.gz: 6d7474504e3a1fd8630e61a6d3c8bc03c5cb97dbc4b76dfd71b3a9009d3b1c6a3d1880133032cdbcb8fa9e1cfe55e70dc12941b694cfd50c927ec2576763629a
data/lib/moov/invoices.rb CHANGED
@@ -683,7 +683,7 @@ module Moov
683
683
 
684
684
 
685
685
  begin
686
- http_response = T.must(connection).put(url) do |req|
686
+ http_response = T.must(connection).post(url) do |req|
687
687
  req.body = body
688
688
  req.headers.merge!(headers)
689
689
  req.options.timeout = timeout unless timeout.nil?
@@ -31,9 +31,9 @@ module Moov
31
31
  field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
32
32
  # An optional collection of line items for a transfer.
33
33
  # When line items are provided, their total plus sales tax must equal the transfer amount.
34
- field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
34
+ field :line_items, Crystalline::Nilable.new(Models::Components::CreateTransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
35
35
 
36
- sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::Amount, facilitator_fee: T.nilable(Models::Components::FacilitatorFee), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems)).void }
36
+ sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::Amount, facilitator_fee: T.nilable(Models::Components::FacilitatorFee), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems)).void }
37
37
  def initialize(source:, destination:, amount:, facilitator_fee: nil, description: nil, metadata: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil)
38
38
  @source = source
39
39
  @destination = destination
@@ -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
+ # Represents a single item in a transfer, including optional modifiers and quantity.
12
+ class CreateTransferLineItem
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The name of the item.
17
+ field :name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('name'), required: true } }
18
+ # The base price of the item before applying option modifiers.
19
+ field :base_price, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('basePrice'), required: true } }
20
+ # The quantity of this item.
21
+ field :quantity, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity'), required: true } }
22
+ # Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations).
23
+ field :options, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CreateTransferLineItemOption)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
24
+ # Optional list of images associated with this line item.
25
+ field :image_i_ds, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('imageIDs') } }
26
+ # Optional unique identifier associating the line item with a product.
27
+ field :product_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('productID') } }
28
+
29
+ sig { params(name: ::String, base_price: Models::Components::AmountDecimal, quantity: ::Integer, options: T.nilable(T::Array[Models::Components::CreateTransferLineItemOption]), image_i_ds: T.nilable(T::Array[::String]), product_id: T.nilable(::String)).void }
30
+ def initialize(name:, base_price:, quantity:, options: nil, image_i_ds: nil, product_id: nil)
31
+ @name = name
32
+ @base_price = base_price
33
+ @quantity = quantity
34
+ @options = options
35
+ @image_i_ds = image_i_ds
36
+ @product_id = product_id
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 @name == other.name
43
+ return false unless @base_price == other.base_price
44
+ return false unless @quantity == other.quantity
45
+ return false unless @options == other.options
46
+ return false unless @image_i_ds == other.image_i_ds
47
+ return false unless @product_id == other.product_id
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -2,20 +2,22 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::TransferLineItemValidationError
5
+ class Moov::Models::Components::CreateTransferLineItem
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::TransferLineItemValidationError
11
- def product_id(); end
12
- def product_id=(str_); end
10
+ class Moov::Models::Components::CreateTransferLineItem
13
11
  def name(); end
14
12
  def name=(str_); end
15
13
  def base_price(); end
16
14
  def base_price=(str_); end
17
- def options(); end
18
- def options=(str_); end
19
15
  def quantity(); end
20
16
  def quantity=(str_); end
17
+ def options(); end
18
+ def options=(str_); end
19
+ def image_i_ds(); end
20
+ def image_i_ds=(str_); end
21
+ def product_id(); end
22
+ def product_id=(str_); end
21
23
  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
+ # Represents a modifier or option applied to a line item.
12
+ class CreateTransferLineItemOption
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The name of the option or modifier.
17
+ field :name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('name'), required: true } }
18
+ # The quantity of this option.
19
+ field :quantity, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity'), required: true } }
20
+ # Optional price modification applied by this option. Can be positive, negative, or zero.
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 :image_i_ds, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('imageIDs') } }
24
+ # Optional group identifier to categorize related options (e.g., 'toppings').
25
+ field :group, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('group') } }
26
+
27
+ sig { params(name: ::String, quantity: ::Integer, price_modifier: T.nilable(Models::Components::AmountDecimal), image_i_ds: T.nilable(T::Array[::String]), group: T.nilable(::String)).void }
28
+ def initialize(name:, quantity:, price_modifier: nil, image_i_ds: nil, group: nil)
29
+ @name = name
30
+ @quantity = quantity
31
+ @price_modifier = price_modifier
32
+ @image_i_ds = image_i_ds
33
+ @group = group
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 @name == other.name
40
+ return false unless @quantity == other.quantity
41
+ return false unless @price_modifier == other.price_modifier
42
+ return false unless @image_i_ds == other.image_i_ds
43
+ return false unless @group == other.group
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -2,18 +2,20 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::TransferLineItemOptionValidationError
5
+ class Moov::Models::Components::CreateTransferLineItemOption
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::TransferLineItemOptionValidationError
10
+ class Moov::Models::Components::CreateTransferLineItemOption
11
11
  def name(); end
12
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
13
  def quantity(); end
18
14
  def quantity=(str_); end
15
+ def price_modifier(); end
16
+ def price_modifier=(str_); end
17
+ def image_i_ds(); end
18
+ def image_i_ds=(str_); end
19
+ def group(); end
20
+ def group=(str_); end
19
21
  end
@@ -9,7 +9,7 @@ module Moov
9
9
  module Components
10
10
 
11
11
 
12
- class TransferLineItemOptionValidationError
12
+ class CreateTransferLineItemOptionValidationError
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
@@ -22,12 +22,15 @@ module Moov
22
22
 
23
23
  field :quantity, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity') } }
24
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)
25
+ field :image_i_ds, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('imageIDs') } }
26
+
27
+ sig { params(name: T.nilable(::String), group: T.nilable(::String), price_modifier: T.nilable(Models::Components::AmountDecimalValidationError), quantity: T.nilable(::String), image_i_ds: T.nilable(::String)).void }
28
+ def initialize(name: nil, group: nil, price_modifier: nil, quantity: nil, image_i_ds: nil)
27
29
  @name = name
28
30
  @group = group
29
31
  @price_modifier = price_modifier
30
32
  @quantity = quantity
33
+ @image_i_ds = image_i_ds
31
34
  end
32
35
 
33
36
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -37,6 +40,7 @@ module Moov
37
40
  return false unless @group == other.group
38
41
  return false unless @price_modifier == other.price_modifier
39
42
  return false unless @quantity == other.quantity
43
+ return false unless @image_i_ds == other.image_i_ds
40
44
  true
41
45
  end
42
46
  end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateTransferLineItemOptionValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferLineItemOptionValidationError
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
+ def image_i_ds(); end
20
+ def image_i_ds=(str_); end
21
+ end
@@ -0,0 +1,34 @@
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
+ # An optional collection of line items for a transfer.
12
+ # When line items are provided, their total plus sales tax must equal the transfer amount.
13
+ class CreateTransferLineItems
14
+ extend T::Sig
15
+ include Crystalline::MetadataFields
16
+
17
+ # The list of line items.
18
+ field :items, Crystalline::Array.new(Models::Components::CreateTransferLineItem), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('items'), required: true } }
19
+
20
+ sig { params(items: T::Array[Models::Components::CreateTransferLineItem]).void }
21
+ def initialize(items:)
22
+ @items = items
23
+ end
24
+
25
+ sig { params(other: T.untyped).returns(T::Boolean) }
26
+ def ==(other)
27
+ return false unless other.is_a? self.class
28
+ return false unless @items == other.items
29
+ true
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -2,12 +2,12 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::TransferLineItemsValidationError
5
+ class Moov::Models::Components::CreateTransferLineItems
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::TransferLineItemsValidationError
10
+ class Moov::Models::Components::CreateTransferLineItems
11
11
  def items(); end
12
12
  def items=(str_); end
13
13
  end
@@ -9,14 +9,14 @@ module Moov
9
9
  module Components
10
10
 
11
11
 
12
- class TransferLineItemsValidationError
12
+ class CreateTransferLineItemsValidationError
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
16
 
17
- field :items, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::TransferLineItemValidationError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('items') } }
17
+ field :items, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::CreateTransferLineItemValidationError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('items') } }
18
18
 
19
- sig { params(items: T.nilable(T::Hash[Symbol, Models::Components::TransferLineItemValidationError])).void }
19
+ sig { params(items: T.nilable(T::Hash[Symbol, Models::Components::CreateTransferLineItemValidationError])).void }
20
20
  def initialize(items: nil)
21
21
  @items = items
22
22
  end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateTransferLineItemsValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferLineItemsValidationError
11
+ def items(); end
12
+ def items=(str_); end
13
+ end
@@ -9,7 +9,7 @@ module Moov
9
9
  module Components
10
10
 
11
11
 
12
- class TransferLineItemValidationError
12
+ class CreateTransferLineItemValidationError
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
@@ -20,17 +20,20 @@ module Moov
20
20
 
21
21
  field :base_price, Crystalline::Nilable.new(Models::Components::AmountDecimalValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('basePrice') } }
22
22
 
23
- field :options, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::TransferLineItemOptionValidationError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
23
+ field :options, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::CreateTransferLineItemOptionValidationError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
24
24
 
25
25
  field :quantity, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('quantity') } }
26
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::TransferLineItemOptionValidationError]), quantity: T.nilable(::String)).void }
28
- def initialize(product_id: nil, name: nil, base_price: nil, options: nil, quantity: nil)
27
+ field :image_i_ds, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('imageIDs') } }
28
+
29
+ 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::CreateTransferLineItemOptionValidationError]), quantity: T.nilable(::String), image_i_ds: T.nilable(::String)).void }
30
+ def initialize(product_id: nil, name: nil, base_price: nil, options: nil, quantity: nil, image_i_ds: nil)
29
31
  @product_id = product_id
30
32
  @name = name
31
33
  @base_price = base_price
32
34
  @options = options
33
35
  @quantity = quantity
36
+ @image_i_ds = image_i_ds
34
37
  end
35
38
 
36
39
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -41,6 +44,7 @@ module Moov
41
44
  return false unless @base_price == other.base_price
42
45
  return false unless @options == other.options
43
46
  return false unless @quantity == other.quantity
47
+ return false unless @image_i_ds == other.image_i_ds
44
48
  true
45
49
  end
46
50
  end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateTransferLineItemValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferLineItemValidationError
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
+ def image_i_ds(); end
22
+ def image_i_ds=(str_); end
23
+ 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::TransferLineItemOption)), { '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::TransferLineItemImageMetadata)), { '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::TransferLineItemOption]), 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::TransferLineItemOption]), images: T.nilable(T::Array[Models::Components::TransferLineItemImageMetadata]), 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::TransferLineItem
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 TransferLineItemImageMetadata
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::TransferLineItemImageMetadata
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferLineItemImageMetadata
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::TransferLineItemImageMetadata)), { '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::TransferLineItemImageMetadata]), 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::TransferLineItemOption
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
@@ -195,6 +195,12 @@ module Moov
195
195
  autoload :CreateTransferDestination, 'moov/models/components/createtransferdestination.rb'
196
196
  autoload :CreateTransferDestinationACH, 'moov/models/components/createtransferdestinationach.rb'
197
197
  autoload :CreateTransferDestinationCard, 'moov/models/components/createtransferdestinationcard.rb'
198
+ autoload :CreateTransferLineItem, 'moov/models/components/createtransferlineitem.rb'
199
+ autoload :CreateTransferLineItemOption, 'moov/models/components/createtransferlineitemoption.rb'
200
+ autoload :CreateTransferLineItemOptionValidationError, 'moov/models/components/createtransferlineitemoptionvalidationerror.rb'
201
+ autoload :CreateTransferLineItemValidationError, 'moov/models/components/createtransferlineitemvalidationerror.rb'
202
+ autoload :CreateTransferLineItems, 'moov/models/components/createtransferlineitems.rb'
203
+ autoload :CreateTransferLineItemsValidationError, 'moov/models/components/createtransferlineitemsvalidationerror.rb'
198
204
  autoload :CreateTransferOptions, 'moov/models/components/createtransferoptions.rb'
199
205
  autoload :CreateTransferSource, 'moov/models/components/createtransfersource.rb'
200
206
  autoload :CreateTransferSourceACH, 'moov/models/components/createtransfersourceach.rb'
@@ -492,11 +498,9 @@ module Moov
492
498
  autoload :TransferDestination, 'moov/models/components/transferdestination.rb'
493
499
  autoload :TransferFailureReason, 'moov/models/components/transferfailurereason.rb'
494
500
  autoload :TransferLineItem, 'moov/models/components/transferlineitem.rb'
501
+ autoload :TransferLineItemImageMetadata, 'moov/models/components/transferlineitemimagemetadata.rb'
495
502
  autoload :TransferLineItemOption, 'moov/models/components/transferlineitemoption.rb'
496
- autoload :TransferLineItemOptionValidationError, 'moov/models/components/transferlineitemoptionvalidationerror.rb'
497
- autoload :TransferLineItemValidationError, 'moov/models/components/transferlineitemvalidationerror.rb'
498
503
  autoload :TransferLineItems, 'moov/models/components/transferlineitems.rb'
499
- autoload :TransferLineItemsValidationError, 'moov/models/components/transferlineitemsvalidationerror.rb'
500
504
  autoload :TransferOptions, 'moov/models/components/transferoptions.rb'
501
505
  autoload :TransferParty, 'moov/models/components/transferparty.rb'
502
506
  autoload :TransferSource, 'moov/models/components/transfersource.rb'
@@ -34,11 +34,11 @@ module Moov
34
34
 
35
35
  field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
36
36
 
37
- field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItemsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
37
+ field :line_items, Crystalline::Nilable.new(Models::Components::CreateTransferLineItemsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
38
38
  # Raw HTTP response; suitable for custom response parsing
39
39
  field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
40
40
 
41
- sig { params(amount: T.nilable(::String), source: T.nilable(::String), source_payment_method_id: T.nilable(::String), destination_payment_method_id: T.nilable(::String), description: T.nilable(::String), facilitator_fee_total_decimal: T.nilable(::String), facilitator_fee_markup_decimal: T.nilable(::String), metadata: T.nilable(::String), sales_tax_amount: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItemsValidationError), raw_response: T.nilable(::Faraday::Response)).void }
41
+ sig { params(amount: T.nilable(::String), source: T.nilable(::String), source_payment_method_id: T.nilable(::String), destination_payment_method_id: T.nilable(::String), description: T.nilable(::String), facilitator_fee_total_decimal: T.nilable(::String), facilitator_fee_markup_decimal: T.nilable(::String), metadata: T.nilable(::String), sales_tax_amount: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItemsValidationError), raw_response: T.nilable(::Faraday::Response)).void }
42
42
  def initialize(amount: nil, source: nil, source_payment_method_id: nil, destination_payment_method_id: nil, description: nil, facilitator_fee_total_decimal: nil, facilitator_fee_markup_decimal: nil, metadata: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil, raw_response: nil)
43
43
  @amount = amount
44
44
  @source = source
@@ -95,9 +95,9 @@ module Moov
95
95
  @globals = globals.nil? ? {} : globals
96
96
  @language = 'ruby'
97
97
  @openapi_doc_version = 'latest'
98
- @sdk_version = '0.3.18'
98
+ @sdk_version = '0.3.19'
99
99
  @gen_version = '2.788.5'
100
- @user_agent = 'speakeasy-sdk/ruby 0.3.18 2.788.5 latest moov_ruby'
100
+ @user_agent = 'speakeasy-sdk/ruby 0.3.19 2.788.5 latest moov_ruby'
101
101
  end
102
102
 
103
103
  sig { returns([String, T::Hash[Symbol, String]]) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moov_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.18
4
+ version: 0.3.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Speakeasy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-19 00:00:00.000000000 Z
11
+ date: 2025-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -612,6 +612,18 @@ files:
612
612
  - lib/moov/models/components/createtransferdestinationach.rbi
613
613
  - lib/moov/models/components/createtransferdestinationcard.rb
614
614
  - lib/moov/models/components/createtransferdestinationcard.rbi
615
+ - lib/moov/models/components/createtransferlineitem.rb
616
+ - lib/moov/models/components/createtransferlineitem.rbi
617
+ - lib/moov/models/components/createtransferlineitemoption.rb
618
+ - lib/moov/models/components/createtransferlineitemoption.rbi
619
+ - lib/moov/models/components/createtransferlineitemoptionvalidationerror.rb
620
+ - lib/moov/models/components/createtransferlineitemoptionvalidationerror.rbi
621
+ - lib/moov/models/components/createtransferlineitems.rb
622
+ - lib/moov/models/components/createtransferlineitems.rbi
623
+ - lib/moov/models/components/createtransferlineitemsvalidationerror.rb
624
+ - lib/moov/models/components/createtransferlineitemsvalidationerror.rbi
625
+ - lib/moov/models/components/createtransferlineitemvalidationerror.rb
626
+ - lib/moov/models/components/createtransferlineitemvalidationerror.rbi
615
627
  - lib/moov/models/components/createtransferoptions.rb
616
628
  - lib/moov/models/components/createtransferoptions.rbi
617
629
  - lib/moov/models/components/createtransfersource.rb
@@ -1222,16 +1234,12 @@ files:
1222
1234
  - lib/moov/models/components/transferfailurereason.rbi
1223
1235
  - lib/moov/models/components/transferlineitem.rb
1224
1236
  - lib/moov/models/components/transferlineitem.rbi
1237
+ - lib/moov/models/components/transferlineitemimagemetadata.rb
1238
+ - lib/moov/models/components/transferlineitemimagemetadata.rbi
1225
1239
  - lib/moov/models/components/transferlineitemoption.rb
1226
1240
  - lib/moov/models/components/transferlineitemoption.rbi
1227
- - lib/moov/models/components/transferlineitemoptionvalidationerror.rb
1228
- - lib/moov/models/components/transferlineitemoptionvalidationerror.rbi
1229
1241
  - lib/moov/models/components/transferlineitems.rb
1230
1242
  - lib/moov/models/components/transferlineitems.rbi
1231
- - lib/moov/models/components/transferlineitemsvalidationerror.rb
1232
- - lib/moov/models/components/transferlineitemsvalidationerror.rbi
1233
- - lib/moov/models/components/transferlineitemvalidationerror.rb
1234
- - lib/moov/models/components/transferlineitemvalidationerror.rbi
1235
1243
  - lib/moov/models/components/transferoptions.rb
1236
1244
  - lib/moov/models/components/transferoptions.rbi
1237
1245
  - lib/moov/models/components/transferparty.rb