moov_ruby 0.0.0.pre.dev.15 → 0.0.0.pre.dev.16

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07c64e2d1493a44d61d173f746e1b810cf9a37aec85b41cec205f8c881051e65
4
- data.tar.gz: d515c164f8e54e4ca7410d0a8d4111b9d3601a2cfe6f194228494ccd376941f7
3
+ metadata.gz: 2f7346fb2fc2987b4836f7a3f7e3dba0a38e64efdaa1eef35e43fdbc9d921c59
4
+ data.tar.gz: 303f563b126f9afc00270b3d44c54eb0f08b2d9d6b640fc5fdbe2df0ef2cf25f
5
5
  SHA512:
6
- metadata.gz: 9969e2bf3b4625b6844262b5a72b7c1facc89f704fa2451ad9bf0dca57e507d8e5706b0ccc20819ae790aebc23c61ebacd4bee58169f46c47b4711653f0dd451
7
- data.tar.gz: 81c1d3b616651fde12f88e6e322dfdd6748976166b8640ad10964b5f1161cd859941af9b7f36b78312064c4fc31a47dc26123f1ca4873dfcf7d2622cc2c89bdc
6
+ metadata.gz: 14291451b10b48f5e1cb7cb832b90c16962ddd1b10bfa7299a32d8be236612638c1c84f60f6ce7373e1a2e35d01ebe33c72b87c703bc37b5074f4a03c525aa69
7
+ data.tar.gz: 44e58beb3a34736d72fa3c0e58008943437467958a36a90ecba0bf385e0d6b89f80f0ddd378dad8c9bd3b7330dbd9f32b3da4b847e07ee39cf107df9288bac57
data/lib/moov/cards.rb CHANGED
@@ -787,5 +787,163 @@ module Moov
787
787
 
788
788
  end
789
789
  end
