Skip to content

Commit 3b82472

Browse files
feat(api): api update
1 parent 3447469 commit 3b82472

28 files changed

+2367
-20
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 139
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb%2Forb-77e112caf7b2a2c7b0248b7245b5730bc72ab0ea84ba5d0777e7d0604ae04d26.yml
3-
openapi_spec_hash: 966568dd08f34db64ba0ebace678268a
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/orb%2Forb-3c7ee3ec9931aaeeb5e015a598812cde9edc09f114adb8759ef4c2054c90f7dc.yml
3+
openapi_spec_hash: a14720041156fe4f353449142edacf0d
44
config_hash: 3279841440b02d4e8303c961d6983492

orb-java-core/src/main/kotlin/com/withorb/api/models/BillableMetric.kt

Lines changed: 176 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.withorb.api.core.ExcludeMissing
1111
import com.withorb.api.core.JsonField
1212
import com.withorb.api.core.JsonMissing
1313
import com.withorb.api.core.JsonValue
14+
import com.withorb.api.core.checkKnown
1415
import com.withorb.api.core.checkRequired
1516
import com.withorb.api.core.toImmutable
1617
import com.withorb.api.errors.OrbInvalidDataException
@@ -32,6 +33,7 @@ private constructor(
3233
private val metadata: JsonField<Metadata>,
3334
private val name: JsonField<String>,
3435
private val status: JsonField<Status>,
36+
private val parameterDefinitions: JsonField<List<ParameterDefinition>>,
3537
private val additionalProperties: MutableMap<String, JsonValue>,
3638
) {
3739

@@ -45,7 +47,10 @@ private constructor(
4547
@JsonProperty("metadata") @ExcludeMissing metadata: JsonField<Metadata> = JsonMissing.of(),
4648
@JsonProperty("name") @ExcludeMissing name: JsonField<String> = JsonMissing.of(),
4749
@JsonProperty("status") @ExcludeMissing status: JsonField<Status> = JsonMissing.of(),
48-
) : this(id, description, item, metadata, name, status, mutableMapOf())
50+
@JsonProperty("parameter_definitions")
51+
@ExcludeMissing
52+
parameterDefinitions: JsonField<List<ParameterDefinition>> = JsonMissing.of(),
53+
) : this(id, description, item, metadata, name, status, parameterDefinitions, mutableMapOf())
4954

5055
/**
5156
* @throws OrbInvalidDataException if the JSON field has an unexpected type or is unexpectedly
@@ -91,6 +96,13 @@ private constructor(
9196
*/
9297
fun status(): Status = status.getRequired("status")
9398

99+
/**
100+
* @throws OrbInvalidDataException if the JSON field has an unexpected type (e.g. if the server
101+
* responded with an unexpected value).
102+
*/
103+
fun parameterDefinitions(): Optional<List<ParameterDefinition>> =
104+
parameterDefinitions.getOptional("parameter_definitions")
105+
94106
/**
95107
* Returns the raw JSON value of [id].
96108
*
@@ -133,6 +145,16 @@ private constructor(
133145
*/
134146
@JsonProperty("status") @ExcludeMissing fun _status(): JsonField<Status> = status
135147

