moov_ruby 0.0.0.pre.dev.11 → 0.0.0.pre.dev.13

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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/apple_pay.rb +5 -5
  3. data/lib/moov/card_issuing.rb +22 -13
  4. data/lib/moov/client.rb +2 -1
  5. data/lib/moov/google_pay.rb +210 -0
  6. data/lib/moov/models/components/batchgettransfersrequest.rb +32 -0
  7. data/lib/moov/models/components/batchgettransfersrequest.rbi +13 -0
  8. data/lib/moov/models/components/cardpayouttype.rb +18 -0
  9. data/lib/moov/models/components/cardpayouttype.rbi +11 -0
  10. data/lib/moov/models/components/createdtransfer.rb +6 -2
  11. data/lib/moov/models/components/createdtransfer.rbi +2 -0
  12. data/lib/moov/models/components/createtransferdestinationcard.rb +6 -2
  13. data/lib/moov/models/components/createtransferdestinationcard.rbi +2 -0
  14. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +2 -0
  15. data/lib/moov/models/components/googlepayintermediatesigningkey.rb +36 -0
  16. data/lib/moov/models/components/googlepayintermediatesigningkey.rbi +15 -0
  17. data/lib/moov/models/components/googlepaypaymentmethod.rb +40 -0
  18. data/lib/moov/models/components/googlepaypaymentmethod.rbi +17 -0
  19. data/lib/moov/models/components/googlepaypaymentmethod_paymentmethodtype.rb +18 -0
  20. data/lib/moov/models/components/googlepaypaymentmethod_paymentmethodtype.rbi +11 -0
  21. data/lib/moov/models/components/googlepayresponse.rb +50 -0
  22. data/lib/moov/models/components/googlepayresponse.rbi +21 -0
  23. data/lib/moov/models/components/googlepaytoken.rb +47 -0
  24. data/lib/moov/models/components/googlepaytoken.rbi +19 -0
  25. data/lib/moov/models/components/googlepaytransferpaymentmethod.rb +40 -0
  26. data/lib/moov/models/components/googlepaytransferpaymentmethod.rbi +17 -0
  27. data/lib/moov/models/components/googlepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  28. data/lib/moov/models/components/googlepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  29. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rb +40 -0
  30. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rbi +17 -0
  31. data/lib/moov/models/components/linkedgooglepaypaymentmethod_paymentmethodtype.rb +18 -0
  32. data/lib/moov/models/components/linkedgooglepaypaymentmethod_paymentmethodtype.rbi +11 -0
  33. data/lib/moov/models/components/linkgooglepay.rb +38 -0
  34. data/lib/moov/models/components/linkgooglepay.rbi +13 -0
  35. data/lib/moov/models/components/paymentmethodtype.rb +5 -0
  36. data/lib/moov/models/components/pullfromapplepaypaymentmethod.rb +40 -0
  37. data/lib/moov/models/components/pullfromapplepaypaymentmethod.rbi +17 -0
  38. data/lib/moov/models/components/pullfromapplepaypaymentmethod_paymentmethodtype.rb +18 -0
  39. data/lib/moov/models/components/pullfromapplepaypaymentmethod_paymentmethodtype.rbi +11 -0
  40. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod.rb +40 -0
  41. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod.rbi +17 -0
  42. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  43. data/lib/moov/models/components/pullfromapplepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  44. data/lib/moov/models/components/pullfromgooglepaypaymentmethod.rb +40 -0
  45. data/lib/moov/models/components/pullfromgooglepaypaymentmethod.rbi +17 -0
  46. data/lib/moov/models/components/pullfromgooglepaypaymentmethod_paymentmethodtype.rb +18 -0
  47. data/lib/moov/models/components/pullfromgooglepaypaymentmethod_paymentmethodtype.rbi +11 -0
  48. data/lib/moov/models/components/pullfromgooglepaytransferpaymentmethod.rb +40 -0
  49. data/lib/moov/models/components/pullfromgooglepaytransferpaymentmethod.rbi +17 -0
  50. data/lib/moov/models/components/pullfromgooglepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  51. data/lib/moov/models/components/pullfromgooglepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  52. data/lib/moov/models/components/pushtoapplepaypaymentmethod.rb +40 -0
  53. data/lib/moov/models/components/pushtoapplepaypaymentmethod.rbi +17 -0
  54. data/lib/moov/models/components/pushtoapplepaypaymentmethod_paymentmethodtype.rb +18 -0
  55. data/lib/moov/models/components/pushtoapplepaypaymentmethod_paymentmethodtype.rbi +11 -0
  56. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod.rb +40 -0
  57. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod.rbi +17 -0
  58. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  59. data/lib/moov/models/components/pushtoapplepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  60. data/lib/moov/models/components/pushtogooglepaypaymentmethod.rb +40 -0
  61. data/lib/moov/models/components/pushtogooglepaypaymentmethod.rbi +17 -0
  62. data/lib/moov/models/components/pushtogooglepaypaymentmethod_paymentmethodtype.rb +18 -0
  63. data/lib/moov/models/components/pushtogooglepaypaymentmethod_paymentmethodtype.rbi +11 -0
  64. data/lib/moov/models/components/pushtogooglepaytransferpaymentmethod.rb +40 -0
  65. data/lib/moov/models/components/pushtogooglepaytransferpaymentmethod.rbi +17 -0
  66. data/lib/moov/models/components/pushtogooglepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  67. data/lib/moov/models/components/pushtogooglepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  68. data/lib/moov/models/components/resolutionlink.rb +6 -2
  69. data/lib/moov/models/components/resolutionlink.rbi +2 -0
  70. data/lib/moov/models/components/resolutionlinkstatus.rb +22 -0
  71. data/lib/moov/models/components/resolutionlinkstatus.rbi +11 -0
  72. data/lib/moov/models/components/rtpdetails.rb +58 -0
  73. data/lib/moov/models/components/rtpdetails.rbi +25 -0
  74. data/lib/moov/models/components/rtpfailurecode.rb +27 -0
  75. data/lib/moov/models/components/rtpfailurecode.rbi +11 -0
  76. data/lib/moov/models/components/rtptransactionstatus.rb +21 -0
  77. data/lib/moov/models/components/rtptransactionstatus.rbi +11 -0
  78. data/lib/moov/models/components/transfer.rb +6 -2
  79. data/lib/moov/models/components/transfer.rbi +2 -0
  80. data/lib/moov/models/components/transfercapture.rb +36 -0
  81. data/lib/moov/models/components/transfercapture.rbi +15 -0
  82. data/lib/moov/models/components/transferdestination.rb +6 -2
  83. data/lib/moov/models/components/transferdestination.rbi +2 -0
  84. data/lib/moov/models/components/transferoptions.rb +3 -3
  85. data/lib/moov/models/components/transferpaymentmethodtype.rb +5 -0
  86. data/lib/moov/models/components/webhookbillingstatementcreated.rb +6 -2
  87. data/lib/moov/models/components/webhookbillingstatementcreated.rbi +2 -0
  88. data/lib/moov/models/components.rb +33 -0
  89. data/lib/moov/models/errors/linkgooglepayerror.rb +40 -0
  90. data/lib/moov/models/errors/linkgooglepayerror.rbi +17 -0
  91. data/lib/moov/models/errors/transfer_error.rb +6 -2
  92. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  93. data/lib/moov/models/errors.rb +1 -0
  94. data/lib/moov/models/operations/batchgettransfers_request.rb +36 -0
  95. data/lib/moov/models/operations/batchgettransfers_request.rbi +15 -0
  96. data/lib/moov/models/operations/batchgettransfers_response.rb +48 -0
  97. data/lib/moov/models/operations/batchgettransfers_response.rbi +21 -0
  98. data/lib/moov/models/operations/getpaymentmethod_response.rb +2 -2
  99. data/lib/moov/models/operations/linkapplepaytoken_response.rb +5 -5
  100. data/lib/moov/models/operations/linkapplepaytoken_response.rbi +2 -2
  101. data/lib/moov/models/operations/linkgooglepaytoken_request.rb +36 -0
  102. data/lib/moov/models/operations/linkgooglepaytoken_request.rbi +15 -0
  103. data/lib/moov/models/operations/linkgooglepaytoken_response.rb +48 -0
  104. data/lib/moov/models/operations/linkgooglepaytoken_response.rbi +21 -0
  105. data/lib/moov/models/operations/listpaymentmethods_response.rb +2 -2
  106. data/lib/moov/models/operations/listtransfers_request.rb +10 -2
  107. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  108. data/lib/moov/models/operations/updateissuedcard_response.rb +6 -2
  109. data/lib/moov/models/operations/updateissuedcard_response.rbi +2 -0
  110. data/lib/moov/models/operations.rb +4 -0
  111. data/lib/moov/payment_methods.rb +2 -2
  112. data/lib/moov/sdkconfiguration.rb +5 -6
  113. data/lib/moov/transfers.rb +139 -0
  114. data/lib/moov/utils/security.rb +22 -11
  115. data/lib/moov_ruby.rb +1 -0
  116. metadata +79 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d8ddea9d051adebe69a183718f7ce6609daa3bbe28d2f441befdf1e394bb4314