790
+
791
+
792
+ sig { params(request: Models::Components::CardMetadataRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetCardMetadataResponse) }
793
+ def get_metadata(request:, timeout_ms: nil, http_headers: nil)
794
+ # get_metadata - Look up metadata for a card without linking it to a Moov account.
795
+ #
796
+ # Only use this endpoint if you have provided Moov with a copy of your PCI attestation of compliance.
797
+ #
798
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
799
+ # you'll need to specify the `/card-metadata.read` scope.
800
+ url, params = @sdk_configuration.get_server_details
801
+ base_url = Utils.template_url(url, params)
802
+ url = "#{base_url}/card-metadata"
803
+ headers = {}
804
+ headers = T.cast(headers, T::Hash[String, String])
805
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request, :json)
806
+ headers['content-type'] = req_content_type
807
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
808
+
809
+ if form && !form.empty?
810
+ body = Utils.encode_form(form)
811
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
812
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
813
+ else
814
+ body = data
815
+ end
816
+ headers['Accept'] = 'application/json'
817
+ headers['user-agent'] = @sdk_configuration.user_agent
818
+
819
+ security = @sdk_configuration.security_source&.call
820
+
821
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
822
+ timeout ||= @sdk_configuration.timeout
823
+
824
+
825
+ connection = @sdk_configuration.client
826
+
827
+ hook_ctx = SDKHooks::HookContext.new(
828
+ config: @sdk_configuration,
829
+ base_url: base_url,
830
+ oauth2_scopes: nil,
831
+ operation_id: 'getCardMetadata',
832
+ security_source: @sdk_configuration.security_source
833
+ )
834
+
835
+ error = T.let(nil, T.nilable(StandardError))
836
+ http_response = T.let(nil, T.nilable(Faraday::Response))
837
+
838
+
839
+ begin
840
+ http_response = T.must(connection).post(url) do |req|
841
+ req.body = body
842
+ req.headers.merge!(headers)
843
+ req.options.timeout = timeout unless timeout.nil?
844
+ Utils.configure_request_security(req, security)
845
+ http_headers&.each do |key, value|
846
+ req.headers[key.to_s] = value
847
+ end
848
+
849
+ @sdk_configuration.hooks.before_request(
850
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
851
+ hook_ctx: hook_ctx
852
+ ),
853
+ request: req
854
+ )
855
+ end
856
+ rescue StandardError => e
857
+ error = e
858
+ ensure
859
+ if http_response.nil? || Utils.error_status?(http_response.status)
860
+ http_response = @sdk_configuration.hooks.after_error(
861
+ error: error,
862
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
863
+ hook_ctx: hook_ctx
864
+ ),
865
+ response: http_response
866
+ )
867
+ else
868
+ http_response = @sdk_configuration.hooks.after_success(
869
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
870
+ hook_ctx: hook_ctx
871
+ ),
872
+ response: http_response
873
+ )
874
+ end
875
+
876
+ if http_response.nil?
877
+ raise error if !error.nil?
878
+ raise 'no response'
879
+ end
880
+ end
881
+
882
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
883
+ if Utils.match_status_code(http_response.status, ['200'])
884
+ if Utils.match_content_type(content_type, 'application/json')
885
+ http_response = @sdk_configuration.hooks.after_success(
886
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
887
+ hook_ctx: hook_ctx
888
+ ),
889
+ response: http_response
890
+ )
891
+ response_data = http_response.env.response_body
892
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::CardMetadata)
893
+ response = Models::Operations::GetCardMetadataResponse.new(
894
+ status_code: http_response.status,
895
+ content_type: content_type,
896
+ raw_response: http_response,
897
+ headers: http_response.headers,
898
+ card_metadata: T.unsafe(obj)
899
+ )
900
+
901
+ return response
902
+ else
903
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
904
+ end
905
+ elsif Utils.match_status_code(http_response.status, ['400', '409'])
906
+ if Utils.match_content_type(content_type, 'application/json')
907
+ http_response = @sdk_configuration.hooks.after_success(
908
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
909
+ hook_ctx: hook_ctx
910
+ ),
911
+ response: http_response
912
+ )
913
+ response_data = http_response.env.response_body
914
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::GenericError)
915
+ obj.raw_response = http_response
916
+ raise obj
917
+ else
918
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
919
+ end
920
+ elsif Utils.match_status_code(http_response.status, ['422'])
921
+ if Utils.match_content_type(content_type, 'application/json')
922
+ http_response = @sdk_configuration.hooks.after_success(
923
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
924
+ hook_ctx: hook_ctx
925
+ ),
926
+ response: http_response
927
+ )
928
+ response_data = http_response.env.response_body
929
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::CardMetadataRequestError)
930
+ obj.raw_response = http_response
931
+ raise obj
932
+ else
933
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
934
+ end
935
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
936
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
937
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
938
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
939
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
940
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
941
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
942
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
943
+ else
944
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
945
+
946
+ end
947
+ end
790
948
  end
791
949
  end