148+
/**
149+
* Returns the raw JSON value of [parameterDefinitions].
150+
*
151+
* Unlike [parameterDefinitions], this method doesn't throw if the JSON field has an unexpected
152+
* type.
153+
*/
154+
@JsonProperty("parameter_definitions")
155+
@ExcludeMissing
156+
fun _parameterDefinitions(): JsonField<List<ParameterDefinition>> = parameterDefinitions
157+
136158
@JsonAnySetter
137159
private fun putAdditionalProperty(key: String, value: JsonValue) {
138160
additionalProperties.put(key, value)
@@ -172,6 +194,7 @@ private constructor(
172194
private var metadata: JsonField<Metadata>? = null
173195
private var name: JsonField<String>? = null
174196
private var status: JsonField<Status>? = null
197+
private var parameterDefinitions: JsonField<MutableList<ParameterDefinition>>? = null
175198
private var additionalProperties: MutableMap<String, JsonValue> = mutableMapOf()
176199

177200
@JvmSynthetic
@@ -182,6 +205,7 @@ private constructor(
182205
metadata = billableMetric.metadata
183206
name = billableMetric.name
184207
status = billableMetric.status
208+
parameterDefinitions = billableMetric.parameterDefinitions.map { it.toMutableList() }
185209
additionalProperties = billableMetric.additionalProperties.toMutableMap()
186210
}
187211

@@ -260,6 +284,40 @@ private constructor(
260284
*/
261285
fun status(status: JsonField<Status>) = apply { this.status = status }
262286

287+
fun parameterDefinitions(parameterDefinitions: List<ParameterDefinition>?) =
288+
parameterDefinitions(JsonField.ofNullable(parameterDefinitions))
289+
290+
/**
291+
* Alias for calling [Builder.parameterDefinitions] with
292+
* `parameterDefinitions.orElse(null)`.
293+
*/
294+
fun parameterDefinitions(parameterDefinitions: Optional<List<ParameterDefinition>>) =
295+
parameterDefinitions(parameterDefinitions.getOrNull())
296+
297+
/**
298+
* Sets [Builder.parameterDefinitions] to an arbitrary JSON value.
299+
*
300+
* You should usually call [Builder.parameterDefinitions] with a well-typed
301+
* `List<ParameterDefinition>` value instead. This method is primarily for setting the field
302+
* to an undocumented or not yet supported value.
303+
*/
304+
fun parameterDefinitions(parameterDefinitions: JsonField<List<ParameterDefinition>>) =
305+
apply {
306+
this.parameterDefinitions = parameterDefinitions.map { it.toMutableList() }
307+
}
308+
309+
/**
310+
* Adds a single [ParameterDefinition] to [parameterDefinitions].
311+
*
312+
* @throws IllegalStateException if the field was previously set to a non-list.
313+
*/
314+
fun addParameterDefinition(parameterDefinition: ParameterDefinition) = apply {
315+
parameterDefinitions =
316+
(parameterDefinitions ?: JsonField.of(mutableListOf())).also {
317+
checkKnown("parameterDefinitions", it).add(parameterDefinition)
318+
}
319+
}
320+
263321
fun additionalProperties(additionalProperties: Map<String, JsonValue>) = apply {
264322
this.additionalProperties.clear()
265323
putAllAdditionalProperties(additionalProperties)
@@ -304,6 +362,7 @@ private constructor(
304362
checkRequired("metadata", metadata),
305363
checkRequired("name", name),
306364
checkRequired("status", status),
365+
(parameterDefinitions ?: JsonMissing.of()).map { it.toImmutable() },
307366
additionalProperties.toMutableMap(),
308367
)
309368
}
@@ -321,6 +380,7 @@ private constructor(
321380
metadata().validate()
322381
name()
323382
status().validate()
383+
parameterDefinitions().ifPresent { it.forEach { it.validate() } }
324384
validated = true
325385
}
326386

@@ -344,7 +404,8 @@ private constructor(
344404
(item.asKnown().getOrNull()?.validity() ?: 0) +
345405
(metadata.asKnown().getOrNull()?.validity() ?: 0) +
346406
(if (name.asKnown().isPresent) 1 else 0) +
347-
(status.asKnown().getOrNull()?.validity() ?: 0)
407+
(status.asKnown().getOrNull()?.validity() ?: 0) +
408+
(parameterDefinitions.asKnown().getOrNull()?.sumOf { it.validity().toInt() } ?: 0)
348409

349410
/**
350411
* User specified key-value pairs for the resource. If not present, this defaults to an empty
@@ -580,6 +641,107 @@ private constructor(
580641
override fun toString() = value.toString()
581642
}
582643

644+
class ParameterDefinition
645+
@JsonCreator
646+
private constructor(
647+
@com.fasterxml.jackson.annotation.JsonValue
648+
private val additionalProperties: Map<String, JsonValue>
649+
) {
650+
651+
@JsonAnyGetter
652+
@ExcludeMissing
653+
fun _additionalProperties(): Map<String, JsonValue> = additionalProperties
654+
655+
fun toBuilder() = Builder().from(this)
656+
657+
companion object {
658+
659+
/** Returns a mutable builder for constructing an instance of [ParameterDefinition]. */
660+
@JvmStatic fun builder() = Builder()
661+
}
662+
663+
/** A builder for [ParameterDefinition]. */
664+
class Builder internal constructor() {
665+
666+
private var additionalProperties: MutableMap<String, JsonValue> = mutableMapOf()
667+
668+
@JvmSynthetic
669+
internal fun from(parameterDefinition: ParameterDefinition) = apply {
670+
additionalProperties = parameterDefinition.additionalProperties.toMutableMap()
671+
}
672+
673+
fun additionalProperties(additionalProperties: Map<String, JsonValue>) = apply {
674+
this.additionalProperties.clear()
675+
putAllAdditionalProperties(additionalProperties)
676+
}
677+
678+
fun putAdditionalProperty(key: String, value: JsonValue) = apply {
679+
additionalProperties.put(key, value)
680+
}
681+
682+
fun putAllAdditionalProperties(additionalProperties: Map<String, JsonValue>) = apply {
683+
this.additionalProperties.putAll(additionalProperties)
684+
}
685+
686+
fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) }
687+
688+
fun removeAllAdditionalProperties(keys: Set<String>) = apply {
689+
keys.forEach(::removeAdditionalProperty)
690+
}
691+
692+
/**
693+
* Returns an immutable instance of [ParameterDefinition].
694+
*
695+
* Further updates to this [Builder] will not mutate the returned instance.
696+
*/
697+
fun build(): ParameterDefinition =
698+
ParameterDefinition(additionalProperties.toImmutable())
699+
}
700+
701+
private var validated: Boolean = false
702+
703+
fun validate(): ParameterDefinition = apply {
704+
if (validated) {
705+
return@apply
706+
}
707+
708+
validated = true
709+
}
710+
711+
fun isValid(): Boolean =
712+
try {
713+
validate()
714+
true
715+
} catch (e: OrbInvalidDataException) {
716+
false
717+
}
718+
719+
/**
720+
* Returns a score indicating how many valid values are contained in this object
721+
* recursively.
722+
*
723+
* Used for best match union deserialization.
724+
*/
725+
@JvmSynthetic
726+
internal fun validity(): Int =
727+
additionalProperties.count { (_, value) -> !value.isNull() && !value.isMissing() }
728+
729+
override fun equals(other: Any?): Boolean {
730+
if (this === other) {
731+
return true
732+
}
733+
734+
return other is ParameterDefinition &&
735+
additionalProperties == other.additionalProperties
736+
}
737+
738+
private val hashCode: Int by lazy { Objects.hash(additionalProperties) }
739+
740+
override fun hashCode(): Int = hashCode
741+
742+
override fun toString() = "ParameterDefinition{additionalProperties=$additionalProperties}"
743+
}
744+
583745
override fun equals(other: Any?): Boolean {
584746
if (this === other) {
585747
return true
@@ -592,15 +754,25 @@ private constructor(
592754
metadata == other.metadata &&
593755
name == other.name &&
594756
status == other.status &&
757+
parameterDefinitions == other.parameterDefinitions &&
595758
additionalProperties == other.additionalProperties
596759
}
597760

598761
private val hashCode: Int by lazy {
599-
Objects.hash(id, description, item, metadata, name, status, additionalProperties)
762+
Objects.hash(
763+
id,
764+
description,
765+
item,
766+
metadata,
767+
name,
768+
status,
769+
parameterDefinitions,
770+
additionalProperties,
771+
)
600772
}
601773

602774
override fun hashCode(): Int = hashCode
603775

604776
override fun toString() =
605-
"BillableMetric{id=$id, description=$description, item=$item, metadata=$metadata, name=$name, status=$status, additionalProperties=$additionalProperties}"
777+
"BillableMetric{id=$id, description=$description, item=$item, metadata=$metadata, name=$name, status=$status, parameterDefinitions=$parameterDefinitions, additionalProperties=$additionalProperties}"
606778
}

0 commit comments

Comments
 (0)