4
- data.tar.gz: f09bece97d56630755c504b524ebf69623a93c52409f2853c357fa55a6084724
3
+ metadata.gz: 63762dd8c3e3a4ae9d16ac53f296d0b2bf8dfa61fac02a57bdad4143d93f6b13
4
+ data.tar.gz: 862d48a8f35ceaec9802992676fb80e7a7e500d38bf0dda80438feeedad91b01
5
5
  SHA512:
6
- metadata.gz: 575153b3431c7b4e7694277cfcb4164e71cc0ac3cdbe3e4475dcfe116cc8e68323907101ab5ffdb0293d8904d90f2ccbddf36eba3b285877d84a8edb05180c25
7
- data.tar.gz: 8646eed92a3bb482db74e8e4bdbe48d9d76da5af12acfafe85ef90b5edb9626ba5e334fad281fb308844b94de6653bf55a9972e361fc7198bb3fd5efe294ee8e
6
+ metadata.gz: 538880aeed279865b7c3b6d42fd0bdaa4d7ec356e057a01cbb538492dff17dea9a5bc1fb3e42b9615f7262790be701374020c27d33b24bf81aff58b9a52179de
7
+ data.tar.gz: 2aa79fa1927966c77923d8d4e3b822bf37e8664771e9543f79f4e3ffd615b01c1cf5f375baeb50ca982cc2ce89f27465bd150499e2dc8494b6a86066f5abff3f
@@ -617,12 +617,12 @@ module Moov
617
617
 