@@ -0,0 +1,79 @@
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
+ # Metadata describing a card.
11
+ class CardMetadata
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The first six to eight digits of the card number, which identifies the financial institution that issued the card.
16
+ field :bin, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin'), required: true } }
17
+ # The card brand.
18
+ field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
19
+ # The type of the card.
20
+ field :card_type, Models::Components::CardType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, false) } }
21
+ # The category or level of the card defined by the issuer.
22
+ # Examples include, but not limited to, "REWARDS", "TRADITIONAL REWARDS", "CLASSIC", and "CORPORATE PURCHASING".
23
+ field :card_category, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardCategory') } }
24
+ # If true, the card is for commercial use, or associated with a business.
25
+ # If false, the card is associated with a general consumer.
26
+ field :commercial, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('commercial') } }
27
+ # If true, the card issuing bank is regulated, and the scheme fees for debit transactions will be limited based on the Durbin Amendment.
28
+ # If false, the card issuing bank is not regulated, and the scheme fees will not be limited.
29
+ field :regulated, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('regulated') } }
30
+ # Financial institution that issued the card.
31
+ field :issuer, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuer') } }
32
+ # Country where the card was issued.
33
+ field :issuer_country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerCountry') } }
34
+ # Phone number of the issuer.
35
+ field :issuer_phone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerPhone') } }
36
+ # URL of the issuer.
37
+ field :issuer_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerURL') } }
38
+ # Indicates if the card supports domestic pull-from-card transfer.
39
+ field :domestic_pull_from_card, Crystalline::Nilable.new(Models::Components::DomesticPullFromCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPullFromCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPullFromCard, true) } }
40
+ # Indicates which level of domestic push-to-card transfer is supported by the card, if any.
41
+ field :domestic_push_to_card, Crystalline::Nilable.new(Models::Components::DomesticPushToCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPushToCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPushToCard, true) } }
42
+
43
+ sig { params(bin: ::String, brand: Models::Components::CardBrand, card_type: Models::Components::CardType, card_category: T.nilable(::String), commercial: T.nilable(T::Boolean), regulated: T.nilable(T::Boolean), issuer: T.nilable(::String), issuer_country: T.nilable(::String), issuer_phone: T.nilable(::String), issuer_url: T.nilable(::String), domestic_pull_from_card: T.nilable(Models::Components::DomesticPullFromCard), domestic_push_to_card: T.nilable(Models::Components::DomesticPushToCard)).void }
44
+ def initialize(bin:, brand:, card_type:, card_category: nil, commercial: nil, regulated: nil, issuer: nil, issuer_country: nil, issuer_phone: nil, issuer_url: nil, domestic_pull_from_card: nil, domestic_push_to_card: nil)
45
+ @bin = bin
46
+ @brand = brand
47
+ @card_type = card_type
48
+ @card_category = card_category
49
+ @commercial = commercial
50
+ @regulated = regulated
51
+ @issuer = issuer
52
+ @issuer_country = issuer_country
53
+ @issuer_phone = issuer_phone
54
+ @issuer_url = issuer_url
55
+ @domestic_pull_from_card = domestic_pull_from_card
56
+ @domestic_push_to_card = domestic_push_to_card
57
+ end
58
+
59
+ sig { params(other: T.untyped).returns(T::Boolean) }
60
+ def ==(other)
61
+ return false unless other.is_a? self.class
62
+ return false unless @bin == other.bin
63
+ return false unless @brand == other.brand
64
+ return false unless @card_type == other.card_type
65
+ return false unless @card_category == other.card_category
66
+ return false unless @commercial == other.commercial
67
+ return false unless @regulated == other.regulated
68
+ return false unless @issuer == other.issuer
69
+ return false unless @issuer_country == other.issuer_country
70
+ return false unless @issuer_phone == other.issuer_phone
71
+ return false unless @issuer_url == other.issuer_url
72
+ return false unless @domestic_pull_from_card == other.domestic_pull_from_card
73
+ return false unless @domestic_push_to_card == other.domestic_push_to_card
74
+ true
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,35 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardMetadata
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardMetadata
11
+ def bin(); end
12
+ def bin=(str_); end
13
+ def brand(); end
14
+ def brand=(str_); end
15
+ def card_type(); end
16
+ def card_type=(str_); end
17
+ def card_category(); end
18
+ def card_category=(str_); end
19
+ def commercial(); end
20
+ def commercial=(str_); end
21
+ def regulated(); end
22
+ def regulated=(str_); end
23
+ def issuer(); end
24
+ def issuer=(str_); end
25
+ def issuer_country(); end
26
+ def issuer_country=(str_); end
27
+ def issuer_phone(); end
28
+ def issuer_phone=(str_); end
29
+ def issuer_url(); end
30
+ def issuer_url=(str_); end
31
+ def domestic_pull_from_card(); end
32
+ def domestic_pull_from_card=(str_); end
33
+ def domestic_push_to_card(); end
34
+ def domestic_push_to_card=(str_); end
35
+ end
@@ -0,0 +1,38 @@
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
+ class CardMetadataRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Wraps a compact-serialized JSON Web Encryption (JWE) token used for secure transmission of sensitive data (e.g., PCI information) through intermediaries.
16
+ # This token is encrypted using the public key from /end-to-end-keys and wraps an AES key. For details and examples, refer to our
17
+ # [GitHub repository](https://github.com/moovfinancial/moov-go/blob/main/examples/e2ee/e2ee_test.go).
18
+ field :e2ee, Crystalline::Nilable.new(Models::Components::E2EEToken), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('e2ee') } }
19
+ # The full card number (PAN).
20
+ field :card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardNumber') } }
21
+
22
+ sig { params(e2ee: T.nilable(Models::Components::E2EEToken), card_number: T.nilable(::String)).void }
23
+ def initialize(e2ee: nil, card_number: nil)
24
+ @e2ee = e2ee
25
+ @card_number = card_number
26
+ end
27
+
28
+ sig { params(other: T.untyped).returns(T::Boolean) }
29
+ def ==(other)
30
+ return false unless other.is_a? self.class
31
+ return false unless @e2ee == other.e2ee
32
+ return false unless @card_number == other.card_number
33
+ true
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardMetadataRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardMetadataRequest
11
+ def e2ee(); end
12
+ def e2ee=(str_); end
13
+ def card_number(); end
14
+ def card_number=(str_); end
15
+ end
@@ -13,6 +13,7 @@ module Moov
13
13
  APPLE_PAY = new('apple-pay')
