alogram_payrisk 0.2.21 → 0.2.23

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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +2 -2
  4. data/RELEASE.json +4 -4
  5. data/alogram_payrisk.gemspec +1 -1
  6. data/lib/alogram_payrisk/api/forensic_data_api.rb +1 -1
  7. data/lib/alogram_payrisk/api/risk_scoring_api.rb +1 -1
  8. data/lib/alogram_payrisk/api/roadmap_preview_api.rb +99 -1
  9. data/lib/alogram_payrisk/api/signal_intelligence_api.rb +1 -1
  10. data/lib/alogram_payrisk/api/system_api.rb +1 -1
  11. data/lib/alogram_payrisk/api_client.rb +1 -1
  12. data/lib/alogram_payrisk/api_error.rb +1 -1
  13. data/lib/alogram_payrisk/api_model_base.rb +1 -1
  14. data/lib/alogram_payrisk/configuration.rb +1 -1
  15. data/lib/alogram_payrisk/models/account.rb +1 -1
  16. data/lib/alogram_payrisk/models/account_check_request.rb +1 -1
  17. data/lib/alogram_payrisk/models/agent_manifest.rb +1 -1
  18. data/lib/alogram_payrisk/models/agent_provider.rb +1 -1
  19. data/lib/alogram_payrisk/models/auth_context.rb +1 -1
  20. data/lib/alogram_payrisk/models/avs_result_enum.rb +1 -1
  21. data/lib/alogram_payrisk/models/bank_transfer.rb +1 -1
  22. data/lib/alogram_payrisk/models/card.rb +1 -1
  23. data/lib/alogram_payrisk/models/card_network_enum.rb +1 -1
  24. data/lib/alogram_payrisk/models/category_signal.rb +1 -1
  25. data/lib/alogram_payrisk/models/channel_enum.rb +1 -1
  26. data/lib/alogram_payrisk/models/check_request.rb +1 -1
  27. data/lib/alogram_payrisk/models/confidence_enum.rb +1 -1
  28. data/lib/alogram_payrisk/models/crypto.rb +1 -1
  29. data/lib/alogram_payrisk/models/cvv_result_enum.rb +1 -1
  30. data/lib/alogram_payrisk/models/decision_resolution_request.rb +310 -0
  31. data/lib/alogram_payrisk/models/decision_resolution_request_analyst.rb +216 -0
  32. data/lib/alogram_payrisk/models/decision_resolution_response.rb +219 -0
  33. data/lib/alogram_payrisk/models/decision_response.rb +1 -1
  34. data/lib/alogram_payrisk/models/device_info.rb +1 -1
  35. data/lib/alogram_payrisk/models/discount_code.rb +1 -1
  36. data/lib/alogram_payrisk/models/entity_ids.rb +1 -1
  37. data/lib/alogram_payrisk/models/entry_method_enum.rb +1 -1
  38. data/lib/alogram_payrisk/models/external_assessment.rb +1 -1
  39. data/lib/alogram_payrisk/models/fraud_score.rb +1 -1
  40. data/lib/alogram_payrisk/models/identity.rb +1 -1
  41. data/lib/alogram_payrisk/models/ingest_payment_event202_response.rb +1 -1
  42. data/lib/alogram_payrisk/models/integrity.rb +1 -1
  43. data/lib/alogram_payrisk/models/interaction.rb +1 -1
  44. data/lib/alogram_payrisk/models/interaction_type_enum.rb +1 -1
  45. data/lib/alogram_payrisk/models/invoice.rb +1 -1
  46. data/lib/alogram_payrisk/models/ip_info.rb +1 -1
  47. data/lib/alogram_payrisk/models/kyc_check_request.rb +1 -1
  48. data/lib/alogram_payrisk/models/kyc_payload.rb +1 -1
  49. data/lib/alogram_payrisk/models/merchant_context.rb +1 -1
  50. data/lib/alogram_payrisk/models/order_context.rb +1 -1
  51. data/lib/alogram_payrisk/models/payer_type_enum.rb +1 -1
  52. data/lib/alogram_payrisk/models/payment_authorization_outcome.rb +1 -1
  53. data/lib/alogram_payrisk/models/payment_capture_outcome.rb +1 -1
  54. data/lib/alogram_payrisk/models/payment_card_type_enum.rb +1 -1
  55. data/lib/alogram_payrisk/models/payment_chargeback.rb +1 -1
  56. data/lib/alogram_payrisk/models/payment_chargeback_outcome.rb +1 -1
  57. data/lib/alogram_payrisk/models/payment_dispute_outcome.rb +1 -1
  58. data/lib/alogram_payrisk/models/payment_event.rb +1 -1
  59. data/lib/alogram_payrisk/models/payment_event_type.rb +1 -1
  60. data/lib/alogram_payrisk/models/payment_method.rb +1 -1
  61. data/lib/alogram_payrisk/models/payment_outcome.rb +1 -1
  62. data/lib/alogram_payrisk/models/payment_realtime_type_enum.rb +1 -1
  63. data/lib/alogram_payrisk/models/payment_refund_outcome.rb +1 -1
  64. data/lib/alogram_payrisk/models/payment_wallet_type_enum.rb +1 -1
  65. data/lib/alogram_payrisk/models/postal_address.rb +1 -1
  66. data/lib/alogram_payrisk/models/problem.rb +1 -1
  67. data/lib/alogram_payrisk/models/purchase.rb +1 -1
  68. data/lib/alogram_payrisk/models/purchase_initiator_enum.rb +1 -1
  69. data/lib/alogram_payrisk/models/purchase_sequence_enum.rb +1 -1
  70. data/lib/alogram_payrisk/models/purchase_usage_enum.rb +1 -1
  71. data/lib/alogram_payrisk/models/realtime.rb +1 -1
  72. data/lib/alogram_payrisk/models/reason_detail.rb +1 -1
  73. data/lib/alogram_payrisk/models/risk_breakdown.rb +1 -1
  74. data/lib/alogram_payrisk/models/risk_category_enum.rb +1 -1
  75. data/lib/alogram_payrisk/models/risk_level_enum.rb +1 -1
  76. data/lib/alogram_payrisk/models/sca_method_enum.rb +1 -1
  77. data/lib/alogram_payrisk/models/score_record.rb +1 -1
  78. data/lib/alogram_payrisk/models/scores_success_response.rb +1 -1
  79. data/lib/alogram_payrisk/models/signals_account_variant.rb +1 -1
  80. data/lib/alogram_payrisk/models/signals_interaction_variant.rb +1 -1
  81. data/lib/alogram_payrisk/models/signals_request.rb +1 -1
  82. data/lib/alogram_payrisk/models/stored_credential_context.rb +1 -1
  83. data/lib/alogram_payrisk/models/three_ds_data.rb +1 -1
  84. data/lib/alogram_payrisk/models/wallet.rb +1 -1
  85. data/lib/alogram_payrisk/version.rb +2 -2
  86. data/lib/alogram_payrisk.rb +4 -1
  87. data/spec/api/forensic_data_api_spec.rb +1 -1
  88. data/spec/api/risk_scoring_api_spec.rb +1 -1
  89. data/spec/api/roadmap_preview_api_spec.rb +16 -1
  90. data/spec/api/signal_intelligence_api_spec.rb +1 -1
  91. data/spec/api/system_api_spec.rb +1 -1
  92. data/spec/models/account_check_request_spec.rb +1 -1
  93. data/spec/models/account_spec.rb +1 -1
  94. data/spec/models/agent_manifest_spec.rb +1 -1
  95. data/spec/models/agent_provider_spec.rb +1 -1
  96. data/spec/models/auth_context_spec.rb +1 -1
  97. data/spec/models/avs_result_enum_spec.rb +1 -1
  98. data/spec/models/bank_transfer_spec.rb +1 -1
  99. data/spec/models/card_network_enum_spec.rb +1 -1
  100. data/spec/models/card_spec.rb +1 -1
  101. data/spec/models/category_signal_spec.rb +1 -1
  102. data/spec/models/channel_enum_spec.rb +1 -1
  103. data/spec/models/check_request_spec.rb +1 -1
  104. data/spec/models/confidence_enum_spec.rb +1 -1
  105. data/spec/models/crypto_spec.rb +1 -1
  106. data/spec/models/cvv_result_enum_spec.rb +1 -1
  107. data/spec/models/decision_resolution_request_analyst_spec.rb +46 -0
  108. data/spec/models/decision_resolution_request_spec.rb +78 -0
  109. data/spec/models/decision_resolution_response_spec.rb +48 -0
  110. data/spec/models/decision_response_spec.rb +1 -1
  111. data/spec/models/device_info_spec.rb +1 -1
  112. data/spec/models/discount_code_spec.rb +1 -1
  113. data/spec/models/entity_ids_spec.rb +1 -1
  114. data/spec/models/entry_method_enum_spec.rb +1 -1
  115. data/spec/models/external_assessment_spec.rb +1 -1
  116. data/spec/models/fraud_score_spec.rb +1 -1
  117. data/spec/models/identity_spec.rb +1 -1
  118. data/spec/models/ingest_payment_event202_response_spec.rb +1 -1
  119. data/spec/models/integrity_spec.rb +1 -1
  120. data/spec/models/interaction_spec.rb +1 -1
  121. data/spec/models/interaction_type_enum_spec.rb +1 -1
  122. data/spec/models/invoice_spec.rb +1 -1
  123. data/spec/models/ip_info_spec.rb +1 -1
  124. data/spec/models/kyc_check_request_spec.rb +1 -1
  125. data/spec/models/kyc_payload_spec.rb +1 -1
  126. data/spec/models/merchant_context_spec.rb +1 -1
  127. data/spec/models/order_context_spec.rb +1 -1
  128. data/spec/models/payer_type_enum_spec.rb +1 -1
  129. data/spec/models/payment_authorization_outcome_spec.rb +1 -1
  130. data/spec/models/payment_capture_outcome_spec.rb +1 -1
  131. data/spec/models/payment_card_type_enum_spec.rb +1 -1
  132. data/spec/models/payment_chargeback_outcome_spec.rb +1 -1
  133. data/spec/models/payment_chargeback_spec.rb +1 -1
  134. data/spec/models/payment_dispute_outcome_spec.rb +1 -1
  135. data/spec/models/payment_event_spec.rb +1 -1
  136. data/spec/models/payment_event_type_spec.rb +1 -1
  137. data/spec/models/payment_method_spec.rb +1 -1
  138. data/spec/models/payment_outcome_spec.rb +1 -1
  139. data/spec/models/payment_realtime_type_enum_spec.rb +1 -1
  140. data/spec/models/payment_refund_outcome_spec.rb +1 -1
  141. data/spec/models/payment_wallet_type_enum_spec.rb +1 -1
  142. data/spec/models/postal_address_spec.rb +1 -1
  143. data/spec/models/problem_spec.rb +1 -1
  144. data/spec/models/purchase_initiator_enum_spec.rb +1 -1
  145. data/spec/models/purchase_sequence_enum_spec.rb +1 -1
  146. data/spec/models/purchase_spec.rb +1 -1
  147. data/spec/models/purchase_usage_enum_spec.rb +1 -1
  148. data/spec/models/realtime_spec.rb +1 -1
  149. data/spec/models/reason_detail_spec.rb +1 -1
  150. data/spec/models/risk_breakdown_spec.rb +1 -1
  151. data/spec/models/risk_category_enum_spec.rb +1 -1
  152. data/spec/models/risk_level_enum_spec.rb +1 -1
  153. data/spec/models/sca_method_enum_spec.rb +1 -1
  154. data/spec/models/score_record_spec.rb +1 -1
  155. data/spec/models/scores_success_response_spec.rb +1 -1
  156. data/spec/models/signals_account_variant_spec.rb +1 -1
  157. data/spec/models/signals_interaction_variant_spec.rb +1 -1
  158. data/spec/models/signals_request_spec.rb +1 -1
  159. data/spec/models/stored_credential_context_spec.rb +1 -1
  160. data/spec/models/three_ds_data_spec.rb +1 -1
  161. data/spec/models/wallet_spec.rb +1 -1
  162. data/spec/spec_helper.rb +1 -1
  163. data/vendor/bundle/ruby/3.3.0/cache/psych-5.4.0.gem +0 -0
  164. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-13.0.0/gem_make.out +5 -5
  165. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.5.1/gem_make.out +5 -5
  166. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/io-console-0.8.2/gem_make.out +5 -5
  167. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/jaro_winkler-1.5.6/gem_make.out +5 -5
  168. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/gem_make.out +10 -10
  169. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/psych.so +0 -0
  170. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/gem_make.out +5 -5
  171. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.2.0/gem_make.out +5 -5
  172. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/README.md +2 -2
  173. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_parser.c +14 -3
  174. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/versions.rb +1 -1
  175. data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych.so +0 -0
  176. data/vendor/bundle/ruby/3.3.0/specifications/{psych-5.3.1.gemspec → psych-5.4.0.gemspec} +2 -2
  177. metadata +71 -62
  178. data/vendor/bundle/ruby/3.3.0/cache/psych-5.3.1.gem +0 -0
  179. /data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/gem.build_complete +0 -0
  180. /data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/mkmf.log +0 -0
  181. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/CONTRIBUTING.md +0 -0
  182. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/LICENSE +0 -0
  183. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/Makefile +0 -0
  184. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/depend +0 -0
  185. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/extconf.rb +0 -0
  186. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.c +0 -0
  187. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.h +0 -0
  188. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.c +0 -0
  189. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.h +0 -0
  190. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_parser.h +0 -0
  191. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.c +0 -0
  192. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.h +0 -0
  193. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.c +0 -0
  194. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.h +0 -0
  195. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/class_loader.rb +0 -0
  196. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/coder.rb +0 -0
  197. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/core_ext.rb +0 -0
  198. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/exception.rb +0 -0
  199. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handler.rb +0 -0
  200. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/document_stream.rb +0 -0
  201. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/recorder.rb +0 -0
  202. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/ruby_events.rb +0 -0
  203. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/stream.rb +0 -0
  204. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/tree_builder.rb +0 -0
  205. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/yaml_events.rb +0 -0
  206. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/alias.rb +0 -0
  207. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/document.rb +0 -0
  208. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/mapping.rb +0 -0
  209. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/node.rb +0 -0
  210. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/scalar.rb +0 -0
  211. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/sequence.rb +0 -0
  212. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/stream.rb +0 -0
  213. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes.rb +0 -0
  214. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/omap.rb +0 -0
  215. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/parser.rb +0 -0
  216. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/scalar_scanner.rb +0 -0
  217. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/set.rb +0 -0
  218. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/stream.rb +0 -0
  219. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/streaming.rb +0 -0
  220. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/syntax_error.rb +0 -0
  221. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/tree_builder.rb +0 -0
  222. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/depth_first.rb +0 -0
  223. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/emitter.rb +0 -0
  224. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/json_tree.rb +0 -0
  225. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/to_ruby.rb +0 -0
  226. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/visitor.rb +0 -0
  227. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/yaml_tree.rb +0 -0
  228. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors.rb +0 -0
  229. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/y.rb +0 -0
  230. /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych.rb +0 -0