618
618
  sig { params(link_apple_pay: Models::Components::LinkApplePay, account_id: ::String, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::LinkApplePayTokenResponse) }
619
619
  def link_token(link_apple_pay:, account_id:, timeout_ms: nil, http_headers: nil)
620
- # link_token - Connect an Apple Pay token to the specified account.
620
+ # link_token - Connect an Apple Pay token to the specified account.
621
621
  #
622
- # Read our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more.
622
+ # Read our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more.
623
623
  # The `token` data is defined by Apple Pay and should be passed through from Apple Pay's response unmodified.
624
624
  #
625
- # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
625
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
626
626
  # you'll need to specify the `/accounts/{accountID}/cards.write` scope.
627
627
  request = Models::Operations::LinkApplePayTokenRequest.new(
628
628
  account_id: account_id,
@@ -725,13 +725,13 @@ module Moov
725
725
  response: http_response
726
726
  )
727
727
  response_data = http_response.env.response_body
728
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::LinkedApplePayPaymentMethod)
728
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Crystalline::Array.new(Models::Components::LinkedApplePayPaymentMethod))
729
729
  response = Models::Operations::LinkApplePayTokenResponse.new(
730
730
  status_code: http_response.status,
731
731
  content_type: content_type,
732
732
  raw_response: http_response,
733
733
  headers: http_response.headers,
734
- linked_apple_pay_payment_method: T.unsafe(obj)
734
+ linked_apple_pay_payment_methods: T.unsafe(obj)
735
735
  )
736
736
 
737
737
  return response
@@ -555,19 +555,28 @@ module Moov
555
555
  end
556
556
 