14
14
  CARD_PAYMENT = new('card-payment')
15
15
  ACH_DEBIT_COLLECT = new('ach-debit-collect')
16
+ GOOGLE_PAY = new('google-pay')
16
17
  end
17
18
  end
18
19
  end
@@ -14,16 +14,20 @@ module Moov
14
14
 
15
15
  # Amount to reverse in cents. Partial amounts will automatically trigger a refund instead of a cancellation.
16
16
  field :amount, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
17
+ # Breakdown of the reversed amount.
18
+ field :amount_details, Crystalline::Nilable.new(Models::Components::ReversalAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
17
19
 
18
- sig { params(amount: ::Integer).void }
19
- def initialize(amount:)
20
+ sig { params(amount: ::Integer, amount_details: T.nilable(Models::Components::ReversalAmountDetails)).void }
21
+ def initialize(amount:, amount_details: nil)
20
22
  @amount = amount
23
+ @amount_details = amount_details
21
24
  end
22
25
 
23
26
  sig { params(other: T.untyped).returns(T::Boolean) }
24
27
  def ==(other)
25
28
  return false unless other.is_a? self.class
26
29
  return false unless @amount == other.amount
30
+ return false unless @amount_details == other.amount_details
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class Moov::Models::Components::CreateReversal
11
11
  def amount(); end
12
12
  def amount=(str_); end
13
+ def amount_details(); end
14
+ def amount_details=(str_); end
13
15
  end
@@ -0,0 +1,32 @@
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
+ class ReversalAmountDetails
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The amount of surcharge to refund. Should be proportionate to the surcharge on the original transfer. This does not reply if the reversal resulted in a cancellation instead of a refund
16
+ field :surcharge, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('surcharge') } }
17
+
18
+ sig { params(surcharge: T.nilable(Models::Components::AmountDecimal)).void }
19
+ def initialize(surcharge: nil)
20
+ @surcharge = surcharge
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @surcharge == other.surcharge
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::ReversalAmountDetails
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ReversalAmountDetails
11
+ def surcharge(); end
12
+ def surcharge=(str_); end
13
+ end
@@ -0,0 +1,32 @@
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
+ class ReversalAmountDetailsValidationError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :surcharge, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('surcharge') } }
17
+
18
+ sig { params(surcharge: T.nilable(::String)).void }
19
+ def initialize(surcharge: nil)
20
+ @surcharge = surcharge
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @surcharge == other.surcharge
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::ReversalAmountDetailsValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ReversalAmountDetailsValidationError
11
+ def surcharge(); end
12
+ def surcharge=(str_); end
13
+ end
@@ -127,6 +127,8 @@ module Moov
127
127
  autoload :CardExpiration, 'moov/models/components/cardexpiration.rb'
