sc-apimatic-sdk 0.0.1

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 (122) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +166 -0
  4. data/bin/console +15 -0
  5. data/lib/socure_risk_os_api/api_helper.rb +10 -0
  6. data/lib/socure_risk_os_api/apis/base_api.rb +67 -0
  7. data/lib/socure_risk_os_api/apis/evaluation_api.rb +318 -0
  8. data/lib/socure_risk_os_api/apis/feedback_api.rb +102 -0
  9. data/lib/socure_risk_os_api/apis/reason_codes_api.rb +61 -0
  10. data/lib/socure_risk_os_api/client.rb +85 -0
  11. data/lib/socure_risk_os_api/configuration.rb +179 -0
  12. data/lib/socure_risk_os_api/exceptions/api_exception.rb +21 -0
  13. data/lib/socure_risk_os_api/exceptions/error_exception.rb +80 -0
  14. data/lib/socure_risk_os_api/http/api_response.rb +19 -0
  15. data/lib/socure_risk_os_api/http/auth/oauth_2.rb +53 -0
  16. data/lib/socure_risk_os_api/http/http_call_back.rb +10 -0
  17. data/lib/socure_risk_os_api/http/http_method_enum.rb +10 -0
  18. data/lib/socure_risk_os_api/http/http_request.rb +10 -0
  19. data/lib/socure_risk_os_api/http/http_response.rb +10 -0
  20. data/lib/socure_risk_os_api/http/proxy_settings.rb +22 -0
  21. data/lib/socure_risk_os_api/logging/configuration/api_logging_configuration.rb +186 -0
  22. data/lib/socure_risk_os_api/logging/sdk_logger.rb +17 -0
  23. data/lib/socure_risk_os_api/models/account.rb +206 -0
  24. data/lib/socure_risk_os_api/models/account1.rb +203 -0
  25. data/lib/socure_risk_os_api/models/account_inquiry.rb +36 -0
  26. data/lib/socure_risk_os_api/models/account_snapshot.rb +106 -0
  27. data/lib/socure_risk_os_api/models/account_view.rb +116 -0
  28. data/lib/socure_risk_os_api/models/actions.rb +88 -0
  29. data/lib/socure_risk_os_api/models/additional_context.rb +235 -0
  30. data/lib/socure_risk_os_api/models/additional_individual.rb +270 -0
  31. data/lib/socure_risk_os_api/models/address.rb +159 -0
  32. data/lib/socure_risk_os_api/models/address1.rb +144 -0
  33. data/lib/socure_risk_os_api/models/advanced_prefill.rb +168 -0
  34. data/lib/socure_risk_os_api/models/age_assurance.rb +163 -0
  35. data/lib/socure_risk_os_api/models/amount.rb +95 -0
  36. data/lib/socure_risk_os_api/models/api_evaluation_monitoring_request.rb +96 -0
  37. data/lib/socure_risk_os_api/models/api_evaluation_monitoring_response.rb +84 -0
  38. data/lib/socure_risk_os_api/models/api_feedback_request.rb +153 -0
  39. data/lib/socure_risk_os_api/models/api_reason_codes_response.rb +85 -0
  40. data/lib/socure_risk_os_api/models/attachment.rb +95 -0
  41. data/lib/socure_risk_os_api/models/bank_account_verification.rb +167 -0
  42. data/lib/socure_risk_os_api/models/base_model.rb +110 -0
  43. data/lib/socure_risk_os_api/models/business.rb +224 -0
  44. data/lib/socure_risk_os_api/models/business_onboarding.rb +167 -0
  45. data/lib/socure_risk_os_api/models/channel.rb +45 -0
  46. data/lib/socure_risk_os_api/models/channel1.rb +44 -0
  47. data/lib/socure_risk_os_api/models/code.rb +68 -0
  48. data/lib/socure_risk_os_api/models/consumer_onboarding.rb +167 -0
  49. data/lib/socure_risk_os_api/models/consumer_onboarding_patch.rb +178 -0
  50. data/lib/socure_risk_os_api/models/crypto_address.rb +105 -0
  51. data/lib/socure_risk_os_api/models/data.rb +106 -0
  52. data/lib/socure_risk_os_api/models/data1.rb +166 -0
  53. data/lib/socure_risk_os_api/models/data10.rb +166 -0
  54. data/lib/socure_risk_os_api/models/data2.rb +145 -0
  55. data/lib/socure_risk_os_api/models/data3.rb +160 -0
  56. data/lib/socure_risk_os_api/models/data4.rb +157 -0
  57. data/lib/socure_risk_os_api/models/data5.rb +154 -0
  58. data/lib/socure_risk_os_api/models/data6.rb +174 -0
  59. data/lib/socure_risk_os_api/models/data7.rb +205 -0
  60. data/lib/socure_risk_os_api/models/data8.rb +115 -0
  61. data/lib/socure_risk_os_api/models/data9.rb +130 -0
  62. data/lib/socure_risk_os_api/models/data_enrichment.rb +182 -0
  63. data/lib/socure_risk_os_api/models/decision.rb +47 -0
  64. data/lib/socure_risk_os_api/models/decision1.rb +48 -0
  65. data/lib/socure_risk_os_api/models/destination.rb +136 -0
  66. data/lib/socure_risk_os_api/models/device.rb +339 -0
  67. data/lib/socure_risk_os_api/models/disclosure_purpose.rb +29 -0
  68. data/lib/socure_risk_os_api/models/document_verification_config.rb +195 -0
  69. data/lib/socure_risk_os_api/models/docv.rb +98 -0
  70. data/lib/socure_risk_os_api/models/environment_name.rb +37 -0
  71. data/lib/socure_risk_os_api/models/eval_response_with_out_socure_data.rb +413 -0
  72. data/lib/socure_risk_os_api/models/eval_source.rb +38 -0
  73. data/lib/socure_risk_os_api/models/event_category.rb +45 -0
  74. data/lib/socure_risk_os_api/models/event_category1.rb +45 -0
  75. data/lib/socure_risk_os_api/models/event_category2.rb +57 -0
  76. data/lib/socure_risk_os_api/models/event_details.rb +96 -0
  77. data/lib/socure_risk_os_api/models/formation.rb +138 -0
  78. data/lib/socure_risk_os_api/models/fraud_feedback_import_response.rb +73 -0
  79. data/lib/socure_risk_os_api/models/fraud_feedback_response.rb +73 -0
  80. data/lib/socure_risk_os_api/models/fraud_label.rb +37 -0
  81. data/lib/socure_risk_os_api/models/gender.rb +40 -0
  82. data/lib/socure_risk_os_api/models/generic_passthrough.rb +169 -0
  83. data/lib/socure_risk_os_api/models/individual.rb +281 -0
  84. data/lib/socure_risk_os_api/models/individual1.rb +292 -0
  85. data/lib/socure_risk_os_api/models/individual3.rb +206 -0
  86. data/lib/socure_risk_os_api/models/individual4.rb +182 -0
  87. data/lib/socure_risk_os_api/models/individual5.rb +297 -0
  88. data/lib/socure_risk_os_api/models/individual6.rb +148 -0
  89. data/lib/socure_risk_os_api/models/input.rb +86 -0
  90. data/lib/socure_risk_os_api/models/inquiry.rb +36 -0
  91. data/lib/socure_risk_os_api/models/invalid_arg.rb +85 -0
  92. data/lib/socure_risk_os_api/models/language.rb +247 -0
  93. data/lib/socure_risk_os_api/models/login_and_authentication.rb +167 -0
  94. data/lib/socure_risk_os_api/models/method.rb +37 -0
  95. data/lib/socure_risk_os_api/models/monitoring_status.rb +37 -0
  96. data/lib/socure_risk_os_api/models/operation.rb +38 -0
  97. data/lib/socure_risk_os_api/models/otp.rb +95 -0
  98. data/lib/socure_risk_os_api/models/otp1.rb +98 -0
  99. data/lib/socure_risk_os_api/models/payment_screening.rb +167 -0
  100. data/lib/socure_risk_os_api/models/payment_screening_business.rb +155 -0
  101. data/lib/socure_risk_os_api/models/payment_screening_individual.rb +254 -0
  102. data/lib/socure_risk_os_api/models/payment_screening_instrument.rb +105 -0
  103. data/lib/socure_risk_os_api/models/product.rb +76 -0
  104. data/lib/socure_risk_os_api/models/reason_code.rb +149 -0
  105. data/lib/socure_risk_os_api/models/redirect.rb +118 -0
  106. data/lib/socure_risk_os_api/models/response.rb +77 -0
  107. data/lib/socure_risk_os_api/models/source.rb +146 -0
  108. data/lib/socure_risk_os_api/models/status.rb +40 -0
  109. data/lib/socure_risk_os_api/models/status1.rb +40 -0
  110. data/lib/socure_risk_os_api/models/transaction_details.rb +97 -0
  111. data/lib/socure_risk_os_api/models/trust_and_safety.rb +167 -0
  112. data/lib/socure_risk_os_api/models/type.rb +36 -0
  113. data/lib/socure_risk_os_api/models/type1.rb +36 -0
  114. data/lib/socure_risk_os_api/models/type2.rb +36 -0
  115. data/lib/socure_risk_os_api/models/update_decision.rb +156 -0
  116. data/lib/socure_risk_os_api/models/update_status.rb +169 -0
  117. data/lib/socure_risk_os_api/models/workforce_verification.rb +167 -0
  118. data/lib/socure_risk_os_api/utilities/date_time_helper.rb +11 -0
  119. data/lib/socure_risk_os_api/utilities/file_wrapper.rb +28 -0
  120. data/lib/socure_risk_os_api/utilities/union_type_lookup.rb +69 -0
  121. data/lib/socure_risk_os_api.rb +143 -0
  122. metadata +205 -0