557
557
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
558
- if Utils.match_status_code(http_response.status, ['204'])
559
- http_response = @sdk_configuration.hooks.after_success(
560
- hook_ctx: SDKHooks::AfterSuccessHookContext.new(
561
- hook_ctx: hook_ctx
562
- ),
563
- response: http_response
564
- )
565
- return Models::Operations::UpdateIssuedCardResponse.new(
566
- status_code: http_response.status,
567
- content_type: content_type,
568
- raw_response: http_response,
569
- headers: {}
570
- )
558
+ if Utils.match_status_code(http_response.status, ['200'])
559
+ if Utils.match_content_type(content_type, 'application/json')
560
+ http_response = @sdk_configuration.hooks.after_success(
561
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
562
+ hook_ctx: hook_ctx
563
+ ),
564
+ response: http_response
565
+ )
566
+ response_data = http_response.env.response_body
567
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::IssuedCard)
568
+ response = Models::Operations::UpdateIssuedCardResponse.new(
569
+ status_code: http_response.status,
570
+ content_type: content_type,
571
+ raw_response: http_response,
572
+ headers: http_response.headers,
573
+ issued_card: T.unsafe(obj)
574
+ )
575
+
576
+ return response
577
+ else
578
+ 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'
579
+ end
571
580
  elsif Utils.match_status_code(http_response.status, ['400', '409'])
572
581
  if Utils.match_content_type(content_type, 'application/json')