128
128
  autoload :CardExpirationError, 'moov/models/components/cardexpirationerror.rb'
129
129
  autoload :CardIssuingNetwork, 'moov/models/components/cardissuingnetwork.rb'
130
+ autoload :CardMetadata, 'moov/models/components/cardmetadata.rb'
131
+ autoload :CardMetadataRequest, 'moov/models/components/cardmetadatarequest.rb'
130
132
  autoload :CardPaymentDetails, 'moov/models/components/cardpaymentdetails.rb'
131
133
  autoload :CardPaymentDetailsError, 'moov/models/components/cardpaymentdetailserror.rb'
132
134
  autoload :CardPaymentPaymentMethod, 'moov/models/components/cardpaymentpaymentmethod.rb'
@@ -519,6 +521,8 @@ module Moov
519
521
  autoload :ResolutionLinkStatus, 'moov/models/components/resolutionlinkstatus.rb'
520
522
  autoload :ReturnPolicyType, 'moov/models/components/returnpolicytype.rb'
521
523
  autoload :Reversal, 'moov/models/components/reversal.rb'
524
+ autoload :ReversalAmountDetails, 'moov/models/components/reversalamountdetails.rb'
525
+ autoload :ReversalAmountDetailsValidationError, 'moov/models/components/reversalamountdetailsvalidationerror.rb'
522
526
  autoload :ReversedWithCancellation, 'moov/models/components/reversedwithcancellation.rb'
523
527
  autoload :ReversedWithRefund, 'moov/models/components/reversedwithrefund.rb'
524
528
  autoload :RevokeTokenRequest, 'moov/models/components/revoketokenrequest.rb'
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Errors
10
+
11
+ class CardMetadataRequestError < StandardError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :error, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('error') } }
17
+
18
+ field :e2ee, Crystalline::Nilable.new(Models::Components::End2EndEncryptionError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('e2ee') } }
19
+
20
+ field :card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardNumber') } }
21
+ # Raw HTTP response; suitable for custom response parsing
22
+ field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
23
+
24
+ sig { params(error: T.nilable(::String), e2ee: T.nilable(Models::Components::End2EndEncryptionError), card_number: T.nilable(::String), raw_response: T.nilable(::Faraday::Response)).void }
25
+ def initialize(error: nil, e2ee: nil, card_number: nil, raw_response: nil)
26
+ @error = error
27
+ @e2ee = e2ee
28
+ @card_number = card_number
29
+ @raw_response = raw_response
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @error == other.error
36
+ return false unless @e2ee == other.e2ee
37
+ return false unless @card_number == other.card_number
38
+ return false unless @raw_response == other.raw_response
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Errors::CardMetadataRequestError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Errors::CardMetadataRequestError
11
+ def error(); end
12
+ def error=(str_); end
13
+ def e2ee(); end
14
+ def e2ee=(str_); end
15
+ def card_number(); end
16
+ def card_number=(str_); end
17
+ def raw_response(); end
18
+ def raw_response=(str_); end
19
+ end
@@ -14,12 +14,15 @@ module Moov
14
14
 
15
15
 
16
16
  field :amount, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
