Skip to content

Commit 1dbdb68

Browse files
feat(api): add TypeScript code rules, draft version state tracking to auth_rules
1 parent 489f19b commit 1dbdb68

28 files changed

Lines changed: 1691 additions & 788 deletions

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 189
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-ee2b9f00d3a9e0000e25abc0774615d6ad3300ce17b2f094e71b0229a907760f.yml
3-
openapi_spec_hash: 01d2cbf4ac692dba2f3831462db929e4
4-
config_hash: a45e6da4e7b46db4ff6819d1dba5d815
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-1e902917b2eae41d549957e790eb6b137969e451efe673815647deba330fe05a.yml
3+
openapi_spec_hash: 82cab06ce65462e60316939db630460a
4+
config_hash: 00b60697e692f86b5be297d939962921

lib/lithic.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@
126126
require_relative "lithic/models/auth_rules/event_stream"
127127
require_relative "lithic/models/auth_rules/merchant_lock_parameters"
128128
require_relative "lithic/models/auth_rules/report_stats"
129+
require_relative "lithic/models/auth_rules/rule_feature"
130+
require_relative "lithic/models/auth_rules/typescript_code_parameters"
129131
require_relative "lithic/models/auth_rules/v2/backtest_create_params"
130132
require_relative "lithic/models/auth_rules/v2/backtest_create_response"
131133
require_relative "lithic/models/auth_rules/v2/backtest_retrieve_params"
@@ -142,6 +144,7 @@
142144
require_relative "lithic/models/auth_rules/v2_retrieve_report_params"
143145
require_relative "lithic/models/auth_rules/v2_retrieve_report_response"
144146
require_relative "lithic/models/auth_rules/v2_update_params"
147+
require_relative "lithic/models/auth_rules/velocity_limit_filters"
145148
require_relative "lithic/models/auth_rules/velocity_limit_params"
146149
require_relative "lithic/models/auth_rules/velocity_limit_period"
147150
require_relative "lithic/models/auth_rules_backtest_report_created_webhook_event"

lib/lithic/models/auth_rules/auth_rule.rb

Lines changed: 67 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ class AuthRule < Lithic::Internal::Type::BaseModel
8282
# - `MERCHANT_LOCK`: AUTHORIZATION event stream.
8383
# - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
8484
# ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
85+
# - `TYPESCRIPT_CODE`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
86+
# ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
8587
#
8688
# @return [Symbol, Lithic::Models::AuthRules::AuthRule::Type]
8789
required :type, enum: -> { Lithic::AuthRules::AuthRule::Type }
@@ -127,7 +129,7 @@ class CurrentVersion < Lithic::Internal::Type::BaseModel
127129
# @!attribute parameters
128130
# Parameters for the Auth Rule
129131
#
130-
# @return [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters]
132+
# @return [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters]
131133
required :parameters, union: -> { Lithic::AuthRules::AuthRule::CurrentVersion::Parameters }
132134

133135
response_only do
@@ -143,7 +145,7 @@ class CurrentVersion < Lithic::Internal::Type::BaseModel
143145
# Some parameter documentations has been truncated, see
144146
# {Lithic::Models::AuthRules::AuthRule::CurrentVersion} for more details.
145147
#
146-
# @param parameters [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters] Parameters for the Auth Rule
148+
# @param parameters [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters] Parameters for the Auth Rule
147149
#
148150
# @param version [Integer] The version of the rule, this is incremented whenever the rule's parameters chan
149151

@@ -168,19 +170,44 @@ module Parameters
168170

169171
variant -> { Lithic::AuthRules::ConditionalTokenizationActionParameters }
170172

173+
# Parameters for defining a TypeScript code rule
174+
variant -> { Lithic::AuthRules::TypescriptCodeParameters }
175+
171176
# @!method self.variants
172-
# @return [Array(Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters)]
177+
# @return [Array(Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters)]
173178
end
174179
end
175180

176181
# @see Lithic::Models::AuthRules::AuthRule#draft_version
177182
class DraftVersion < Lithic::Internal::Type::BaseModel
183+
# @!attribute error
184+
# An error message if the draft version failed compilation. Populated when `state`
185+
# is `ERROR`, `null` otherwise.
186+
#
187+
# @return [String, nil]
188+
required :error, String, nil?: true
189+
178190
# @!attribute parameters
179191
# Parameters for the Auth Rule
180192
#
181-
# @return [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters]
193+
# @return [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters]
182194
required :parameters, union: -> { Lithic::AuthRules::AuthRule::DraftVersion::Parameters }
183195