573
582
  http_response = @sdk_configuration.hooks.after_success(
data/lib/moov/client.rb CHANGED
@@ -16,7 +16,7 @@ module Moov
16
16
  class Client
17
17
  extend T::Sig
18
18
 
19
- attr_accessor :accounts, :adjustments, :apple_pay, :bank_accounts, :branding, :capabilities, :cards, :disputes, :fee_plans, :files, :images, :invoices, :payment_links, :payment_methods, :products, :representatives, :resolution_links, :scheduling, :statements, :sweeps, :account_terminal_applications, :support, :transfers, :underwriting, :wallets, :wallet_transactions, :avatars, :end_to_end_encryption, :enriched_address, :enriched_profile, :webhooks, :industries, :institutions, :issuing_transactions, :card_issuing, :authentication, :onboarding, :ping, :receipts, :terminal_applications
19
+ attr_accessor :accounts, :adjustments, :apple_pay, :bank_accounts, :branding, :capabilities, :cards, :disputes, :fee_plans, :files, :google_pay, :images, :invoices, :payment_links, :payment_methods, :products, :representatives, :resolution_links, :scheduling, :statements, :sweeps, :account_terminal_applications, :support, :transfers, :underwriting, :wallets, :wallet_transactions, :avatars, :end_to_end_encryption, :enriched_address, :enriched_profile, :webhooks, :industries, :institutions, :issuing_transactions, :card_issuing, :authentication, :onboarding, :ping, :receipts, :terminal_applications
20
20
 
21
21
  # Instantiates the SDK, configuring it with the provided parameters.
22
22
  #
@@ -88,6 +88,7 @@ module Moov
88
88
  @disputes = Disputes.new(@sdk_configuration)
89
89
  @fee_plans = FeePlans.new(@sdk_configuration)
90
90
  @files = Files.new(@sdk_configuration)
91
+ @google_pay = GooglePay.new(@sdk_configuration)
91
92
  @images = Images.new(@sdk_configuration)
92
93
  @invoices = Invoices.new(@sdk_configuration)
93
94
  @payment_links = PaymentLinks.new(@sdk_configuration)
@@ -0,0 +1,210 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'faraday/retry'
9
+ require 'sorbet-runtime'
10
+ require_relative 'sdk_hooks/hooks'
11
+ require_relative 'utils/retries'
12
+
13
+ module Moov
14
+ extend T::Sig
15
+ class GooglePay
16
+ extend T::Sig
17
+
18
+
19
+
20
+ sig { params(sdk_config: SDKConfiguration).void }
21
+ def initialize(sdk_config)
22
+ @sdk_configuration = sdk_config
23
+
24
+ end
25
+
26
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, T.any(String, T::Enum)])).returns(String) }
27
+ def get_url(base_url:, url_variables: nil)
28
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
29
+
30
+ if base_url.nil?
31
+ base_url = sd_base_url
32
+ end
33
+
34
+ if url_variables.nil?
35
+ url_variables = sd_options
36
+ end
37
+
38
+ return Utils.template_url base_url, url_variables
39
+ end
40
+
41
+
42
+
43
+
44
+ sig { params(link_google_pay: Models::Components::LinkGooglePay, account_id: ::String, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::LinkGooglePayTokenResponse) }
45
+ def link_token(link_google_pay:, account_id:, timeout_ms: nil, http_headers: nil)
46
+ # link_token - Connect a Google Pay token to the specified account.
47
+ #
48
+ # The `token` data is defined by Google Pay and should be passed through from Google Pay's response unmodified.
49
+ #
50
+ # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
51
+ # you'll need to specify the `/accounts/{accountID}/cards.write` scope.
52
+ request = Models::Operations::LinkGooglePayTokenRequest.new(
53
+ account_id: account_id,
54
+ link_google_pay: link_google_pay
55
+ )
56
+ url, params = @sdk_configuration.get_server_details
57
+ base_url = Utils.template_url(url, params)
58
+ url = Utils.generate_url(
59
+ Models::Operations::LinkGooglePayTokenRequest,
60
+ base_url,
61
+ '/accounts/{accountID}/google-pay/tokens',
62
+ request
63
+ )
64
+ headers = {}
65
+ headers = T.cast(headers, T::Hash[String, String])
66
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :link_google_pay, :json)
67
+ headers['content-type'] = req_content_type
68
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
69
+
70
+ if form && !form.empty?
71
+ body = Utils.encode_form(form)
72
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
73
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
74
+ else
75
+ body = data
76
+ end
77
+ headers['Accept'] = 'application/json'
78
+ headers['user-agent'] = @sdk_configuration.user_agent
79
+
80
+ security = @sdk_configuration.security_source&.call
81
+
82
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
83
+ timeout ||= @sdk_configuration.timeout
84
+
85
+
86
+ connection = @sdk_configuration.client
87
+
88
+ hook_ctx = SDKHooks::HookContext.new(
89
+ config: @sdk_configuration,
90
+ base_url: base_url,
91
+ oauth2_scopes: nil,
92
+ operation_id: 'linkGooglePayToken',
93
+ security_source: @sdk_configuration.security_source
94
+ )
95
+
96
+ error = T.let(nil, T.nilable(StandardError))
97
+ http_response = T.let(nil, T.nilable(Faraday::Response))
98
+
99
+
100
+ begin
101
+ http_response = T.must(connection).post(url) do |req|
102
+ req.body = body
103
+ req.headers.merge!(headers)
104
+ req.options.timeout = timeout unless timeout.nil?
105
+ Utils.configure_request_security(req, security)
106
+ http_headers&.each do |key, value|
107
+ req.headers[key.to_s] = value
108
+ end
109
+
110
+ @sdk_configuration.hooks.before_request(
111
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
112
+ hook_ctx: hook_ctx
113
+ ),
114
+ request: req
115
+ )
116
+ end
117
+ rescue StandardError => e
118
+ error = e
119
+ ensure
120
+ if http_response.nil? || Utils.error_status?(http_response.status)
121
+ http_response = @sdk_configuration.hooks.after_error(
122
+ error: error,
123
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
124
+ hook_ctx: hook_ctx
125
+ ),
126
+ response: http_response
127
+ )
128
+ else
129
+ http_response = @sdk_configuration.hooks.after_success(
130
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
131
+ hook_ctx: hook_ctx
132
+ ),
133
+ response: http_response
134
+ )
135
+ end
136
+
137
+ if http_response.nil?
138
+ raise error if !error.nil?
139
+ raise 'no response'
140
+ end
141
+ end
142
+
143
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
144
+ if Utils.match_status_code(http_response.status, ['200'])
145
+ if Utils.match_content_type(content_type, 'application/json')
146
+ http_response = @sdk_configuration.hooks.after_success(
147
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
148
+ hook_ctx: hook_ctx
149
+ ),
150
+ response: http_response
151
+ )
152
+ response_data = http_response.env.response_body
153
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Crystalline::Array.new(Models::Components::LinkedGooglePayPaymentMethod))
154
+ response = Models::Operations::LinkGooglePayTokenResponse.new(
155
+ status_code: http_response.status,
156
+ content_type: content_type,
157
+ raw_response: http_response,
158
+ headers: http_response.headers,
159
+ linked_google_pay_payment_methods: T.unsafe(obj)
160
+ )
161
+
162
+ return response
163
+ else
164
+ 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'
165
+ end
166
+ elsif Utils.match_status_code(http_response.status, ['400', '409'])
167
+ if Utils.match_content_type(content_type, 'application/json')
168
+ http_response = @sdk_configuration.hooks.after_success(
169
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
170
+ hook_ctx: hook_ctx
171
+ ),
172
+ response: http_response
173
+ )
174
+ response_data = http_response.env.response_body
175
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::GenericError)
176
+ obj.raw_response = http_response
177
+ raise obj
178
+ else
179
+ 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'
180
+ end
181
+ elsif Utils.match_status_code(http_response.status, ['422'])
182
+ if Utils.match_content_type(content_type, 'application/json')
183
+ http_response = @sdk_configuration.hooks.after_success(
184
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
185
+ hook_ctx: hook_ctx
186
+ ),
187
+ response: http_response
188
+ )
189
+ response_data = http_response.env.response_body
190
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::LinkGooglePayError)
191
+ obj.raw_response = http_response
192
+ raise obj
193
+ else
194
+ 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'
195
+ end
196
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
197
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
198
+ elsif Utils.match_status_code(http_response.status, ['500', '504'])
199
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
200
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
201
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
202
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
203
+ raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
204
+ else
205
+ 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'
206
+
207
+ end
208
+ end
209
+ end
210
+ 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
+ # Array of transfer IDs to fetch.
11
+ class BatchGetTransfersRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :transfer_i_ds, Crystalline::Array.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferIDs'), required: true } }
17
+
18
+ sig { params(transfer_i_ds: T::Array[::String]).void }
19
+ def initialize(transfer_i_ds:)
20
+ @transfer_i_ds = transfer_i_ds
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 @transfer_i_ds == other.transfer_i_ds
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::BatchGetTransfersRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BatchGetTransfersRequest
11
+ def transfer_i_ds(); end
12
+ def transfer_i_ds=(str_); end
13
+ end
@@ -0,0 +1,18 @@
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
+ # CardPayoutType - Specifies the type of card payout for push-to-card transfers, used to determine the business application identifier (BAI) sent to the card network.
11
+ class CardPayoutType < T::Enum
12
+ enums do
13
+ LOYALTY = new('loyalty')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardPayoutType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardPayoutType
11
+ end
@@ -67,9 +67,11 @@ module Moov
67
67
  # An optional collection of line items for a transfer.