17
+
18
+ field :amount_details, Crystalline::Nilable.new(Models::Components::ReversalAmountDetailsValidationError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
17
19
  # Raw HTTP response; suitable for custom response parsing
18
20
  field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
19
21
 
20
- sig { params(amount: T.nilable(::String), raw_response: T.nilable(::Faraday::Response)).void }
21
- def initialize(amount: nil, raw_response: nil)
22
+ sig { params(amount: T.nilable(::String), amount_details: T.nilable(Models::Components::ReversalAmountDetailsValidationError), raw_response: T.nilable(::Faraday::Response)).void }
23
+ def initialize(amount: nil, amount_details: nil, raw_response: nil)
22
24
  @amount = amount
25
+ @amount_details = amount_details
23
26
  @raw_response = raw_response
24
27
  end
25
28
 
@@ -27,6 +30,7 @@ module Moov
27
30
  def ==(other)
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @amount == other.amount
33
+ return false unless @amount_details == other.amount_details
30
34
  return false unless @raw_response == other.raw_response
31
35
  true
32
36
  end
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Errors::ReversalValidationError
11
11
  def amount(); end
12
12
  def amount=(str_); end
13
+ def amount_details(); end
14
+ def amount_details=(str_); end
13
15
  def raw_response(); end
14
16
  def raw_response=(str_); end
15
17
  end
@@ -14,6 +14,7 @@ module Moov
14
14
  autoload :BankAccountValidationError, 'moov/models/errors/bankaccountvalidationerror.rb'
15
15
  autoload :BrandValidationError, 'moov/models/errors/brandvalidationerror.rb'
16
16
  autoload :CardAcquiringRefundError, 'moov/models/errors/cardacquiringrefund_error.rb'
17
+ autoload :CardMetadataRequestError, 'moov/models/errors/cardmetadatarequesterror.rb'
17
18
  autoload :ConnectAccountRequestValidationError, 'moov/models/errors/connectaccountrequestvalidationerror.rb'
18
19
  autoload :CreateAccountError, 'moov/models/errors/createaccounterror.rb'
19
20
  autoload :CreateInvoiceError, 'moov/models/errors/createinvoiceerror.rb'
@@ -0,0 +1,48 @@
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 Operations
10
+
11
+ class GetCardMetadataResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # HTTP response content type for this operation
16
+ field :content_type, ::String
17
+ # HTTP response status code for this operation
18
+ field :status_code, ::Integer
19
+ # Raw HTTP response; suitable for custom response parsing
20
+ field :raw_response, ::Faraday::Response
21
+
22
+ field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String))
23
+ # The request completed successfully.
24
+ field :card_metadata, Crystalline::Nilable.new(Models::Components::CardMetadata)
25
+
26
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, headers: T::Hash[Symbol, T::Array[::String]], card_metadata: T.nilable(Models::Components::CardMetadata)).void }
27
+ def initialize(content_type:, status_code:, raw_response:, headers:, card_metadata: nil)
28
+ @content_type = content_type
29
+ @status_code = status_code
30
+ @raw_response = raw_response
31
+ @headers = headers
32
+ @card_metadata = card_metadata
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @content_type == other.content_type
39
+ return false unless @status_code == other.status_code
40
+ return false unless @raw_response == other.raw_response
41
+ return false unless @headers == other.headers
42
+ return false unless @card_metadata == other.card_metadata
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Operations::GetCardMetadataResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Operations::GetCardMetadataResponse
11
+ def content_type(); end
12
+ def content_type=(str_); end
13
+ def status_code(); end
14
+ def status_code=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ def headers(); end
18
+ def headers=(str_); end
19
+ def card_metadata(); end
20
+ def card_metadata=(str_); end
21
+ end
@@ -113,6 +113,7 @@ module Moov
113
113
  autoload :GetCancellationResponse, 'moov/models/operations/getcancellation_response.rb'
114
114
  autoload :GetCapabilityRequest, 'moov/models/operations/getcapability_request.rb'
115
115
  autoload :GetCapabilityResponse, 'moov/models/operations/getcapability_response.rb'
116
+ autoload :GetCardMetadataResponse, 'moov/models/operations/getcardmetadata_response.rb'
116
117
  autoload :GetCardRequest, 'moov/models/operations/getcard_request.rb'
117
118
  autoload :GetCardResponse, 'moov/models/operations/getcard_response.rb'