196+
# @!attribute state
197+
# The state of the draft version. Most rules are created synchronously and the
198+
# state is immediately `SHADOWING`. Rules backed by TypeScript code are compiled
199+
# asynchronously — the state starts as `PENDING` and transitions to `SHADOWING` on
200+
# success or `ERROR` on failure.
201+
#
202+
# - `PENDING`: Compilation of the rule is in progress (TypeScript rules only).
203+
# - `SHADOWING`: The draft version is ready and evaluating in shadow mode
204+
# alongside the current active version. It can be promoted to the active
205+
# version.
206+
# - `ERROR`: Compilation of the rule failed. Check the `error` field for details.
207+
#
208+
# @return [Symbol, Lithic::Models::AuthRules::AuthRule::DraftVersion::State]
209+
required :state, enum: -> { Lithic::AuthRules::AuthRule::DraftVersion::State }
210+
184211
response_only do
185212
# @!attribute version
186213
# The version of the rule, this is incremented whenever the rule's parameters
@@ -190,11 +217,15 @@ class DraftVersion < Lithic::Internal::Type::BaseModel
190217
required :version, Integer
191218
end
192219

193-
# @!method initialize(parameters:, version:)
220+
# @!method initialize(error:, parameters:, state:, version:)
194221
# Some parameter documentations has been truncated, see
195222
# {Lithic::Models::AuthRules::AuthRule::DraftVersion} for more details.
196223
#
197-
# @param parameters [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters] Parameters for the Auth Rule
224+
# @param error [String, nil] An error message if the draft version failed compilation. Populated when `state`
225+
#
226+
# @param parameters [Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters] Parameters for the Auth Rule
227+
#
228+
# @param state [Symbol, Lithic::Models::AuthRules::AuthRule::DraftVersion::State] The state of the draft version. Most rules are created synchronously and the sta
198229
#
199230
# @param version [Integer] The version of the rule, this is incremented whenever the rule's parameters chan
200231

@@ -219,8 +250,34 @@ module Parameters
219250

220251
variant -> { Lithic::AuthRules::ConditionalTokenizationActionParameters }
221252

253+
# Parameters for defining a TypeScript code rule
254+
variant -> { Lithic::AuthRules::TypescriptCodeParameters }
255+
222256
# @!method self.variants
223-
# @return [Array(Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters)]
257+
# @return [Array(Lithic::Models::AuthRules::ConditionalBlockParameters, Lithic::Models::AuthRules::VelocityLimitParams, Lithic::Models::AuthRules::MerchantLockParameters, Lithic::Models::AuthRules::Conditional3DSActionParameters, Lithic::Models::AuthRules::ConditionalAuthorizationActionParameters, Lithic::Models::AuthRules::ConditionalACHActionParameters, Lithic::Models::AuthRules::ConditionalTokenizationActionParameters, Lithic::Models::AuthRules::TypescriptCodeParameters)]
258+
end
259+
260+
# The state of the draft version. Most rules are created synchronously and the
261+
# state is immediately `SHADOWING`. Rules backed by TypeScript code are compiled
262+
# asynchronously — the state starts as `PENDING` and transitions to `SHADOWING` on
263+
# success or `ERROR` on failure.
264+
#
265+
# - `PENDING`: Compilation of the rule is in progress (TypeScript rules only).
266+
# - `SHADOWING`: The draft version is ready and evaluating in shadow mode
267+
# alongside the current active version. It can be promoted to the active
268+
# version.
269+
# - `ERROR`: Compilation of the rule failed. Check the `error` field for details.
270+
#
271+
# @see Lithic::Models::AuthRules::AuthRule::DraftVersion#state
272+
module State
273+
extend Lithic::Internal::Type::Enum
274+
275+
PENDING = :PENDING
276+
SHADOWING = :SHADOWING
277+
ERROR = :ERROR
278+
279+
# @!method self.values
280+
# @return [Array<Symbol>]
224281
end
225282
end
226283

@@ -248,6 +305,8 @@ module State
248305
# - `MERCHANT_LOCK`: AUTHORIZATION event stream.
249306
# - `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
250307
# ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
308+
# - `TYPESCRIPT_CODE`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION,
309+
# ACH_CREDIT_RECEIPT, or ACH_DEBIT_RECEIPT event stream.
251310
#
252311
# @see Lithic::Models::AuthRules::AuthRule#type
253312
module Type
@@ -257,6 +316,7 @@ module Type
257316
VELOCITY_LIMIT = :VELOCITY_LIMIT
258317
MERCHANT_LOCK = :MERCHANT_LOCK
259318
CONDITIONAL_ACTION = :CONDITIONAL_ACTION
319+
TYPESCRIPT_CODE = :TYPESCRIPT_CODE
260320

261321
# @!method self.values
262322
# @return [Array<Symbol>]

0 commit comments

Comments
 (0)