lithic 0.15.0 → 0.16.0

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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/client.rb +4 -0
  5. data/lib/lithic/internal/transport/base_client.rb +4 -1
  6. data/lib/lithic/models/account.rb +2 -2
  7. data/lib/lithic/models/account_holders/account_holder_entity.rb +3 -16
  8. data/lib/lithic/models/account_holders/entity_create_params.rb +3 -14
  9. data/lib/lithic/models/auth_rules/auth_rule.rb +4 -2
  10. data/lib/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rb +18 -20
  11. data/lib/lithic/models/auth_rules/conditional_card_transaction_update_action_parameters.rb +195 -9
  12. data/lib/lithic/models/auth_rules/rule_feature.rb +29 -6
  13. data/lib/lithic/models/auth_rules/typescript_code_parameters.rb +2 -2
  14. data/lib/lithic/models/auth_rules/v2_create_params.rb +12 -6
  15. data/lib/lithic/models/card.rb +1 -1
  16. data/lib/lithic/models/card_authorization.rb +117 -11
  17. data/lib/lithic/models/financial_accounts/loan_tape.rb +9 -1
  18. data/lib/lithic/models/payment.rb +13 -1
  19. data/lib/lithic/models/transaction_monitoring/case_activity_entry.rb +74 -0
  20. data/lib/lithic/models/transaction_monitoring/case_activity_type.rb +35 -0
  21. data/lib/lithic/models/transaction_monitoring/case_card.rb +37 -0
  22. data/lib/lithic/models/transaction_monitoring/case_entity.rb +50 -0
  23. data/lib/lithic/models/transaction_monitoring/case_list_activity_params.rb +53 -0
  24. data/lib/lithic/models/transaction_monitoring/case_list_params.rb +136 -0
  25. data/lib/lithic/models/transaction_monitoring/case_list_transactions_params.rb +53 -0
  26. data/lib/lithic/models/transaction_monitoring/case_priority.rb +20 -0
  27. data/lib/lithic/models/transaction_monitoring/case_retrieve_cards_params.rb +22 -0
  28. data/lib/lithic/models/transaction_monitoring/case_retrieve_cards_response.rb +11 -0
  29. data/lib/lithic/models/transaction_monitoring/case_retrieve_params.rb +22 -0
  30. data/lib/lithic/models/transaction_monitoring/case_sort_order.rb +29 -0
  31. data/lib/lithic/models/transaction_monitoring/case_status.rb +31 -0
  32. data/lib/lithic/models/transaction_monitoring/case_transaction.rb +53 -0
  33. data/lib/lithic/models/transaction_monitoring/case_update_params.rb +116 -0
  34. data/lib/lithic/models/transaction_monitoring/cases/case_file.rb +141 -0
  35. data/lib/lithic/models/transaction_monitoring/cases/comment_create_params.rb +47 -0
  36. data/lib/lithic/models/transaction_monitoring/cases/comment_delete_params.rb +30 -0
  37. data/lib/lithic/models/transaction_monitoring/cases/comment_update_params.rb +54 -0
  38. data/lib/lithic/models/transaction_monitoring/cases/file_create_params.rb +33 -0
  39. data/lib/lithic/models/transaction_monitoring/cases/file_delete_params.rb +30 -0
  40. data/lib/lithic/models/transaction_monitoring/cases/file_list_params.rb +54 -0
  41. data/lib/lithic/models/transaction_monitoring/cases/file_retrieve_params.rb +30 -0
  42. data/lib/lithic/models/transaction_monitoring/cases/file_status.rb +26 -0
  43. data/lib/lithic/models/transaction_monitoring/cases/upload_constraints.rb +31 -0
  44. data/lib/lithic/models/transaction_monitoring/entity_type.rb +18 -0
  45. data/lib/lithic/models/transaction_monitoring/monitoring_case.rb +168 -0
  46. data/lib/lithic/models/transaction_monitoring/queue.rb +120 -0
  47. data/lib/lithic/models/transaction_monitoring/queue_create_params.rb +32 -0
  48. data/lib/lithic/models/transaction_monitoring/queue_delete_params.rb +22 -0
  49. data/lib/lithic/models/transaction_monitoring/queue_list_params.rb +45 -0
  50. data/lib/lithic/models/transaction_monitoring/queue_retrieve_params.rb +22 -0
  51. data/lib/lithic/models/transaction_monitoring/queue_update_params.rb +39 -0
  52. data/lib/lithic/models/transaction_monitoring/resolution_outcome.rb +28 -0
  53. data/lib/lithic/models/transaction_route_params.rb +29 -0
  54. data/lib/lithic/models.rb +4 -0
  55. data/lib/lithic/resources/account_holders/entities.rb +1 -1
  56. data/lib/lithic/resources/cards.rb +2 -2
  57. data/lib/lithic/resources/transaction_monitoring/cases/comments.rb +111 -0
  58. data/lib/lithic/resources/transaction_monitoring/cases/files.rb +131 -0
  59. data/lib/lithic/resources/transaction_monitoring/cases.rb +228 -0
  60. data/lib/lithic/resources/transaction_monitoring/queues.rb +137 -0
  61. data/lib/lithic/resources/transaction_monitoring.rb +22 -0
  62. data/lib/lithic/resources/transactions.rb +25 -0
  63. data/lib/lithic/version.rb +1 -1
  64. data/lib/lithic.rb +40 -0
  65. data/rbi/lithic/client.rbi +3 -0
  66. data/rbi/lithic/models/account.rbi +3 -3
  67. data/rbi/lithic/models/account_holders/account_holder_entity.rbi +3 -40
  68. data/rbi/lithic/models/account_holders/entity_create_params.rbi +3 -37
  69. data/rbi/lithic/models/auth_rules/auth_rule.rbi +6 -3
  70. data/rbi/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbi +29 -29
  71. data/rbi/lithic/models/auth_rules/conditional_card_transaction_update_action_parameters.rbi +395 -12
  72. data/rbi/lithic/models/auth_rules/rule_feature.rbi +41 -5
  73. data/rbi/lithic/models/auth_rules/typescript_code_parameters.rbi +3 -0
  74. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +18 -9
  75. data/rbi/lithic/models/card.rbi +2 -2
  76. data/rbi/lithic/models/card_authorization.rbi +246 -17
  77. data/rbi/lithic/models/financial_accounts/loan_tape.rbi +8 -0
  78. data/rbi/lithic/models/payment.rbi +13 -0
  79. data/rbi/lithic/models/transaction_monitoring/case_activity_entry.rbi +107 -0
  80. data/rbi/lithic/models/transaction_monitoring/case_activity_type.rbi +84 -0
  81. data/rbi/lithic/models/transaction_monitoring/case_card.rbi +60 -0
  82. data/rbi/lithic/models/transaction_monitoring/case_entity.rbi +101 -0
  83. data/rbi/lithic/models/transaction_monitoring/case_list_activity_params.rbi +83 -0
  84. data/rbi/lithic/models/transaction_monitoring/case_list_params.rbi +220 -0
  85. data/rbi/lithic/models/transaction_monitoring/case_list_transactions_params.rbi +83 -0
  86. data/rbi/lithic/models/transaction_monitoring/case_priority.rbi +44 -0
  87. data/rbi/lithic/models/transaction_monitoring/case_retrieve_cards_params.rbi +40 -0
  88. data/rbi/lithic/models/transaction_monitoring/case_retrieve_cards_response.rbi +15 -0
  89. data/rbi/lithic/models/transaction_monitoring/case_retrieve_params.rbi +40 -0
  90. data/rbi/lithic/models/transaction_monitoring/case_sort_order.rbi +64 -0
  91. data/rbi/lithic/models/transaction_monitoring/case_status.rbi +63 -0
  92. data/rbi/lithic/models/transaction_monitoring/case_transaction.rbi +75 -0
  93. data/rbi/lithic/models/transaction_monitoring/case_update_params.rbi +201 -0
  94. data/rbi/lithic/models/transaction_monitoring/cases/case_file.rbi +188 -0
  95. data/rbi/lithic/models/transaction_monitoring/cases/comment_create_params.rbi +71 -0
  96. data/rbi/lithic/models/transaction_monitoring/cases/comment_delete_params.rbi +50 -0
  97. data/rbi/lithic/models/transaction_monitoring/cases/comment_update_params.rbi +77 -0
  98. data/rbi/lithic/models/transaction_monitoring/cases/file_create_params.rbi +56 -0
  99. data/rbi/lithic/models/transaction_monitoring/cases/file_delete_params.rbi +50 -0
  100. data/rbi/lithic/models/transaction_monitoring/cases/file_list_params.rbi +85 -0
  101. data/rbi/lithic/models/transaction_monitoring/cases/file_retrieve_params.rbi +50 -0
  102. data/rbi/lithic/models/transaction_monitoring/cases/file_status.rbi +51 -0
  103. data/rbi/lithic/models/transaction_monitoring/cases/upload_constraints.rbi +51 -0
  104. data/rbi/lithic/models/transaction_monitoring/entity_type.rbi +37 -0
  105. data/rbi/lithic/models/transaction_monitoring/monitoring_case.rbi +226 -0
  106. data/rbi/lithic/models/transaction_monitoring/queue.rbi +189 -0
  107. data/rbi/lithic/models/transaction_monitoring/queue_create_params.rbi +56 -0
  108. data/rbi/lithic/models/transaction_monitoring/queue_delete_params.rbi +40 -0
  109. data/rbi/lithic/models/transaction_monitoring/queue_list_params.rbi +77 -0
  110. data/rbi/lithic/models/transaction_monitoring/queue_retrieve_params.rbi +40 -0
  111. data/rbi/lithic/models/transaction_monitoring/queue_update_params.rbi +65 -0
  112. data/rbi/lithic/models/transaction_monitoring/resolution_outcome.rbi +61 -0
  113. data/rbi/lithic/models/transaction_route_params.rbi +49 -0
  114. data/rbi/lithic/models.rbi +4 -0
  115. data/rbi/lithic/resources/account_holders/entities.rbi +1 -1
  116. data/rbi/lithic/resources/cards.rbi +2 -2
  117. data/rbi/lithic/resources/transaction_monitoring/cases/comments.rbi +81 -0
  118. data/rbi/lithic/resources/transaction_monitoring/cases/files.rbi +98 -0
  119. data/rbi/lithic/resources/transaction_monitoring/cases.rbi +230 -0
  120. data/rbi/lithic/resources/transaction_monitoring/queues.rbi +103 -0
  121. data/rbi/lithic/resources/transaction_monitoring.rbi +18 -0
  122. data/rbi/lithic/resources/transactions.rbi +18 -0
  123. data/sig/lithic/client.rbs +2 -0
  124. data/sig/lithic/models/account_holders/account_holder_entity.rbs +4 -15
  125. data/sig/lithic/models/account_holders/entity_create_params.rbs +4 -15
  126. data/sig/lithic/models/auth_rules/conditional_authorization_adjustment_parameters.rbs +16 -16
  127. data/sig/lithic/models/auth_rules/conditional_card_transaction_update_action_parameters.rbs +73 -3
  128. data/sig/lithic/models/auth_rules/rule_feature.rbs +16 -0
  129. data/sig/lithic/models/card_authorization.rbs +84 -10
  130. data/sig/lithic/models/financial_accounts/loan_tape.rbs +5 -0
  131. data/sig/lithic/models/payment.rbs +7 -0
  132. data/sig/lithic/models/transaction_monitoring/case_activity_entry.rbs +47 -0
  133. data/sig/lithic/models/transaction_monitoring/case_activity_type.rbs +32 -0
  134. data/sig/lithic/models/transaction_monitoring/case_card.rbs +32 -0
  135. data/sig/lithic/models/transaction_monitoring/case_entity.rbs +38 -0
  136. data/sig/lithic/models/transaction_monitoring/case_list_activity_params.rbs +49 -0
  137. data/sig/lithic/models/transaction_monitoring/case_list_params.rbs +125 -0
  138. data/sig/lithic/models/transaction_monitoring/case_list_transactions_params.rbs +49 -0
  139. data/sig/lithic/models/transaction_monitoring/case_priority.rbs +18 -0
  140. data/sig/lithic/models/transaction_monitoring/case_retrieve_cards_params.rbs +25 -0
  141. data/sig/lithic/models/transaction_monitoring/case_retrieve_cards_response.rbs +10 -0
  142. data/sig/lithic/models/transaction_monitoring/case_retrieve_params.rbs +25 -0
  143. data/sig/lithic/models/transaction_monitoring/case_sort_order.rbs +26 -0
  144. data/sig/lithic/models/transaction_monitoring/case_status.rbs +21 -0
  145. data/sig/lithic/models/transaction_monitoring/case_transaction.rbs +42 -0
  146. data/sig/lithic/models/transaction_monitoring/case_update_params.rbs +91 -0
  147. data/sig/lithic/models/transaction_monitoring/cases/case_file.rbs +86 -0
  148. data/sig/lithic/models/transaction_monitoring/cases/comment_create_params.rbs +38 -0
  149. data/sig/lithic/models/transaction_monitoring/cases/comment_delete_params.rbs +32 -0
  150. data/sig/lithic/models/transaction_monitoring/cases/comment_update_params.rbs +47 -0
  151. data/sig/lithic/models/transaction_monitoring/cases/file_create_params.rbs +32 -0
  152. data/sig/lithic/models/transaction_monitoring/cases/file_delete_params.rbs +32 -0
  153. data/sig/lithic/models/transaction_monitoring/cases/file_list_params.rbs +51 -0
  154. data/sig/lithic/models/transaction_monitoring/cases/file_retrieve_params.rbs +32 -0
  155. data/sig/lithic/models/transaction_monitoring/cases/file_status.rbs +19 -0
  156. data/sig/lithic/models/transaction_monitoring/cases/upload_constraints.rbs +26 -0
  157. data/sig/lithic/models/transaction_monitoring/entity_type.rbs +16 -0
  158. data/sig/lithic/models/transaction_monitoring/monitoring_case.rbs +102 -0
  159. data/sig/lithic/models/transaction_monitoring/queue.rbs +101 -0
  160. data/sig/lithic/models/transaction_monitoring/queue_create_params.rbs +30 -0
  161. data/sig/lithic/models/transaction_monitoring/queue_delete_params.rbs +25 -0
  162. data/sig/lithic/models/transaction_monitoring/queue_list_params.rbs +40 -0
  163. data/sig/lithic/models/transaction_monitoring/queue_retrieve_params.rbs +25 -0
  164. data/sig/lithic/models/transaction_monitoring/queue_update_params.rbs +36 -0
  165. data/sig/lithic/models/transaction_monitoring/resolution_outcome.rbs +24 -0
  166. data/sig/lithic/models/transaction_route_params.rbs +28 -0
  167. data/sig/lithic/models.rbs +4 -0
  168. data/sig/lithic/resources/account_holders/entities.rbs +1 -1
  169. data/sig/lithic/resources/transaction_monitoring/cases/comments.rbs +32 -0
  170. data/sig/lithic/resources/transaction_monitoring/cases/files.rbs +37 -0
  171. data/sig/lithic/resources/transaction_monitoring/cases.rbs +71 -0
  172. data/sig/lithic/resources/transaction_monitoring/queues.rbs +39 -0
  173. data/sig/lithic/resources/transaction_monitoring.rbs +11 -0
  174. data/sig/lithic/resources/transactions.rbs +6 -0
  175. metadata +122 -2
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ class CaseRetrieveCardsParams < Lithic::Internal::Type::BaseModel
7
+ extend Lithic::Internal::Type::RequestParameters::Converter
8
+ include Lithic::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::TransactionMonitoring::CaseRetrieveCardsParams,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :case_token
20
+
21
+ sig do
22
+ params(
23
+ case_token: String,
24
+ request_options: Lithic::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(case_token:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { case_token: String, request_options: Lithic::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,15 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ CaseRetrieveCardsResponse =
7
+ T.let(
8
+ Lithic::Internal::Type::ArrayOf[
9
+ Lithic::TransactionMonitoring::CaseCard
10
+ ],
11
+ Lithic::Internal::Type::Converter
12
+ )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ class CaseRetrieveParams < Lithic::Internal::Type::BaseModel
7
+ extend Lithic::Internal::Type::RequestParameters::Converter
8
+ include Lithic::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::TransactionMonitoring::CaseRetrieveParams,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :case_token
20
+
21
+ sig do
22
+ params(
23
+ case_token: String,
24
+ request_options: Lithic::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(case_token:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { case_token: String, request_options: Lithic::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,64 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ # Sort order for listing cases. Defaults to `CREATED_DESC` (newest first):
7
+ #
8
+ # - `CREATED_ASC` - Oldest first
9
+ # - `CREATED_DESC` - Newest first
10
+ # - `PRIORITY_DESC` - Highest priority first
11
+ # - `PRIORITY_ASC` - Lowest priority first
12
+ # - `STATUS_DESC` - Furthest workflow stage first
13
+ # - `STATUS_ASC` - Earliest workflow stage first
14
+ module CaseSortOrder
15
+ extend Lithic::Internal::Type::Enum
16
+
17
+ TaggedSymbol =
18
+ T.type_alias do
19
+ T.all(Symbol, Lithic::TransactionMonitoring::CaseSortOrder)
20
+ end
21
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
22
+
23
+ CREATED_ASC =
24
+ T.let(
25
+ :CREATED_ASC,
26
+ Lithic::TransactionMonitoring::CaseSortOrder::TaggedSymbol
27
+ )
28
+ CREATED_DESC =
29
+ T.let(
30
+ :CREATED_DESC,
31
+ Lithic::TransactionMonitoring::CaseSortOrder::TaggedSymbol
32
+ )
33
+ PRIORITY_DESC =
34
+ T.let(
35
+ :PRIORITY_DESC,
36
+ Lithic::TransactionMonitoring::CaseSortOrder::TaggedSymbol
37
+ )
38
+ PRIORITY_ASC =
39
+ T.let(
40
+ :PRIORITY_ASC,
41
+ Lithic::TransactionMonitoring::CaseSortOrder::TaggedSymbol
42
+ )
43
+ STATUS_DESC =
44
+ T.let(
45
+ :STATUS_DESC,
46
+ Lithic::TransactionMonitoring::CaseSortOrder::TaggedSymbol
47
+ )
48
+ STATUS_ASC =
49
+ T.let(
50
+ :STATUS_ASC,
51
+ Lithic::TransactionMonitoring::CaseSortOrder::TaggedSymbol
52
+ )
53
+
54
+ sig do
55
+ override.returns(
56
+ T::Array[Lithic::TransactionMonitoring::CaseSortOrder::TaggedSymbol]
57
+ )
58
+ end
59
+ def self.values
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,63 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ # Status of a case as it progresses through the review workflow:
7
+ #
8
+ # - `OPEN` - The case has been created and is still collecting matching
9
+ # transactions
10
+ # - `ASSIGNED` - An analyst has been assigned and transaction collection has
11
+ # stopped
12
+ # - `IN_REVIEW` - The case is actively being investigated
13
+ # - `ESCALATED` - The case has been reviewed and requires additional oversight
14
+ # - `RESOLVED` - A determination has been made and a resolution recorded
15
+ # - `CLOSED` - The case is finalized
16
+ module CaseStatus
17
+ extend Lithic::Internal::Type::Enum
18
+
19
+ TaggedSymbol =
20
+ T.type_alias do
21
+ T.all(Symbol, Lithic::TransactionMonitoring::CaseStatus)
22
+ end
23
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
24
+
25
+ OPEN =
26
+ T.let(:OPEN, Lithic::TransactionMonitoring::CaseStatus::TaggedSymbol)
27
+ ASSIGNED =
28
+ T.let(
29
+ :ASSIGNED,
30
+ Lithic::TransactionMonitoring::CaseStatus::TaggedSymbol
31
+ )
32
+ IN_REVIEW =
33
+ T.let(
34
+ :IN_REVIEW,
35
+ Lithic::TransactionMonitoring::CaseStatus::TaggedSymbol
36
+ )
37
+ ESCALATED =
38
+ T.let(
39
+ :ESCALATED,
40
+ Lithic::TransactionMonitoring::CaseStatus::TaggedSymbol
41
+ )
42
+ RESOLVED =
43
+ T.let(
44
+ :RESOLVED,
45
+ Lithic::TransactionMonitoring::CaseStatus::TaggedSymbol
46
+ )
47
+ CLOSED =
48
+ T.let(
49
+ :CLOSED,
50
+ Lithic::TransactionMonitoring::CaseStatus::TaggedSymbol
51
+ )
52
+
53
+ sig do
54
+ override.returns(
55
+ T::Array[Lithic::TransactionMonitoring::CaseStatus::TaggedSymbol]
56
+ )
57
+ end
58
+ def self.values
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,75 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ class CaseTransaction < Lithic::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Lithic::TransactionMonitoring::CaseTransaction,
11
+ Lithic::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Globally unique identifier for the transaction
16
+ sig { returns(String) }
17
+ attr_accessor :token
18
+
19
+ # Token of the account the transaction belongs to
20
+ sig { returns(String) }
21
+ attr_accessor :account_token
22
+
23
+ # Date and time at which the transaction was added to the case
24
+ sig { returns(Time) }
25
+ attr_accessor :added_at
26
+
27
+ # Token of the card the transaction was made on
28
+ sig { returns(String) }
29
+ attr_accessor :card_token
30
+
31
+ # Date and time at which the transaction was created
32
+ sig { returns(Time) }
33
+ attr_accessor :transaction_created_at
34
+
35
+ # A single transaction associated with a case
36
+ sig do
37
+ params(
38
+ token: String,
39
+ account_token: String,
40
+ added_at: Time,
41
+ card_token: String,
42
+ transaction_created_at: Time
43
+ ).returns(T.attached_class)
44
+ end
45
+ def self.new(
46
+ # Globally unique identifier for the transaction
47
+ token:,
48
+ # Token of the account the transaction belongs to
49
+ account_token:,
50
+ # Date and time at which the transaction was added to the case
51
+ added_at:,
52
+ # Token of the card the transaction was made on
53
+ card_token:,
54
+ # Date and time at which the transaction was created
55
+ transaction_created_at:
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ token: String,
63
+ account_token: String,
64
+ added_at: Time,
65
+ card_token: String,
66
+ transaction_created_at: Time
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,201 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ class CaseUpdateParams < Lithic::Internal::Type::BaseModel
7
+ extend Lithic::Internal::Type::RequestParameters::Converter
8
+ include Lithic::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::TransactionMonitoring::CaseUpdateParams,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :case_token
20
+
21
+ # Optional client-provided identifier for the actor performing this action,
22
+ # recorded on the resulting activity entry. This value is supplied by the client
23
+ # (for example, your own internal user ID) and is not authenticated by Lithic
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :actor_token
26
+
27
+ sig { params(actor_token: String).void }
28
+ attr_writer :actor_token
29
+
30
+ # New assignee for the case, or `null` to unassign
31
+ sig { returns(T.nilable(String)) }
32
+ attr_accessor :assignee
33
+
34
+ # Priority level of a case, controlling queue ordering and SLA urgency
35
+ sig do
36
+ returns(
37
+ T.nilable(Lithic::TransactionMonitoring::CasePriority::OrSymbol)
38
+ )
39
+ end
40
+ attr_reader :priority
41
+
42
+ sig do
43
+ params(
44
+ priority: Lithic::TransactionMonitoring::CasePriority::OrSymbol
45
+ ).void
46
+ end
47
+ attr_writer :priority
48
+
49
+ # Outcome recorded when a case is resolved:
50
+ #
51
+ # - `CONFIRMED_FRAUD` - The reviewed activity was confirmed to be fraudulent
52
+ # - `SUSPICIOUS_ACTIVITY` - The activity is suspicious but not confirmed fraud
53
+ # - `FALSE_POSITIVE` - The activity was legitimate and the alert was a false
54
+ # positive
55
+ # - `NO_ACTION_REQUIRED` - No further action is required
56
+ # - `ESCALATED_EXTERNAL` - The case was escalated to an external party
57
+ sig do
58
+ returns(
59
+ T.nilable(
60
+ Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol
61
+ )
62
+ )
63
+ end
64
+ attr_reader :resolution
65
+
66
+ sig do
67
+ params(
68
+ resolution:
69
+ Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol
70
+ ).void
71
+ end
72
+ attr_writer :resolution
73
+
74
+ # Notes describing the resolution
75
+ sig { returns(T.nilable(String)) }
76
+ attr_reader :resolution_notes
77
+
78
+ sig { params(resolution_notes: String).void }
79
+ attr_writer :resolution_notes
80
+
81
+ # New SLA deadline for the case, or `null` to clear it
82
+ sig { returns(T.nilable(Time)) }
83
+ attr_accessor :sla_deadline
84
+
85
+ # Status of a case as it progresses through the review workflow:
86
+ #
87
+ # - `OPEN` - The case has been created and is still collecting matching
88
+ # transactions
89
+ # - `ASSIGNED` - An analyst has been assigned and transaction collection has
90
+ # stopped
91
+ # - `IN_REVIEW` - The case is actively being investigated
92
+ # - `ESCALATED` - The case has been reviewed and requires additional oversight
93
+ # - `RESOLVED` - A determination has been made and a resolution recorded
94
+ # - `CLOSED` - The case is finalized
95
+ sig do
96
+ returns(
97
+ T.nilable(Lithic::TransactionMonitoring::CaseStatus::OrSymbol)
98
+ )
99
+ end
100
+ attr_reader :status
101
+
102
+ sig do
103
+ params(
104
+ status: Lithic::TransactionMonitoring::CaseStatus::OrSymbol
105
+ ).void
106
+ end
107
+ attr_writer :status
108
+
109
+ # Arbitrary key-value metadata to set on the case
110
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
111
+ attr_reader :tags
112
+
113
+ sig { params(tags: T::Hash[Symbol, String]).void }
114
+ attr_writer :tags
115
+
116
+ # New title for the case, or `null` to clear it
117
+ sig { returns(T.nilable(String)) }
118
+ attr_accessor :title
119
+
120
+ sig do
121
+ params(
122
+ case_token: String,
123
+ actor_token: String,
124
+ assignee: T.nilable(String),
125
+ priority: Lithic::TransactionMonitoring::CasePriority::OrSymbol,
126
+ resolution:
127
+ Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol,
128
+ resolution_notes: String,
129
+ sla_deadline: T.nilable(Time),
130
+ status: Lithic::TransactionMonitoring::CaseStatus::OrSymbol,
131
+ tags: T::Hash[Symbol, String],
132
+ title: T.nilable(String),
133
+ request_options: Lithic::RequestOptions::OrHash
134
+ ).returns(T.attached_class)
135
+ end
136
+ def self.new(
137
+ case_token:,
138
+ # Optional client-provided identifier for the actor performing this action,
139
+ # recorded on the resulting activity entry. This value is supplied by the client
140
+ # (for example, your own internal user ID) and is not authenticated by Lithic
141
+ actor_token: nil,
142
+ # New assignee for the case, or `null` to unassign
143
+ assignee: nil,
144
+ # Priority level of a case, controlling queue ordering and SLA urgency
145
+ priority: nil,
146
+ # Outcome recorded when a case is resolved:
147
+ #
148
+ # - `CONFIRMED_FRAUD` - The reviewed activity was confirmed to be fraudulent
149
+ # - `SUSPICIOUS_ACTIVITY` - The activity is suspicious but not confirmed fraud
150
+ # - `FALSE_POSITIVE` - The activity was legitimate and the alert was a false
151
+ # positive
152
+ # - `NO_ACTION_REQUIRED` - No further action is required
153
+ # - `ESCALATED_EXTERNAL` - The case was escalated to an external party
154
+ resolution: nil,
155
+ # Notes describing the resolution
156
+ resolution_notes: nil,
157
+ # New SLA deadline for the case, or `null` to clear it
158
+ sla_deadline: nil,
159
+ # Status of a case as it progresses through the review workflow:
160
+ #
161
+ # - `OPEN` - The case has been created and is still collecting matching
162
+ # transactions
163
+ # - `ASSIGNED` - An analyst has been assigned and transaction collection has
164
+ # stopped
165
+ # - `IN_REVIEW` - The case is actively being investigated
166
+ # - `ESCALATED` - The case has been reviewed and requires additional oversight
167
+ # - `RESOLVED` - A determination has been made and a resolution recorded
168
+ # - `CLOSED` - The case is finalized
169
+ status: nil,
170
+ # Arbitrary key-value metadata to set on the case
171
+ tags: nil,
172
+ # New title for the case, or `null` to clear it
173
+ title: nil,
174
+ request_options: {}
175
+ )
176
+ end
177
+
178
+ sig do
179
+ override.returns(
180
+ {
181
+ case_token: String,
182
+ actor_token: String,
183
+ assignee: T.nilable(String),
184
+ priority: Lithic::TransactionMonitoring::CasePriority::OrSymbol,
185
+ resolution:
186
+ Lithic::TransactionMonitoring::ResolutionOutcome::OrSymbol,
187
+ resolution_notes: String,
188
+ sla_deadline: T.nilable(Time),
189
+ status: Lithic::TransactionMonitoring::CaseStatus::OrSymbol,
190
+ tags: T::Hash[Symbol, String],
191
+ title: T.nilable(String),
192
+ request_options: Lithic::RequestOptions
193
+ }
194
+ )
195
+ end
196
+ def to_hash
197
+ end
198
+ end
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,188 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module TransactionMonitoring
6
+ CaseFile = Cases::CaseFile
7
+
8
+ module Cases
9
+ class CaseFile < Lithic::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::TransactionMonitoring::Cases::CaseFile,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Globally unique identifier for the file
19
+ sig { returns(String) }
20
+ attr_accessor :token
21
+
22
+ # Date and time at which the file record was created
23
+ sig { returns(Time) }
24
+ attr_accessor :created
25
+
26
+ # Presigned URL the client uses to download the file
27
+ sig { returns(T.nilable(String)) }
28
+ attr_accessor :download_url
29
+
30
+ # Date and time at which the download URL expires
31
+ sig { returns(T.nilable(Time)) }
32
+ attr_accessor :download_url_expires
33
+
34
+ # Reason the file was rejected, when applicable
35
+ sig { returns(T.nilable(String)) }
36
+ attr_accessor :failure_reason
37
+
38
+ # MIME type of the file, available once the file is ready
39
+ sig { returns(T.nilable(String)) }
40
+ attr_accessor :mime_type
41
+
42
+ # Name of the file
43
+ sig { returns(String) }
44
+ attr_accessor :name
45
+
46
+ # Size of the file in bytes, available once the file is ready
47
+ sig { returns(T.nilable(Integer)) }
48
+ attr_accessor :size_bytes
49
+
50
+ # Lifecycle status of a case file:
51
+ #
52
+ # - `PENDING` - An upload URL has been issued and the file is awaiting upload
53
+ # - `READY` - The file has been uploaded and validated; a download URL is
54
+ # available
55
+ # - `REJECTED` - File validation failed; see `failure_reason` for details
56
+ sig do
57
+ returns(
58
+ Lithic::TransactionMonitoring::Cases::FileStatus::TaggedSymbol
59
+ )
60
+ end
61
+ attr_accessor :status
62
+
63
+ # Date and time at which the file record was last updated
64
+ sig { returns(Time) }
65
+ attr_accessor :updated
66
+
67
+ # Constraints applied to a file upload, returned alongside the upload URL so
68
+ # clients can validate before uploading
69
+ sig do
70
+ returns(
71
+ T.nilable(Lithic::TransactionMonitoring::Cases::UploadConstraints)
72
+ )
73
+ end
74
+ attr_reader :upload_constraints
75
+
76
+ sig do
77
+ params(
78
+ upload_constraints:
79
+ T.nilable(
80
+ Lithic::TransactionMonitoring::Cases::UploadConstraints::OrHash
81
+ )
82
+ ).void
83
+ end
84
+ attr_writer :upload_constraints
85
+
86
+ # Presigned URL the client uses to upload the file
87
+ sig { returns(T.nilable(String)) }
88
+ attr_accessor :upload_url
89
+
90
+ # Date and time at which the upload URL expires
91
+ sig { returns(T.nilable(Time)) }
92
+ attr_accessor :upload_url_expires
93
+
94
+ # A file attached to a case. Status-dependent fields are always present but may be
95
+ # `null`:
96
+ #
97
+ # - `upload_url`, `upload_url_expires`, and `upload_constraints` are populated
98
+ # when `status` is `PENDING` or `REJECTED`
99
+ # - `download_url` and `download_url_expires` are populated when `status` is
100
+ # `READY`
101
+ # - `failure_reason` is populated when `status` is `REJECTED`
102
+ sig do
103
+ params(
104
+ token: String,
105
+ created: Time,
106
+ download_url: T.nilable(String),
107
+ download_url_expires: T.nilable(Time),
108
+ failure_reason: T.nilable(String),
109
+ mime_type: T.nilable(String),
110
+ name: String,
111
+ size_bytes: T.nilable(Integer),
112
+ status:
113
+ Lithic::TransactionMonitoring::Cases::FileStatus::OrSymbol,
114
+ updated: Time,
115
+ upload_constraints:
116
+ T.nilable(
117
+ Lithic::TransactionMonitoring::Cases::UploadConstraints::OrHash
118
+ ),
119
+ upload_url: T.nilable(String),
120
+ upload_url_expires: T.nilable(Time)
121
+ ).returns(T.attached_class)
122
+ end
123
+ def self.new(
124
+ # Globally unique identifier for the file
125
+ token:,
126
+ # Date and time at which the file record was created
127
+ created:,
128
+ # Presigned URL the client uses to download the file
129
+ download_url:,
130
+ # Date and time at which the download URL expires
131
+ download_url_expires:,
132
+ # Reason the file was rejected, when applicable
133
+ failure_reason:,
134
+ # MIME type of the file, available once the file is ready
135
+ mime_type:,
136
+ # Name of the file
137
+ name:,
138
+ # Size of the file in bytes, available once the file is ready
139
+ size_bytes:,
140
+ # Lifecycle status of a case file:
141
+ #
142
+ # - `PENDING` - An upload URL has been issued and the file is awaiting upload
143
+ # - `READY` - The file has been uploaded and validated; a download URL is
144
+ # available
145
+ # - `REJECTED` - File validation failed; see `failure_reason` for details
146
+ status:,
147
+ # Date and time at which the file record was last updated
148
+ updated:,
149
+ # Constraints applied to a file upload, returned alongside the upload URL so
150
+ # clients can validate before uploading
151
+ upload_constraints:,
152
+ # Presigned URL the client uses to upload the file
153
+ upload_url:,
154
+ # Date and time at which the upload URL expires
155
+ upload_url_expires:
156
+ )
157
+ end
158
+
159
+ sig do
160
+ override.returns(
161
+ {
162
+ token: String,
163
+ created: Time,
164
+ download_url: T.nilable(String),
165
+ download_url_expires: T.nilable(Time),
166
+ failure_reason: T.nilable(String),
167
+ mime_type: T.nilable(String),
168
+ name: String,
169
+ size_bytes: T.nilable(Integer),
170
+ status:
171
+ Lithic::TransactionMonitoring::Cases::FileStatus::TaggedSymbol,
172
+ updated: Time,
173
+ upload_constraints:
174
+ T.nilable(
175
+ Lithic::TransactionMonitoring::Cases::UploadConstraints
176
+ ),
177
+ upload_url: T.nilable(String),
178
+ upload_url_expires: T.nilable(Time)
179
+ }
180
+ )
181
+ end
182
+ def to_hash
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end