118
119
  autoload :GetDisputeEvidenceDataRequest, 'moov/models/operations/getdisputeevidencedata_request.rb'
@@ -88,9 +88,9 @@ module Moov
88
88
  end
89
89
  @language = 'ruby'
90
90
  @openapi_doc_version = 'dev'
91
- @sdk_version = '0.0.0-dev.15'
92
- @gen_version = '2.881.17'
93
- @user_agent = 'speakeasy-sdk/ruby 0.0.0-dev.15 2.881.17 dev moov_ruby'
91
+ @sdk_version = '0.0.0-dev.16'
92
+ @gen_version = '2.882.0'
93
+ @user_agent = 'speakeasy-sdk/ruby 0.0.0-dev.16 2.882.0 dev moov_ruby'
94
94
  end
95
95
 
96
96
  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.0.0.pre.dev.15
4
+ version: 0.0.0.pre.dev.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Speakeasy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-02 00:00:00.000000000 Z
11
+ date: 2026-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -518,6 +518,10 @@ files:
518
518
  - lib/moov/models/components/cardfundingsource.rbi
519
519
  - lib/moov/models/components/cardissuingnetwork.rb
520
520
  - lib/moov/models/components/cardissuingnetwork.rbi
521
+ - lib/moov/models/components/cardmetadata.rb
522
+ - lib/moov/models/components/cardmetadata.rbi
523
+ - lib/moov/models/components/cardmetadatarequest.rb
524
+ - lib/moov/models/components/cardmetadatarequest.rbi
521
525
  - lib/moov/models/components/cardnetwork.rb
522
526
  - lib/moov/models/components/cardnetwork.rbi
523
527
  - lib/moov/models/components/cardpayment.rb
@@ -1310,6 +1314,10 @@ files:
1310
1314
  - lib/moov/models/components/returnpolicytype.rbi
1311
1315
  - lib/moov/models/components/reversal.rb
1312
1316
  - lib/moov/models/components/reversal.rbi
1317
+ - lib/moov/models/components/reversalamountdetails.rb
1318
+ - lib/moov/models/components/reversalamountdetails.rbi
1319
+ - lib/moov/models/components/reversalamountdetailsvalidationerror.rb
1320
+ - lib/moov/models/components/reversalamountdetailsvalidationerror.rbi
1313
1321
  - lib/moov/models/components/reversedwithcancellation.rb
1314
1322
  - lib/moov/models/components/reversedwithcancellation.rbi
1315
1323
  - lib/moov/models/components/reversedwithrefund.rb
@@ -1695,6 +1703,8 @@ files:
1695
1703
  - lib/moov/models/errors/brandvalidationerror.rbi
1696
1704
  - lib/moov/models/errors/cardacquiringrefund_error.rb
1697
1705
  - lib/moov/models/errors/cardacquiringrefund_error.rbi
1706
+ - lib/moov/models/errors/cardmetadatarequesterror.rb
1707
+ - lib/moov/models/errors/cardmetadatarequesterror.rbi
1698
1708
  - lib/moov/models/errors/connectaccountrequestvalidationerror.rb
1699
1709
  - lib/moov/models/errors/connectaccountrequestvalidationerror.rbi
1700
1710
  - lib/moov/models/errors/createaccounterror.rb
@@ -2014,6 +2024,8 @@ files:
2014
2024
  - lib/moov/models/operations/getcard_request.rbi
2015
2025
  - lib/moov/models/operations/getcard_response.rb
2016
2026
  - lib/moov/models/operations/getcard_response.rbi
2027
+ - lib/moov/models/operations/getcardmetadata_response.rb
2028
+ - lib/moov/models/operations/getcardmetadata_response.rbi
2017
2029
  - lib/moov/models/operations/getdispute_request.rb
2018
2030
  - lib/moov/models/operations/getdispute_request.rbi
2019
2031
  - lib/moov/models/operations/getdispute_response.rb