68
68
  # When line items are provided, their total plus sales tax must equal the transfer amount.
69
69
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
70
+ # The card authorization and capture IDs associated with a transfer.
71
+ field :capture, Crystalline::Nilable.new(Models::Components::TransferCapture), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capture') } }
70
72
 
71
- sig { params(transfer_id: ::String, created_on: ::DateTime, source: T.nilable(Models::Components::TransferSource), destination: T.nilable(Models::Components::TransferDestination), completed_on: T.nilable(::DateTime), status: T.nilable(Models::Components::TransferStatus), failure_reason: T.nilable(Models::Components::TransferFailureReason), amount: T.nilable(Models::Components::Amount), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems)).void }
72
- def initialize(transfer_id:, created_on:, source: nil, destination: nil, completed_on: nil, status: nil, failure_reason: nil, amount: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil)
73
+ sig { params(transfer_id: ::String, created_on: ::DateTime, source: T.nilable(Models::Components::TransferSource), destination: T.nilable(Models::Components::TransferDestination), completed_on: T.nilable(::DateTime), status: T.nilable(Models::Components::TransferStatus), failure_reason: T.nilable(Models::Components::TransferFailureReason), amount: T.nilable(Models::Components::Amount), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), capture: T.nilable(Models::Components::TransferCapture)).void }
74
+ def initialize(transfer_id:, created_on:, source: nil, destination: nil, completed_on: nil, status: nil, failure_reason: nil, amount: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil, capture: nil)
73
75
  @transfer_id = transfer_id
74
76
  @created_on = created_on
75
77
  @source = source
@@ -97,6 +99,7 @@ module Moov
97
99
  @sales_tax_amount = sales_tax_amount
98
100
  @foreign_id = foreign_id
99
101
  @line_items = line_items
102
+ @capture = capture
100
103
  end
101
104
 
102
105
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -129,6 +132,7 @@ module Moov
129
132
  return false unless @sales_tax_amount == other.sales_tax_amount
130
133
  return false unless @foreign_id == other.foreign_id
131
134
  return false unless @line_items == other.line_items
135
+ return false unless @capture == other.capture
132
136
  true
133
137
  end
134
138
  end
@@ -62,4 +62,6 @@ class Moov::Models::Components::CreatedTransfer
62
62
  def foreign_id=(str_); end
63
63
  def line_items(); end
64
64
  def line_items=(str_); end
65
+ def capture(); end
66
+ def capture=(str_); end
65
67
  end
