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 +4 -4
- data/lib/moov/cards.rb +158 -0
- data/lib/moov/models/components/cardmetadata.rb +79 -0
- data/lib/moov/models/components/cardmetadata.rbi +35 -0
- data/lib/moov/models/components/cardmetadatarequest.rb +38 -0
- data/lib/moov/models/components/cardmetadatarequest.rbi +15 -0
- data/lib/moov/models/components/collectionpaymentmethodtype.rb +1 -0
- data/lib/moov/models/components/createreversal.rb +6 -2
- data/lib/moov/models/components/createreversal.rbi +2 -0
- data/lib/moov/models/components/reversalamountdetails.rb +32 -0
- data/lib/moov/models/components/reversalamountdetails.rbi +13 -0
- data/lib/moov/models/components/reversalamountdetailsvalidationerror.rb +32 -0
- data/lib/moov/models/components/reversalamountdetailsvalidationerror.rbi +13 -0
- data/lib/moov/models/components.rb +4 -0
- data/lib/moov/models/errors/cardmetadatarequesterror.rb +44 -0
- data/lib/moov/models/errors/cardmetadatarequesterror.rbi +19 -0
- data/lib/moov/models/errors/reversalvalidationerror.rb +6 -2
- data/lib/moov/models/errors/reversalvalidationerror.rbi +2 -0
- data/lib/moov/models/errors.rb +1 -0
- data/lib/moov/models/operations/getcardmetadata_response.rb +48 -0
- data/lib/moov/models/operations/getcardmetadata_response.rbi +21 -0
- data/lib/moov/models/operations.rb +1 -0
- data/lib/moov/sdkconfiguration.rb +3 -3
- metadata +14 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f7346fb2fc2987b4836f7a3f7e3dba0a38e64efdaa1eef35e43fdbc9d921c59
|
|
4
|
+
data.tar.gz: 303f563b126f9afc00270b3d44c54eb0f08b2d9d6b640fc5fdbe2df0ef2cf25f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
@@ -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
|
|
@@ -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
|
data/lib/moov/models/errors.rb
CHANGED
|
@@ -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.
|
|
92
|
-
@gen_version = '2.
|
|
93
|
-
@user_agent = 'speakeasy-sdk/ruby 0.0.0-dev.
|
|
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.
|
|
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-
|
|
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
|