@@ -0,0 +1,157 @@
1
+ # socure_risk_os_api
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ module SocureRiskOsApi
7
+ # The main payload for the Trust and Safety workflow.
8
+ class Data4 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Specifies the specific event type being tracked for a user, such as
13
+ # `identity_verification`, `document_submission`, or `badge_request`.
14
+ # @return [String]
15
+ attr_accessor :event_type
16
+
17
+ # Represents the category of the event occurring on a user profile or
18
+ # account within the context of Trust and Safety verification processes.
19
+ # @return [EventCategory]
20
+ attr_accessor :event_category
21
+
22
+ # Represents core information about the primary individual consumer.
23
+ # @return [Individual]
24
+ attr_accessor :individual
25
+
26
+ # The consumer's IP address in IPv4 decimal or IPv6 hexadecimal format.
27
+ # @return [String]
28
+ attr_accessor :ip_address
29
+
30
+ # Use this field to provide external device data, e.g. originating from a
31
+ # third party data intelligence provider.
32
+ # @return [Device]
33
+ attr_accessor :external_device
34
+
35
+ # Include any additional customer-specific data relevant to the Trust and
36
+ # Safety evaluation in this field. See [Custom
37
+ # Fields](https://help.socure.com/riskos/docs/custom-fields) for more
38
+ # information.
39
+ # @return [Object]
40
+ attr_accessor :custom
41
+
42
+ # Specifies the mode of interaction on the consumer's end. <br /><br />
43
+ # Available values include: `web`, `mobile`, `pos`, and `other`.
44
+ # @return [Channel]
45
+ attr_accessor :channel
46
+
47
+ # A mapping from model property names to API property names.
48
+ def self.names
49
+ @_hash = {} if @_hash.nil?
50
+ @_hash['event_type'] = 'event_type'
51
+ @_hash['event_category'] = 'event_category'
52
+ @_hash['individual'] = 'individual'
53
+ @_hash['ip_address'] = 'ip_address'
54
+ @_hash['external_device'] = 'external_device'
55
+ @_hash['custom'] = 'custom'
56
+ @_hash['channel'] = 'channel'
57
+ @_hash
58
+ end
59
+
60
+ # An array for optional fields
61
+ def self.optionals
62
+ %w[
63
+ event_category
64
+ individual
65
+ ip_address
66
+ external_device
67
+ custom
68
+ channel
69
+ ]
70
+ end
71
+
72
+ # An array for nullable fields
73
+ def self.nullables
74
+ []
75
+ end
76
+
77
+ def initialize(event_type:, event_category: SKIP, individual: SKIP,
78
+ ip_address: SKIP, external_device: SKIP, custom: SKIP,
79
+ channel: SKIP, additional_properties: nil)
80
+ # Add additional model properties to the instance
81
+ additional_properties = {} if additional_properties.nil?
82
+
83
+ @event_type = event_type
84
+ @event_category = event_category unless event_category == SKIP
85
+ @individual = individual unless individual == SKIP
86
+ @ip_address = ip_address unless ip_address == SKIP
87
+ @external_device = external_device unless external_device == SKIP
88
+ @custom = custom unless custom == SKIP
89
+ @channel = channel unless channel == SKIP
90
+ @additional_properties = additional_properties
91
+ end
92
+
93
+ # Creates an instance of the object from a hash.
94
+ def self.from_hash(hash)
95
+ return nil unless hash
96
+
97
+ # Extract variables from the hash.
98
+ event_type = hash.key?('event_type') ? hash['event_type'] : nil
99
+ event_category =
100
+ hash.key?('event_category') ? hash['event_category'] : SKIP
101
+ individual = Individual.from_hash(hash['individual']) if hash['individual']
102
+ ip_address = hash.key?('ip_address') ? hash['ip_address'] : SKIP
103
+ external_device = Device.from_hash(hash['external_device']) if hash['external_device']
104
+ custom = hash.key?('custom') ? hash['custom'] : SKIP
105
+ channel = hash.key?('channel') ? hash['channel'] : SKIP
106
+
107
+ # Create a new hash for additional properties, removing known properties.
108
+ new_hash = hash.reject { |k, _| names.value?(k) }
109
+
110
+ additional_properties = APIHelper.get_additional_properties(
111
+ new_hash, proc { |value| value }
112
+ )
113
+
114
+ # Create object from extracted values.
115
+ Data4.new(event_type: event_type,
116
+ event_category: event_category,
117
+ individual: individual,
118
+ ip_address: ip_address,
119
+ external_device: external_device,
120
+ custom: custom,
121
+ channel: channel,
122
+ additional_properties: additional_properties)
123
+ end
124
+
125
+ # Validates an instance of the object from a given value.
126
+ # @param [Data4 | Hash] The value against the validation is performed.
127
+ def self.validate(value)
128
+ if value.instance_of? self
129
+ return APIHelper.valid_type?(value.event_type,
130
+ ->(val) { val.instance_of? String })
131
+ end
132
+
133
+ return false unless value.instance_of? Hash
134
+
135
+ APIHelper.valid_type?(value['event_type'],
136
+ ->(val) { val.instance_of? String })
137
+ end
138
+
139
+ # Provides a human-readable string representation of the object.
140
+ def to_s
141
+ class_name = self.class.name.split('::').last
142
+ "<#{class_name} event_type: #{@event_type}, event_category: #{@event_category}, individual:"\
143
+ " #{@individual}, ip_address: #{@ip_address}, external_device: #{@external_device}, custom:"\
144
+ " #{@custom}, channel: #{@channel}, additional_properties: #{@additional_properties}>"
145
+ end
146
+
147
+ # Provides a debugging-friendly string with detailed object information.
148
+ def inspect
149
+ class_name = self.class.name.split('::').last
150
+ "<#{class_name} event_type: #{@event_type.inspect}, event_category:"\
151
+ " #{@event_category.inspect}, individual: #{@individual.inspect}, ip_address:"\
152
+ " #{@ip_address.inspect}, external_device: #{@external_device.inspect}, custom:"\
153
+ " #{@custom.inspect}, channel: #{@channel.inspect}, additional_properties:"\
154
+ " #{@additional_properties}>"
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,154 @@
1
+ # socure_risk_os_api
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ module SocureRiskOsApi
7
+ # The main payload for the Bank Account Verification workflow.
8
+ class Data5 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Represents core information about the primary individual consumer.
13
+ # @return [Individual]
14
+ attr_accessor :individual
15
+
16
+ # The consumer's IP address in IPv4 decimal or IPv6 hexadecimal format.
17
+ # @return [String]
18
+ attr_accessor :ip_address
19
+
20
+ # Use this field to provide external device data, e.g. originating from a
21
+ # third party data intelligence provider.
22
+ # @return [Device]
23
+ attr_accessor :external_device
24
+
25
+ # Represents the category of the event occurring on a user profile or
26
+ # account within the context of Bank Account Verification processes.
27
+ # @return [EventCategory1]
28
+ attr_accessor :event_category
29
+
30
+ # Specifies the specific event type being tracked for a user, such as
31
+ # `account_verification`.
32
+ # @return [String]
33
+ attr_accessor :event_type
34
+
35
+ # Include any additional customer-specific data relevant to the Bank Account
36
+ # Verification in this field. See [Custom
37
+ # Fields](https://help.socure.com/riskos/docs/custom-fields) for more
38
+ # information.
39
+ # @return [Object]
40
+ attr_accessor :custom
41
+
42
+ # Specifies the mode of interaction on the consumer's end. <br /><br />
43
+ # Available values include: `web`, `mobile`, `pos`, and `other`.
44
+ # @return [Channel]
45
+ attr_accessor :channel
46
+
47
+ # A mapping from model property names to API property names.
48
+ def self.names
49
+ @_hash = {} if @_hash.nil?
50
+ @_hash['individual'] = 'individual'
51
+ @_hash['ip_address'] = 'ip_address'
52
+ @_hash['external_device'] = 'external_device'
53
+ @_hash['event_category'] = 'event_category'
54
+ @_hash['event_type'] = 'event_type'
55
+ @_hash['custom'] = 'custom'
56
+ @_hash['channel'] = 'channel'
57
+ @_hash
58
+ end
59
+
60
+ # An array for optional fields
61
+ def self.optionals
62
+ %w[
63
+ individual
64
+ ip_address
65
+ external_device
66
+ event_category
67
+ event_type
68
+ custom
69
+ channel
70
+ ]
71
+ end
72
+
73
+ # An array for nullable fields
74
+ def self.nullables
75
+ []
76
+ end
77
+
78
+ def initialize(individual: SKIP, ip_address: SKIP, external_device: SKIP,
79
+ event_category: SKIP, event_type: SKIP, custom: SKIP,
80
+ channel: SKIP, additional_properties: nil)
81
+ # Add additional model properties to the instance
82
+ additional_properties = {} if additional_properties.nil?
83
+
84
+ @individual = individual unless individual == SKIP
85
+ @ip_address = ip_address unless ip_address == SKIP
86
+ @external_device = external_device unless external_device == SKIP
87
+ @event_category = event_category unless event_category == SKIP
88
+ @event_type = event_type unless event_type == SKIP
89
+ @custom = custom unless custom == SKIP
90
+ @channel = channel unless channel == SKIP
91
+ @additional_properties = additional_properties
92
+ end
93
+
94
+ # Creates an instance of the object from a hash.
95
+ def self.from_hash(hash)
96
+ return nil unless hash
97
+
98
+ # Extract variables from the hash.
99
+ individual = Individual.from_hash(hash['individual']) if hash['individual']
100
+ ip_address = hash.key?('ip_address') ? hash['ip_address'] : SKIP
101
+ external_device = Device.from_hash(hash['external_device']) if hash['external_device']
102
+ event_category =
103
+ hash.key?('event_category') ? hash['event_category'] : SKIP
104
+ event_type = hash.key?('event_type') ? hash['event_type'] : SKIP
105
+ custom = hash.key?('custom') ? hash['custom'] : SKIP
106
+ channel = hash.key?('channel') ? hash['channel'] : SKIP
107
+
108
+ # Create a new hash for additional properties, removing known properties.
109
+ new_hash = hash.reject { |k, _| names.value?(k) }
110
+
111
+ additional_properties = APIHelper.get_additional_properties(
112
+ new_hash, proc { |value| value }
113
+ )
114
+
115
+ # Create object from extracted values.
116
+ Data5.new(individual: individual,
117
+ ip_address: ip_address,
118
+ external_device: external_device,
119
+ event_category: event_category,
120
+ event_type: event_type,
121
+ custom: custom,
122
+ channel: channel,
123
+ additional_properties: additional_properties)
124
+ end
125
+
126
+ # Validates an instance of the object from a given value.
127
+ # @param [Data5 | Hash] The value against the validation is performed.
128
+ def self.validate(value)
129
+ return true if value.instance_of? self
130
+
131
+ return false unless value.instance_of? Hash
132
+
133
+ true
134
+ end
135
+
136
+ # Provides a human-readable string representation of the object.
137
+ def to_s
138
+ class_name = self.class.name.split('::').last
139
+ "<#{class_name} individual: #{@individual}, ip_address: #{@ip_address}, external_device:"\
140
+ " #{@external_device}, event_category: #{@event_category}, event_type: #{@event_type},"\
141
+ " custom: #{@custom}, channel: #{@channel}, additional_properties:"\
142
+ " #{@additional_properties}>"
143
+ end
144
+
145
+ # Provides a debugging-friendly string with detailed object information.
146
+ def inspect
147
+ class_name = self.class.name.split('::').last
148
+ "<#{class_name} individual: #{@individual.inspect}, ip_address: #{@ip_address.inspect},"\
149
+ " external_device: #{@external_device.inspect}, event_category: #{@event_category.inspect},"\
150
+ " event_type: #{@event_type.inspect}, custom: #{@custom.inspect}, channel:"\
151
+ " #{@channel.inspect}, additional_properties: #{@additional_properties}>"
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,174 @@
1
+ # socure_risk_os_api
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ module SocureRiskOsApi
7
+ # The main payload for the Business Onboarding workflow.
8
+ class Data6 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Represents core information about the primary individual consumer.
13
+ # @return [Individual]
14
+ attr_accessor :individual
15
+
16
+ # A list of other individual consumers associated with the business, such as
17
+ # beneficial owners or authorized signatories.
18
+ # @return [Array[Individual]]
19
+ attr_accessor :additional_individuals
20
+
21
+ # Information related to the business entity being evaluated.
22
+ # @return [Business]
23
+ attr_accessor :business
24
+
25
+ # The consumer's IP address in IPv4 decimal or IPv6 hexadecimal format.
26
+ # @return [String]
27
+ attr_accessor :ip_address
28
+
29
+ # Use this field to provide external device data, e.g. originating from a
30
+ # third party data intelligence provider.
31
+ # @return [Device]
32
+ attr_accessor :external_device
33
+
34
+ # Include any additional, customer-specific data in this field as needed for
35
+ # the evaluation. See [Custom
36
+ # Fields](https://help.socure.com/riskos/docs/custom-fields) for more
37
+ # information.
38
+ # @return [Object]
39
+ attr_accessor :custom
40
+
41
+ # Specifies the mode of interaction on the consumer's end. <br /><br />
42
+ # Available values include: `web`, `mobile`, `pos`, and `other`.
43
+ # @return [Channel]
44
+ attr_accessor :channel
45
+
46
+ # Optional free-form field that allows to pass on the line of business the
47
+ # request originates from.
48
+ # @return [String]
49
+ attr_accessor :line_of_business
50
+
51
+ # A mapping from model property names to API property names.
52
+ def self.names
53
+ @_hash = {} if @_hash.nil?
54
+ @_hash['individual'] = 'individual'
55
+ @_hash['additional_individuals'] = 'additional_individuals'
56
+ @_hash['business'] = 'business'
57
+ @_hash['ip_address'] = 'ip_address'
58
+ @_hash['external_device'] = 'external_device'
59
+ @_hash['custom'] = 'custom'
60
+ @_hash['channel'] = 'channel'
61
+ @_hash['line_of_business'] = 'line_of_business'
62
+ @_hash
63
+ end
64
+
65
+ # An array for optional fields
66
+ def self.optionals
67
+ %w[
68
+ individual
69
+ additional_individuals
70
+ business
71
+ ip_address
72
+ external_device
73
+ custom
74
+ channel
75
+ line_of_business
76
+ ]
77
+ end
78
+
79
+ # An array for nullable fields
80
+ def self.nullables
81
+ []
82
+ end
83
+
84
+ def initialize(individual: SKIP, additional_individuals: SKIP,
85
+ business: SKIP, ip_address: SKIP, external_device: SKIP,
86
+ custom: SKIP, channel: SKIP, line_of_business: SKIP,
87
+ additional_properties: nil)
88
+ # Add additional model properties to the instance
89
+ additional_properties = {} if additional_properties.nil?
90
+
91
+ @individual = individual unless individual == SKIP
92
+ @additional_individuals = additional_individuals unless additional_individuals == SKIP
93
+ @business = business unless business == SKIP
94
+ @ip_address = ip_address unless ip_address == SKIP
95
+ @external_device = external_device unless external_device == SKIP
96
+ @custom = custom unless custom == SKIP
97
+ @channel = channel unless channel == SKIP
98
+ @line_of_business = line_of_business unless line_of_business == SKIP
99
+ @additional_properties = additional_properties
100
+ end
101
+
102
+ # Creates an instance of the object from a hash.
103
+ def self.from_hash(hash)
104
+ return nil unless hash
105
+
106
+ # Extract variables from the hash.
107
+ individual = Individual.from_hash(hash['individual']) if hash['individual']
108
+ # Parameter is an array, so we need to iterate through it
109
+ additional_individuals = nil
110
+ unless hash['additional_individuals'].nil?
111
+ additional_individuals = []
112
+ hash['additional_individuals'].each do |structure|
113
+ additional_individuals << (Individual.from_hash(structure) if structure)
114
+ end
115
+ end
116
+
117
+ additional_individuals = SKIP unless hash.key?('additional_individuals')
118
+ business = Business.from_hash(hash['business']) if hash['business']
119
+ ip_address = hash.key?('ip_address') ? hash['ip_address'] : SKIP
120
+ external_device = Device.from_hash(hash['external_device']) if hash['external_device']
121
+ custom = hash.key?('custom') ? hash['custom'] : SKIP
122
+ channel = hash.key?('channel') ? hash['channel'] : SKIP
123
+ line_of_business =
124
+ hash.key?('line_of_business') ? hash['line_of_business'] : SKIP
125
+
126
+ # Create a new hash for additional properties, removing known properties.
127
+ new_hash = hash.reject { |k, _| names.value?(k) }
128
+
129
+ additional_properties = APIHelper.get_additional_properties(
130
+ new_hash, proc { |value| value }
131
+ )
132
+
133
+ # Create object from extracted values.
134
+ Data6.new(individual: individual,
135
+ additional_individuals: additional_individuals,
136
+ business: business,
137
+ ip_address: ip_address,
138
+ external_device: external_device,
139
+ custom: custom,
140
+ channel: channel,
141
+ line_of_business: line_of_business,
142
+ additional_properties: additional_properties)
143
+ end
144
+
145
+ # Validates an instance of the object from a given value.
146
+ # @param [Data6 | Hash] The value against the validation is performed.
147
+ def self.validate(value)
148
+ return true if value.instance_of? self
149
+
150
+ return false unless value.instance_of? Hash
151
+
152
+ true
153
+ end
154
+
155
+ # Provides a human-readable string representation of the object.
156
+ def to_s
157
+ class_name = self.class.name.split('::').last
158
+ "<#{class_name} individual: #{@individual}, additional_individuals:"\
159
+ " #{@additional_individuals}, business: #{@business}, ip_address: #{@ip_address},"\
160
+ " external_device: #{@external_device}, custom: #{@custom}, channel: #{@channel},"\
161
+ " line_of_business: #{@line_of_business}, additional_properties: #{@additional_properties}>"
162
+ end
163
+
164
+ # Provides a debugging-friendly string with detailed object information.
165
+ def inspect
166
+ class_name = self.class.name.split('::').last
167
+ "<#{class_name} individual: #{@individual.inspect}, additional_individuals:"\
168
+ " #{@additional_individuals.inspect}, business: #{@business.inspect}, ip_address:"\
169
+ " #{@ip_address.inspect}, external_device: #{@external_device.inspect}, custom:"\
170
+ " #{@custom.inspect}, channel: #{@channel.inspect}, line_of_business:"\
171
+ " #{@line_of_business.inspect}, additional_properties: #{@additional_properties}>"
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,205 @@
1
+ # socure_risk_os_api
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ module SocureRiskOsApi
7
+ # The main payload for the Login and Authentication workflow.
8
+ class Data7 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Specifies the high-level category of the event occurring within a consumer
13
+ # profile or account. Use this field to indicate the general type of user
14
+ # interaction for risk evaluation purposes. <br /> <br /> Use the following
15
+ # guidance when selecting a value:
16
+ # - `authenticate`: Use for authentication-related events where a user is
17
+ # proving identity or access, such as login, logout, or session
18
+ # re-authentication.
19
+ # - `information`: Use for events where a user requests or views
20
+ # information without modifying account data, such as requesting a bank
21
+ # statement, viewing account balances, or retrieving transaction history.
22
+ # - `update`: Use for events where a user updates or modifies account or
23
+ # profile data, such as changing a password, updating an address, or
24
+ # modifying contact information.
25
+ # - `action`: Use for all other user-initiated actions where a risk
26
+ # evaluation is useful but the event does not fit into authentication,
27
+ # information, or update categories.
28
+ # @return [EventCategory2]
29
+ attr_accessor :event_category
30
+
31
+ # A free-form, application-defined sub-category of the `event_category` that
32
+ # provides additional context about the specific event performed. <br />
33
+ # <br /> Examples include: `login`, `address_update`, `statement_download`,
34
+ # or `password_reset`.
35
+ # @return [String]
36
+ attr_accessor :event_type
37
+
38
+ # Contextual details about the specific event, such as previous and updated
39
+ # state values.
40
+ # @return [EventDetails]
41
+ attr_accessor :event_details
42
+
43
+ # Represents core information about the primary individual consumer.
44
+ # @return [Individual]
45
+ attr_accessor :individual
46
+
47
+ # Specifies the mode of interaction on the consumer's end. <br /><br />
48
+ # Available values include: `web`, `mobile`, `pos`, and `other`.
49
+ # @return [Channel]
50
+ attr_accessor :channel
51
+
52
+ # Optional free-form field that allows to pass on the line of business the
53
+ # request originates from.
54
+ # @return [String]
55
+ attr_accessor :line_of_business
56
+
57
+ # The consumer's IP address in IPv4 decimal or IPv6 hexadecimal format.
58
+ # @return [String]
59
+ attr_accessor :ip_address
60
+
61
+ # Use this field to provide external device data, e.g. originating from a
62
+ # third party data intelligence provider.
63
+ # @return [Device]
64
+ attr_accessor :external_device
65
+
66
+ # Include any additional customer-specific data relevant to the Account
67
+ # Takeover evaluation in this field. See [Custom
68
+ # Fields](https://help.socure.com/riskos/docs/custom-fields) for more
69
+ # information.
70
+ # @return [Object]
71
+ attr_accessor :custom
72
+
73
+ # A mapping from model property names to API property names.
74
+ def self.names
75
+ @_hash = {} if @_hash.nil?
76
+ @_hash['event_category'] = 'event_category'
77
+ @_hash['event_type'] = 'event_type'
78
+ @_hash['event_details'] = 'event_details'
79
+ @_hash['individual'] = 'individual'
80
+ @_hash['channel'] = 'channel'
81
+ @_hash['line_of_business'] = 'line_of_business'
82
+ @_hash['ip_address'] = 'ip_address'
83
+ @_hash['external_device'] = 'external_device'
84
+ @_hash['custom'] = 'custom'
85
+ @_hash
86
+ end
87
+
88
+ # An array for optional fields
89
+ def self.optionals
90
+ %w[
91
+ event_details
92
+ individual
93
+ channel
94
+ line_of_business
95
+ ip_address
96
+ external_device
97
+ custom
98
+ ]
99
+ end
100
+
101
+ # An array for nullable fields
102
+ def self.nullables
103
+ []
104
+ end
105
+
106
+ def initialize(event_category:, event_type:, event_details: SKIP,
107
+ individual: SKIP, channel: SKIP, line_of_business: SKIP,
108
+ ip_address: SKIP, external_device: SKIP, custom: SKIP,
109
+ additional_properties: nil)
110
+ # Add additional model properties to the instance
111
+ additional_properties = {} if additional_properties.nil?
112
+
113
+ @event_category = event_category
114
+ @event_type = event_type
115
+ @event_details = event_details unless event_details == SKIP
116
+ @individual = individual unless individual == SKIP
117
+ @channel = channel unless channel == SKIP
118
+ @line_of_business = line_of_business unless line_of_business == SKIP
119
+ @ip_address = ip_address unless ip_address == SKIP
120
+ @external_device = external_device unless external_device == SKIP
121
+ @custom = custom unless custom == SKIP
122
+ @additional_properties = additional_properties
123
+ end
124
+
125
+ # Creates an instance of the object from a hash.
126
+ def self.from_hash(hash)
127
+ return nil unless hash
128
+
129
+ # Extract variables from the hash.
130
+ event_category =
131
+ hash.key?('event_category') ? hash['event_category'] : nil
132
+ event_type = hash.key?('event_type') ? hash['event_type'] : nil
133
+ event_details = EventDetails.from_hash(hash['event_details']) if hash['event_details']
134
+ individual = Individual.from_hash(hash['individual']) if hash['individual']
135
+ channel = hash.key?('channel') ? hash['channel'] : SKIP
136
+ line_of_business =
137
+ hash.key?('line_of_business') ? hash['line_of_business'] : SKIP
138
+ ip_address = hash.key?('ip_address') ? hash['ip_address'] : SKIP
139
+ external_device = Device.from_hash(hash['external_device']) if hash['external_device']
140
+ custom = hash.key?('custom') ? hash['custom'] : SKIP
141
+
142
+ # Create a new hash for additional properties, removing known properties.
143
+ new_hash = hash.reject { |k, _| names.value?(k) }
144
+
145
+ additional_properties = APIHelper.get_additional_properties(
146
+ new_hash, proc { |value| value }
147
+ )
148
+
149
+ # Create object from extracted values.
150
+ Data7.new(event_category: event_category,
151
+ event_type: event_type,
152
+ event_details: event_details,
153
+ individual: individual,
154
+ channel: channel,
155
+ line_of_business: line_of_business,
156
+ ip_address: ip_address,
157
+ external_device: external_device,
158
+ custom: custom,
159
+ additional_properties: additional_properties)
160
+ end
161
+
162
+ # Validates an instance of the object from a given value.
163
+ # @param [Data7 | Hash] The value against the validation is performed.
164
+ def self.validate(value)
165
+ if value.instance_of? self
166
+ return (
167
+ APIHelper.valid_type?(value.event_category,
168
+ ->(val) { EventCategory2.validate(val) }) and
169
+ APIHelper.valid_type?(value.event_type,
170
+ ->(val) { val.instance_of? String })
171
+ )
172
+ end
173
+
174
+ return false unless value.instance_of? Hash
175
+
176
+ (
177
+ APIHelper.valid_type?(value['event_category'],
178
+ ->(val) { EventCategory2.validate(val) }) and
179
+ APIHelper.valid_type?(value['event_type'],
180
+ ->(val) { val.instance_of? String })
181
+ )
182
+ end
183
+
184
+ # Provides a human-readable string representation of the object.
185
+ def to_s
186
+ class_name = self.class.name.split('::').last
187
+ "<#{class_name} event_category: #{@event_category}, event_type: #{@event_type},"\
188
+ " event_details: #{@event_details}, individual: #{@individual}, channel: #{@channel},"\
189
+ " line_of_business: #{@line_of_business}, ip_address: #{@ip_address}, external_device:"\
190
+ " #{@external_device}, custom: #{@custom}, additional_properties:"\
191
+ " #{@additional_properties}>"
192
+ end
193
+
194
+ # Provides a debugging-friendly string with detailed object information.
195
+ def inspect
196
+ class_name = self.class.name.split('::').last
197
+ "<#{class_name} event_category: #{@event_category.inspect}, event_type:"\
198
+ " #{@event_type.inspect}, event_details: #{@event_details.inspect}, individual:"\
199
+ " #{@individual.inspect}, channel: #{@channel.inspect}, line_of_business:"\
200
+ " #{@line_of_business.inspect}, ip_address: #{@ip_address.inspect}, external_device:"\
201
+ " #{@external_device.inspect}, custom: #{@custom.inspect}, additional_properties:"\
202
+ " #{@additional_properties}>"
203
+ end
204
+ end
205
+ end