@@ -0,0 +1,310 @@
1
+ =begin
2
+ #Alogram PayRisk Engine
3
+
4
+ #Alogram PayRisk is an AI-native decision engine built for the speed and complexity of the modern commerce era. In a high-velocity world where AI-driven threats evolve in milliseconds, Alogram provides the real-time adaptability and forensic transparency needed to protect your ecosystem with total confidence. We solve the challenge of balancing frictionless growth with regulatory explainability, delivering instant, intelligent risk orchestration at enterprise scale. --- ## Licensing & Terms Our client libraries and API specifications are open-source under the **Apache License 2.0** to ensure seamless integration into your tech stack. Use of the Alogram PayRisk API service is proprietary and governed by our [Terms of Service](https://alogram.ai/#tos) and your specific **Enterprise Agreement**, if applicable. To access the service, you must have: * A valid Alogram API Key. * An active subscription or signed Master Service Agreement. Unauthorized use, including automated scraping or reverse engineering of the scoring engine, is strictly prohibited. --- ## Support & Traceability Every Alogram API response includes a unique **`x-trace-id`** header. Please include this ID when contacting [packages@alogram.ai](mailto:packages@alogram.ai) regarding specific transactions or errors. --- ## Specification The authoritative OpenAPI specification for this version is available for download: **[Download openapi.yaml](https://developers.alogram.ai/openapi.yaml)** | **[Download openapi.json](https://developers.alogram.ai/openapi.json)**
5
+
6
+ The version of the OpenAPI document: 0.2.23
7
+ Contact: packages@alogram.ai
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.15.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module AlogramPayRisk
17
+ class DecisionResolutionRequest < ApiModelBase
18
+ # The business entity type being resolved.
19
+ attr_accessor :target_type
20
+
21
+ # The unique identifier of the target entity under review (e.g. pi_*).
22
+ attr_accessor :target_id
23
+
24
+ # The resolution action to apply to the target.
25
+ attr_accessor :decision
26
+
27
+ attr_accessor :analyst
28
+
29
+ # The ML-feedback ground-truth reason classification.
30
+ attr_accessor :resolution_reason
31
+
32
+ # Additional operational notes or reasoning for this resolution.
33
+ attr_accessor :notes
34
+
35
+ class EnumAttributeValidator
36
+ attr_reader :datatype
37
+ attr_reader :allowable_values
38
+
39
+ def initialize(datatype, allowable_values)
40
+ @allowable_values = allowable_values.map do |value|
41
+ case datatype.to_s
42
+ when /Integer/i
43
+ value.to_i
44
+ when /Float/i
45
+ value.to_f
46
+ else
47
+ value
48
+ end
49
+ end
50
+ end
51
+
52
+ def valid?(value)
53
+ !value || allowable_values.include?(value)
54
+ end
55
+ end
56
+
57
+ # Attribute mapping from ruby-style variable name to JSON key.
58
+ def self.attribute_map
59
+ {
60
+ :'target_type' => :'targetType',
61
+ :'target_id' => :'targetId',
62
+ :'decision' => :'decision',
63
+ :'analyst' => :'analyst',
64
+ :'resolution_reason' => :'resolutionReason',
65
+ :'notes' => :'notes'
66
+ }
67
+ end
68
+
69
+ # Returns attribute mapping this model knows about
70
+ def self.acceptable_attribute_map
71
+ attribute_map
72
+ end
73
+
74
+ # Returns all the JSON keys this model knows about
75
+ def self.acceptable_attributes
76
+ acceptable_attribute_map.values
77
+ end
78
+
79
+ # Attribute type mapping.
80
+ def self.openapi_types
81
+ {
82
+ :'target_type' => :'String',
83
+ :'target_id' => :'String',
84
+ :'decision' => :'String',
85
+ :'analyst' => :'DecisionResolutionRequestAnalyst',
86
+ :'resolution_reason' => :'String',
87
+ :'notes' => :'String'
88
+ }
89
+ end
90
+
91
+ # List of attributes with nullable: true
92
+ def self.openapi_nullable
93
+ Set.new([
94
+ ])
95
+ end
96
+
97
+ # Initializes the object
98
+ # @param [Hash] attributes Model attributes in the form of hash
99
+ def initialize(attributes = {})
100
+ if (!attributes.is_a?(Hash))
101
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AlogramPayRisk::DecisionResolutionRequest` initialize method"
102
+ end
103
+
104
+ # check to see if the attribute exists and convert string to symbol for hash key
105
+ acceptable_attribute_map = self.class.acceptable_attribute_map
106
+ attributes = attributes.each_with_object({}) { |(k, v), h|
107
+ if (!acceptable_attribute_map.key?(k.to_sym))
108
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AlogramPayRisk::DecisionResolutionRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
109
+ end
110
+ h[k.to_sym] = v
111
+ }
112
+
113
+ if attributes.key?(:'target_type')
114
+ self.target_type = attributes[:'target_type']
115
+ else
116
+ self.target_type = nil
117
+ end
118
+
119
+ if attributes.key?(:'target_id')
120
+ self.target_id = attributes[:'target_id']
121
+ else
122
+ self.target_id = nil
123
+ end
124
+
125
+ if attributes.key?(:'decision')
126
+ self.decision = attributes[:'decision']
127
+ else
128
+ self.decision = nil
129
+ end
130
+
131
+ if attributes.key?(:'analyst')
132
+ self.analyst = attributes[:'analyst']
133
+ else
134
+ self.analyst = nil
135
+ end
136
+
137
+ if attributes.key?(:'resolution_reason')
138
+ self.resolution_reason = attributes[:'resolution_reason']
139
+ else
140
+ self.resolution_reason = nil
141
+ end
142
+
143
+ if attributes.key?(:'notes')
144
+ self.notes = attributes[:'notes']
145
+ end
146
+ end
147
+
148
+ # Show invalid properties with the reasons. Usually used together with valid?
149
+ # @return Array for valid properties with the reasons
150
+ def list_invalid_properties
151
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
152
+ invalid_properties = Array.new
153
+ if @target_type.nil?
154
+ invalid_properties.push('invalid value for "target_type", target_type cannot be nil.')
155
+ end
156
+
157
+ if @target_id.nil?
158
+ invalid_properties.push('invalid value for "target_id", target_id cannot be nil.')
159
+ end
160
+
161
+ if @decision.nil?
162
+ invalid_properties.push('invalid value for "decision", decision cannot be nil.')
163
+ end
164
+
165
+ if @analyst.nil?
166
+ invalid_properties.push('invalid value for "analyst", analyst cannot be nil.')
167
+ end
168
+
169
+ if @resolution_reason.nil?
170
+ invalid_properties.push('invalid value for "resolution_reason", resolution_reason cannot be nil.')
171
+ end
172
+
173
+ invalid_properties
174
+ end
175
+
176
+ # Check to see if the all the properties in the model are valid
177
+ # @return true if the model is valid
178
+ def valid?
179
+ warn '[DEPRECATED] the `valid?` method is obsolete'
180
+ return false if @target_type.nil?
181
+ target_type_validator = EnumAttributeValidator.new('String', ["payment_intent", "account_event", "agent_delegation"])
182
+ return false unless target_type_validator.valid?(@target_type)
183
+ return false if @target_id.nil?
184
+ return false if @decision.nil?
185
+ decision_validator = EnumAttributeValidator.new('String', ["approve", "block", "challenge", "escalate"])
186
+ return false unless decision_validator.valid?(@decision)
187
+ return false if @analyst.nil?
188
+ return false if @resolution_reason.nil?
189
+ resolution_reason_validator = EnumAttributeValidator.new('String', ["legit_human", "legit_agent_authorized", "unauthorized_agent", "card_testing", "account_takeover", "friendly_fraud"])
190
+ return false unless resolution_reason_validator.valid?(@resolution_reason)
191
+ true
192
+ end
193
+
194
+ # Custom attribute writer method checking allowed values (enum).
195
+ # @param [Object] target_type Object to be assigned
196
+ def target_type=(target_type)
197
+ validator = EnumAttributeValidator.new('String', ["payment_intent", "account_event", "agent_delegation"])
198
+ unless validator.valid?(target_type)
199
+ fail ArgumentError, "invalid value for \"target_type\", must be one of #{validator.allowable_values}."
200
+ end
201
+ @target_type = target_type
202
+ end
203
+
204
+ # Custom attribute writer method with validation
205
+ # @param [Object] target_id Value to be assigned
206
+ def target_id=(target_id)
207
+ if target_id.nil?
208
+ fail ArgumentError, 'target_id cannot be nil'
209
+ end
210
+
211
+ @target_id = target_id
212
+ end
213
+
214
+ # Custom attribute writer method checking allowed values (enum).
215
+ # @param [Object] decision Object to be assigned
216
+ def decision=(decision)
217
+ validator = EnumAttributeValidator.new('String', ["approve", "block", "challenge", "escalate"])
218
+ unless validator.valid?(decision)
219
+ fail ArgumentError, "invalid value for \"decision\", must be one of #{validator.allowable_values}."
220
+ end
221
+ @decision = decision
222
+ end
223
+
224
+ # Custom attribute writer method with validation
225
+ # @param [Object] analyst Value to be assigned
226
+ def analyst=(analyst)
227
+ if analyst.nil?
228
+ fail ArgumentError, 'analyst cannot be nil'
229
+ end
230
+
231
+ @analyst = analyst
232
+ end
233
+
234
+ # Custom attribute writer method checking allowed values (enum).
235
+ # @param [Object] resolution_reason Object to be assigned
236
+ def resolution_reason=(resolution_reason)
237
+ validator = EnumAttributeValidator.new('String', ["legit_human", "legit_agent_authorized", "unauthorized_agent", "card_testing", "account_takeover", "friendly_fraud"])
238
+ unless validator.valid?(resolution_reason)
239
+ fail ArgumentError, "invalid value for \"resolution_reason\", must be one of #{validator.allowable_values}."
240
+ end
241
+ @resolution_reason = resolution_reason
242
+ end
243
+
244
+ # Checks equality by comparing each attribute.
245
+ # @param [Object] Object to be compared
246
+ def ==(o)
247
+ return true if self.equal?(o)
248
+ self.class == o.class &&
249
+ target_type == o.target_type &&
250
+ target_id == o.target_id &&
251
+ decision == o.decision &&
252
+ analyst == o.analyst &&
253
+ resolution_reason == o.resolution_reason &&
254
+ notes == o.notes
255
+ end
256
+
257
+ # @see the `==` method
258
+ # @param [Object] Object to be compared
259
+ def eql?(o)
260
+ self == o
261
+ end
262
+
263
+ # Calculates hash code according to all attributes.
264
+ # @return [Integer] Hash code
265
+ def hash
266
+ [target_type, target_id, decision, analyst, resolution_reason, notes].hash
267
+ end
268
+
269
+ # Builds the object from hash
270
+ # @param [Hash] attributes Model attributes in the form of hash
271
+ # @return [Object] Returns the model itself
272
+ def self.build_from_hash(attributes)
273
+ return nil unless attributes.is_a?(Hash)
274
+ attributes = attributes.transform_keys(&:to_sym)
275
+ transformed_hash = {}
276
+ openapi_types.each_pair do |key, type|
277
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
278
+ transformed_hash["#{key}"] = nil
279
+ elsif type =~ /\AArray<(.*)>/i
280
+ # check to ensure the input is an array given that the attribute
281
+ # is documented as an array but the input is not
282
+ if attributes[attribute_map[key]].is_a?(Array)
283
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
284
+ end
285
+ elsif !attributes[attribute_map[key]].nil?
286
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
287
+ end
288
+ end
289
+ new(transformed_hash)
290
+ end
291
+
292
+ # Returns the object in the form of hash
293
+ # @return [Hash] Returns the object in the form of hash
294
+ def to_hash
295
+ hash = {}
296
+ self.class.attribute_map.each_pair do |attr, param|
297
+ value = self.send(attr)
298
+ if value.nil?
299
+ is_nullable = self.class.openapi_nullable.include?(attr)
300
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
301
+ end
302
+
303
+ hash[param] = _to_hash(value)
304
+ end
305
+ hash
306
+ end
307
+
308
+ end
309
+
310
+ end
@@ -0,0 +1,216 @@
1
+ =begin
2
+ #Alogram PayRisk Engine
3
+
4
+ #Alogram PayRisk is an AI-native decision engine built for the speed and complexity of the modern commerce era. In a high-velocity world where AI-driven threats evolve in milliseconds, Alogram provides the real-time adaptability and forensic transparency needed to protect your ecosystem with total confidence. We solve the challenge of balancing frictionless growth with regulatory explainability, delivering instant, intelligent risk orchestration at enterprise scale. --- ## Licensing & Terms Our client libraries and API specifications are open-source under the **Apache License 2.0** to ensure seamless integration into your tech stack. Use of the Alogram PayRisk API service is proprietary and governed by our [Terms of Service](https://alogram.ai/#tos) and your specific **Enterprise Agreement**, if applicable. To access the service, you must have: * A valid Alogram API Key. * An active subscription or signed Master Service Agreement. Unauthorized use, including automated scraping or reverse engineering of the scoring engine, is strictly prohibited. --- ## Support & Traceability Every Alogram API response includes a unique **`x-trace-id`** header. Please include this ID when contacting [packages@alogram.ai](mailto:packages@alogram.ai) regarding specific transactions or errors. --- ## Specification The authoritative OpenAPI specification for this version is available for download: **[Download openapi.yaml](https://developers.alogram.ai/openapi.yaml)** | **[Download openapi.json](https://developers.alogram.ai/openapi.json)**
5
+
6
+ The version of the OpenAPI document: 0.2.23
7
+ Contact: packages@alogram.ai
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.15.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module AlogramPayRisk
17
+ class DecisionResolutionRequestAnalyst < ApiModelBase
18
+ # The unique ID of the operator, SRE, or autonomous agent.
19
+ attr_accessor :id
20
+
21
+ # The system role of the decision maker.
22
+ attr_accessor :type
23
+
24
+ class EnumAttributeValidator
25
+ attr_reader :datatype
26
+ attr_reader :allowable_values
27
+
28
+ def initialize(datatype, allowable_values)
29
+ @allowable_values = allowable_values.map do |value|
30
+ case datatype.to_s
31
+ when /Integer/i
32
+ value.to_i
33
+ when /Float/i
34
+ value.to_f
35
+ else
36
+ value
37
+ end
38
+ end
39
+ end
40
+
41
+ def valid?(value)
42
+ !value || allowable_values.include?(value)
43
+ end
44
+ end
45
+
46
+ # Attribute mapping from ruby-style variable name to JSON key.
47
+ def self.attribute_map
48
+ {
49
+ :'id' => :'id',
50
+ :'type' => :'type'
51
+ }
52
+ end
53
+
54
+ # Returns attribute mapping this model knows about
55
+ def self.acceptable_attribute_map
56
+ attribute_map
57
+ end
58
+
59
+ # Returns all the JSON keys this model knows about
60
+ def self.acceptable_attributes
61
+ acceptable_attribute_map.values
62
+ end
63
+
64
+ # Attribute type mapping.
65
+ def self.openapi_types
66
+ {
67
+ :'id' => :'String',
68
+ :'type' => :'String'
69
+ }
70
+ end
71
+
72
+ # List of attributes with nullable: true
73
+ def self.openapi_nullable
74
+ Set.new([
75
+ ])
76
+ end
77
+
78
+ # Initializes the object
79
+ # @param [Hash] attributes Model attributes in the form of hash
80
+ def initialize(attributes = {})
81
+ if (!attributes.is_a?(Hash))
82
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AlogramPayRisk::DecisionResolutionRequestAnalyst` initialize method"
83
+ end
84
+
85
+ # check to see if the attribute exists and convert string to symbol for hash key
86
+ acceptable_attribute_map = self.class.acceptable_attribute_map
87
+ attributes = attributes.each_with_object({}) { |(k, v), h|
88
+ if (!acceptable_attribute_map.key?(k.to_sym))
89
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AlogramPayRisk::DecisionResolutionRequestAnalyst`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
90
+ end
91
+ h[k.to_sym] = v
92
+ }
93
+
94
+ if attributes.key?(:'id')
95
+ self.id = attributes[:'id']
96
+ else
97
+ self.id = nil
98
+ end
99
+
100
+ if attributes.key?(:'type')
101
+ self.type = attributes[:'type']
102
+ else
103
+ self.type = nil
104
+ end
105
+ end
106
+
107
+ # Show invalid properties with the reasons. Usually used together with valid?
108
+ # @return Array for valid properties with the reasons
109
+ def list_invalid_properties
110
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
111
+ invalid_properties = Array.new
112
+ if @id.nil?
113
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
114
+ end
115
+
116
+ if @type.nil?
117
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
118
+ end
119
+
120
+ invalid_properties
121
+ end
122
+
123
+ # Check to see if the all the properties in the model are valid
124
+ # @return true if the model is valid
125
+ def valid?
126
+ warn '[DEPRECATED] the `valid?` method is obsolete'
127
+ return false if @id.nil?
128
+ return false if @type.nil?
129
+ type_validator = EnumAttributeValidator.new('String', ["human_merchant", "automated_consensus", "autonomous_agent"])
130
+ return false unless type_validator.valid?(@type)
131
+ true
132
+ end
133
+
134
+ # Custom attribute writer method with validation
135
+ # @param [Object] id Value to be assigned
136
+ def id=(id)
137
+ if id.nil?
138
+ fail ArgumentError, 'id cannot be nil'
139
+ end
140
+
141
+ @id = id
142
+ end
143
+
144
+ # Custom attribute writer method checking allowed values (enum).
145
+ # @param [Object] type Object to be assigned
146
+ def type=(type)
147
+ validator = EnumAttributeValidator.new('String', ["human_merchant", "automated_consensus", "autonomous_agent"])
148
+ unless validator.valid?(type)
149
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
150
+ end
151
+ @type = type
152
+ end
153
+
154
+ # Checks equality by comparing each attribute.
155
+ # @param [Object] Object to be compared
156
+ def ==(o)
157
+ return true if self.equal?(o)
158
+ self.class == o.class &&
159
+ id == o.id &&
160
+ type == o.type
161
+ end
162
+
163
+ # @see the `==` method
164
+ # @param [Object] Object to be compared
165
+ def eql?(o)
166
+ self == o
167
+ end
168
+
169
+ # Calculates hash code according to all attributes.
170
+ # @return [Integer] Hash code
171
+ def hash
172
+ [id, type].hash
173
+ end
174
+
175
+ # Builds the object from hash
176
+ # @param [Hash] attributes Model attributes in the form of hash
177
+ # @return [Object] Returns the model itself
178
+ def self.build_from_hash(attributes)
179
+ return nil unless attributes.is_a?(Hash)
180
+ attributes = attributes.transform_keys(&:to_sym)
181
+ transformed_hash = {}
182
+ openapi_types.each_pair do |key, type|
183
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
184
+ transformed_hash["#{key}"] = nil
185
+ elsif type =~ /\AArray<(.*)>/i
186
+ # check to ensure the input is an array given that the attribute
187
+ # is documented as an array but the input is not
188
+ if attributes[attribute_map[key]].is_a?(Array)
189
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
190
+ end
191
+ elsif !attributes[attribute_map[key]].nil?
192
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
193
+ end
194
+ end
195
+ new(transformed_hash)
196
+ end
197
+
198
+ # Returns the object in the form of hash
199
+ # @return [Hash] Returns the object in the form of hash
200
+ def to_hash
201
+ hash = {}
202
+ self.class.attribute_map.each_pair do |attr, param|
203
+ value = self.send(attr)
204
+ if value.nil?
205
+ is_nullable = self.class.openapi_nullable.include?(attr)
206
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
207
+ end
208
+
209
+ hash[param] = _to_hash(value)
210
+ end
211
+ hash
212
+ end
213
+
214
+ end
215
+
216
+ end