@@ -14,16 +14,20 @@ module Moov
14
14
 
15
15
  # An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.
16
16
  field :dynamic_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicDescriptor') } }
17
+ # An optional field to specify the type of card payout, used to route the transfer with the appropriate business application identifier (BAI).
18
+ field :payout_type, Crystalline::Nilable.new(Models::Components::CardPayoutType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payoutType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardPayoutType, true) } }
17
19
 
18
- sig { params(dynamic_descriptor: T.nilable(::String)).void }
19
- def initialize(dynamic_descriptor: nil)
20
+ sig { params(dynamic_descriptor: T.nilable(::String), payout_type: T.nilable(Models::Components::CardPayoutType)).void }
21
+ def initialize(dynamic_descriptor: nil, payout_type: nil)
20
22
  @dynamic_descriptor = dynamic_descriptor
23
+ @payout_type = payout_type
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 @dynamic_descriptor == other.dynamic_descriptor
30
+ return false unless @payout_type == other.payout_type
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class Moov::Models::Components::CreateTransferDestinationCard
11
11
  def dynamic_descriptor(); end
12
12
  def dynamic_descriptor=(str_); end
13
+ def payout_type(); end
14
+ def payout_type=(str_); end
13
15
  end
@@ -14,6 +14,8 @@ module Moov
14
14
  RTP_CREDIT = new('rtp-credit')
15
15
  ACH_CREDIT_SAME_DAY = new('ach-credit-same-day')
16
16
  ACH_CREDIT_STANDARD = new('ach-credit-standard')
17
+ PUSH_TO_APPLE_PAY = new('push-to-apple-pay')
18
+ PUSH_TO_GOOGLE_PAY = new('push-to-google-pay')
17
19
  end
18
20
  end
19
21
  end
@@ -0,0 +1,36 @@
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
+ # Contains the intermediate signing key for verification.
11
+ class GooglePayIntermediateSigningKey
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # A JSON-encoded serialized string containing the signing key data.
16
+ field :signed_key, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('signedKey'), required: true } }
17
+ # Base64-encoded signatures of the `signedKey`.
18
+ field :signatures, Crystalline::Array.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('signatures'), required: true } }
19
+
20
+ sig { params(signed_key: ::String, signatures: T::Array[::String]).void }
21
+ def initialize(signed_key:, signatures:)
22
+ @signed_key = signed_key
23
+ @signatures = signatures
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @signed_key == other.signed_key
30
+ return false unless @signatures == other.signatures
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::GooglePayIntermediateSigningKey
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::GooglePayIntermediateSigningKey
11
+ def signed_key(); end
12
+ def signed_key=(str_); end
13
+ def signatures(); end
14
+ def signatures=(str_); end
15
+ end
@@ -0,0 +1,40 @@
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 GooglePayPaymentMethod
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the payment method.
16
+ field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
+
18
+ field :payment_method_type, Models::Components::GooglePayPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::GooglePayPaymentMethodPaymentMethodType, false) } }
19
+ # Describes a Google Pay token on a Moov account.
20
+ field :google_pay, Models::Components::GooglePayResponse, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('googlePay'), required: true } }
21
+
22
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::GooglePayPaymentMethodPaymentMethodType, google_pay: Models::Components::GooglePayResponse).void }
23
+ def initialize(payment_method_id:, payment_method_type:, google_pay:)
24
+ @payment_method_id = payment_method_id
25
+ @payment_method_type = payment_method_type
26
+ @google_pay = google_pay
27
+ end
28
+
29
+ sig { params(other: T.untyped).returns(T::Boolean) }
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @payment_method_id == other.payment_method_id
33
+ return false unless @payment_method_type == other.payment_method_type
34
+ return false unless @google_pay == other.google_pay
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::GooglePayPaymentMethod
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::GooglePayPaymentMethod
11
+ def payment_method_id(); end
12
+ def payment_method_id=(str_); end
13
+ def payment_method_type(); end
14
+ def payment_method_type=(str_); end
15
+ def google_pay(); end
16
+ def google_pay=(str_); end
17
+ end
@@ -0,0 +1,18 @@
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 GooglePayPaymentMethodPaymentMethodType < T::Enum
12
+ enums do
13
+ GOOGLE_PAY = new('google-pay')
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::GooglePayPaymentMethodPaymentMethodType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::GooglePayPaymentMethodPaymentMethodType
11
+ end