Skip to content

Commit 653fcbc

Browse files
stainless-app[bot]stainless-bot
authored andcommitted
feat(types)!: improve auth rules types (#444)
1 parent db55dc2 commit 653fcbc

24 files changed

+1068
-14827
lines changed

lithic-java-core/src/main/kotlin/com/lithic/api/models/AuthRuleCondition.kt

Lines changed: 525 additions & 0 deletions
Large diffs are not rendered by default.

lithic-java-core/src/main/kotlin/com/lithic/api/models/AuthRuleV2CreateParams.kt

Lines changed: 47 additions & 2357 deletions
Large diffs are not rendered by default.

lithic-java-core/src/main/kotlin/com/lithic/api/models/AuthRuleV2DraftParams.kt

Lines changed: 2 additions & 760 deletions
Large diffs are not rendered by default.
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
// File generated from our OpenAPI spec by Stainless.
2+
3+
package com.lithic.api.models
4+
5+
import com.fasterxml.jackson.annotation.JsonCreator
6+
import com.lithic.api.core.Enum
7+
import com.lithic.api.core.JsonField
8+
import com.lithic.api.errors.LithicInvalidDataException
9+
10+
class ConditionalAttribute
11+
@JsonCreator
12+
private constructor(
13+
private val value: JsonField<String>,
14+
) : Enum {
15+
16+
@com.fasterxml.jackson.annotation.JsonValue fun _value(): JsonField<String> = value
17+
18+
companion object {
19+
20+
@JvmField val MCC = of("MCC")
21+
22+
@JvmField val COUNTRY = of("COUNTRY")
23+
24+
@JvmField val CURRENCY = of("CURRENCY")
25+
26+
@JvmField val MERCHANT_ID = of("MERCHANT_ID")
27+
28+
@JvmField val DESCRIPTOR = of("DESCRIPTOR")
29+
30+
@JvmField val LIABILITY_SHIFT = of("LIABILITY_SHIFT")
31+
32+
@JvmField val PAN_ENTRY_MODE = of("PAN_ENTRY_MODE")
33+
34+
@JvmField val TRANSACTION_AMOUNT = of("TRANSACTION_AMOUNT")
35+
36+
@JvmField val RISK_SCORE = of("RISK_SCORE")
37+
38+
@JvmField val CARD_TRANSACTION_COUNT_1_H = of("CARD_TRANSACTION_COUNT_1H")
39+
40+
@JvmField val CARD_TRANSACTION_COUNT_24_H = of("CARD_TRANSACTION_COUNT_24H")
41+
42+
@JvmStatic fun of(value: String) = ConditionalAttribute(JsonField.of(value))
43+
}
44+
45+
enum class Known {
46+
MCC,
47+
COUNTRY,
48+
CURRENCY,
49+
MERCHANT_ID,
50+
DESCRIPTOR,
51+
LIABILITY_SHIFT,
52+
PAN_ENTRY_MODE,
53+
TRANSACTION_AMOUNT,
54+
RISK_SCORE,
55+
CARD_TRANSACTION_COUNT_1_H,
56+
CARD_TRANSACTION_COUNT_24_H,
57+
}
58+
59+
enum class Value {
60+
MCC,
61+
COUNTRY,
62+
CURRENCY,
63+
MERCHANT_ID,
64+
DESCRIPTOR,
65+
LIABILITY_SHIFT,
66+
PAN_ENTRY_MODE,
67+
TRANSACTION_AMOUNT,
68+
RISK_SCORE,
69+
CARD_TRANSACTION_COUNT_1_H,
70+
CARD_TRANSACTION_COUNT_24_H,
71+
_UNKNOWN,
72+
}
73+
74+
fun value(): Value =
75+
when (this) {
76+
MCC -> Value.MCC
77+
COUNTRY -> Value.COUNTRY
78+
CURRENCY -> Value.CURRENCY
79+
MERCHANT_ID -> Value.MERCHANT_ID
80+
DESCRIPTOR -> Value.DESCRIPTOR
81+
LIABILITY_SHIFT -> Value.LIABILITY_SHIFT
82+
PAN_ENTRY_MODE -> Value.PAN_ENTRY_MODE
83+
TRANSACTION_AMOUNT -> Value.TRANSACTION_AMOUNT
84+
RISK_SCORE -> Value.RISK_SCORE
85+
CARD_TRANSACTION_COUNT_1_H -> Value.CARD_TRANSACTION_COUNT_1_H
86+
CARD_TRANSACTION_COUNT_24_H -> Value.CARD_TRANSACTION_COUNT_24_H
87+
else -> Value._UNKNOWN
88+
}
89+
90+
fun known(): Known =
91+
when (this) {
92+
MCC -> Known.MCC
93+
COUNTRY -> Known.COUNTRY
94+
CURRENCY -> Known.CURRENCY
95+
MERCHANT_ID -> Known.MERCHANT_ID
96+
DESCRIPTOR -> Known.DESCRIPTOR
97+
LIABILITY_SHIFT -> Known.LIABILITY_SHIFT
98+
PAN_ENTRY_MODE -> Known.PAN_ENTRY_MODE
99+
TRANSACTION_AMOUNT -> Known.TRANSACTION_AMOUNT
100+
RISK_SCORE -> Known.RISK_SCORE
101+
CARD_TRANSACTION_COUNT_1_H -> Known.CARD_TRANSACTION_COUNT_1_H
102+
CARD_TRANSACTION_COUNT_24_H -> Known.CARD_TRANSACTION_COUNT_24_H
103+
else -> throw LithicInvalidDataException("Unknown ConditionalAttribute: $value")
104+
}
105+
106+
fun asString(): String = _value().asStringOrThrow()
107+
108+
override fun equals(other: Any?): Boolean {
109+
if (this === other) {
110+
return true
111+
}
112+
113+
return /* spotless:off */ other is ConditionalAttribute && value == other.value /* spotless:on */
114+
}
115+
116+
override fun hashCode() = value.hashCode()
117+
118+
override fun toString() = value.toString()
119+
}
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
// File generated from our OpenAPI spec by Stainless.
2+
3+
package com.lithic.api.models
4+
5+
import com.fasterxml.jackson.annotation.JsonAnyGetter
6+
import com.fasterxml.jackson.annotation.JsonAnySetter
7+
import com.fasterxml.jackson.annotation.JsonCreator
8+
import com.fasterxml.jackson.annotation.JsonProperty
9+
import com.lithic.api.core.ExcludeMissing
10+
import com.lithic.api.core.JsonField
11+
import com.lithic.api.core.JsonMissing
12+
import com.lithic.api.core.JsonValue
13+
import com.lithic.api.core.NoAutoDetect
14+
import com.lithic.api.core.checkRequired
15+
import com.lithic.api.core.immutableEmptyMap
16+
import com.lithic.api.core.toImmutable
17+
import java.util.Objects
18+
19+
@NoAutoDetect
20+
class ConditionalBlockParameters
21+
@JsonCreator
22+
private constructor(
23+
@JsonProperty("conditions")
24+
@ExcludeMissing
25+
private val conditions: JsonField<List<AuthRuleCondition>> = JsonMissing.of(),
26+
@JsonAnySetter private val additionalProperties: Map<String, JsonValue> = immutableEmptyMap(),
27+
) {
28+
29+
fun conditions(): List<AuthRuleCondition> = conditions.getRequired("conditions")
30+
31+
@JsonProperty("conditions")
32+
@ExcludeMissing
33+
fun _conditions(): JsonField<List<AuthRuleCondition>> = conditions
34+
35+
@JsonAnyGetter
36+
@ExcludeMissing
37+
fun _additionalProperties(): Map<String, JsonValue> = additionalProperties
38+
39+
private var validated: Boolean = false
40+
41+
fun validate(): ConditionalBlockParameters = apply {
42+
if (validated) {
43+
return@apply
44+
}
45+
46+
conditions().forEach { it.validate() }
47+
validated = true
48+
}
49+
50+
fun toBuilder() = Builder().from(this)
51+
52+
companion object {
53+
54+
@JvmStatic fun builder() = Builder()
55+
}
56+
57+
class Builder {
58+
59+
private var conditions: JsonField<MutableList<AuthRuleCondition>>? = null
60+
private var additionalProperties: MutableMap<String, JsonValue> = mutableMapOf()
61+
62+
@JvmSynthetic
63+
internal fun from(conditionalBlockParameters: ConditionalBlockParameters) = apply {
64+
conditions = conditionalBlockParameters.conditions.map { it.toMutableList() }
65+
additionalProperties = conditionalBlockParameters.additionalProperties.toMutableMap()
66+
}
67+
68+
fun conditions(conditions: List<AuthRuleCondition>) = conditions(JsonField.of(conditions))
69+
70+
fun conditions(conditions: JsonField<List<AuthRuleCondition>>) = apply {
71+
this.conditions = conditions.map { it.toMutableList() }
72+
}
73+
74+
fun addCondition(condition: AuthRuleCondition) = apply {
75+
conditions =
76+
(conditions ?: JsonField.of(mutableListOf())).apply {
77+
asKnown()
78+
.orElseThrow {
79+
IllegalStateException(
80+
"Field was set to non-list type: ${javaClass.simpleName}"
81+
)
82+
}
83+
.add(condition)
84+
}
85+
}
86+
87+
fun additionalProperties(additionalProperties: Map<String, JsonValue>) = apply {
88+
this.additionalProperties.clear()
89+
putAllAdditionalProperties(additionalProperties)
90+
}
91+
92+
fun putAdditionalProperty(key: String, value: JsonValue) = apply {
93+
additionalProperties.put(key, value)
94+
}
95+
96+
fun putAllAdditionalProperties(additionalProperties: Map<String, JsonValue>) = apply {
97+
this.additionalProperties.putAll(additionalProperties)
98+
}
99+
100+
fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) }
101+
102+
fun removeAllAdditionalProperties(keys: Set<String>) = apply {
103+
keys.forEach(::removeAdditionalProperty)
104+
}
105+
106+
fun build(): ConditionalBlockParameters =
107+
ConditionalBlockParameters(
108+
checkRequired("conditions", conditions).map { it.toImmutable() },
109+
additionalProperties.toImmutable()
110+
)
111+
}
112+
113+
override fun equals(other: Any?): Boolean {
114+
if (this === other) {
115+
return true
116+
}
117+
118+
return /* spotless:off */ other is ConditionalBlockParameters && conditions == other.conditions && additionalProperties == other.additionalProperties /* spotless:on */
119+
}
120+
121+
/* spotless:off */
122+
private val hashCode: Int by lazy { Objects.hash(conditions, additionalProperties) }
123+
/* spotless:on */
124+
125+
override fun hashCode(): Int = hashCode
126+
127+
override fun toString() =
128+
"ConditionalBlockParameters{conditions=$conditions, additionalProperties=$additionalProperties}"
129+
}

0 commit comments

Comments
 (0)