Skip to content

Commit fc7b4b6

Browse files
feat(api): add support for realtime calls
1 parent adf8291 commit fc7b4b6

File tree

19 files changed

+2975
-4
lines changed

19 files changed

+2975
-4
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 118
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-e205b1f2da6a1f2caa229efa9ede63f2d3d2fedeeb2dd6ed3d880bafdcb0ab88.yml
3-
openapi_spec_hash: c8aee2469a749f6a838b40c57e4b7b06
4-
config_hash: 45dcba51451ba532959c020a0ddbf23c
1+
configured_endpoints: 122
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-fadefdc7c7e30df47c09df323669b242ff90ee08e51f304175ace5274e0aab49.yml
3+
openapi_spec_hash: 6d20f639d9ff8a097a34962da6218231
4+
config_hash: 902654e60f5d659f2bfcfd903e17c46d
Lines changed: 227 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,227 @@
1+
// File generated from our OpenAPI spec by Stainless.
2+
3+
package com.openai.models.realtime.calls
4+
5+
import com.openai.core.JsonValue
6+
import com.openai.core.Params
7+
import com.openai.core.checkRequired
8+
import com.openai.core.http.Headers
9+
import com.openai.core.http.QueryParams
10+
import com.openai.models.realtime.RealtimeSessionCreateRequest
11+
import java.util.Objects
12+
import java.util.Optional
13+
import kotlin.jvm.optionals.getOrNull
14+
15+
/** Accept an incoming SIP call and configure the realtime session that will handle it. */
16+
class CallAcceptParams
17+
private constructor(
18+
private val callId: String?,
19+
private val realtimeSessionCreateRequest: RealtimeSessionCreateRequest,
20+
private val additionalHeaders: Headers,
21+
private val additionalQueryParams: QueryParams,
22+
) : Params {
23+
24+
fun callId(): Optional<String> = Optional.ofNullable(callId)
25+
26+
/** Realtime session object configuration. */
27+
fun realtimeSessionCreateRequest(): RealtimeSessionCreateRequest = realtimeSessionCreateRequest
28+
29+
fun _additionalBodyProperties(): Map<String, JsonValue> =
30+
realtimeSessionCreateRequest._additionalProperties()
31+
32+
/** Additional headers to send with the request. */
33+
fun _additionalHeaders(): Headers = additionalHeaders
34+
35+
/** Additional query param to send with the request. */
36+
fun _additionalQueryParams(): QueryParams = additionalQueryParams
37+
38+
fun toBuilder() = Builder().from(this)
39+
40+
companion object {
41+
42+
/**
43+
* Returns a mutable builder for constructing an instance of [CallAcceptParams].
44+
*
45+
* The following fields are required:
46+
* ```java
47+
* .realtimeSessionCreateRequest()
48+
* ```
49+
*/
50+
@JvmStatic fun builder() = Builder()
51+
}
52+
53+
/** A builder for [CallAcceptParams]. */
54+
class Builder internal constructor() {
55+
56+
private var callId: String? = null
57+
private var realtimeSessionCreateRequest: RealtimeSessionCreateRequest? = null
58+
private var additionalHeaders: Headers.Builder = Headers.builder()
59+
private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
60+
61+
@JvmSynthetic
62+
internal fun from(callAcceptParams: CallAcceptParams) = apply {
63+
callId = callAcceptParams.callId
64+
realtimeSessionCreateRequest = callAcceptParams.realtimeSessionCreateRequest
65+
additionalHeaders = callAcceptParams.additionalHeaders.toBuilder()
66+
additionalQueryParams = callAcceptParams.additionalQueryParams.toBuilder()
67+
}
68+
69+
fun callId(callId: String?) = apply { this.callId = callId }
70+
71+
/** Alias for calling [Builder.callId] with `callId.orElse(null)`. */
72+
fun callId(callId: Optional<String>) = callId(callId.getOrNull())
73+
74+
/** Realtime session object configuration. */
75+
fun realtimeSessionCreateRequest(
76+
realtimeSessionCreateRequest: RealtimeSessionCreateRequest
77+
) = apply { this.realtimeSessionCreateRequest = realtimeSessionCreateRequest }
78+
79+
fun additionalHeaders(additionalHeaders: Headers) = apply {
80+
this.additionalHeaders.clear()
81+
putAllAdditionalHeaders(additionalHeaders)
82+
}
83+
84+
fun additionalHeaders(additionalHeaders: Map<String, Iterable<String>>) = apply {
85+
this.additionalHeaders.clear()
86+
putAllAdditionalHeaders(additionalHeaders)
87+
}
88+
89+
fun putAdditionalHeader(name: String, value: String) = apply {
90+
additionalHeaders.put(name, value)
91+
}
92+
93+
fun putAdditionalHeaders(name: String, values: Iterable<String>) = apply {
94+
additionalHeaders.put(name, values)
95+
}
96+
97+
fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply {
98+
this.additionalHeaders.putAll(additionalHeaders)
99+
}
100+
101+
fun putAllAdditionalHeaders(additionalHeaders: Map<String, Iterable<String>>) = apply {
102+
this.additionalHeaders.putAll(additionalHeaders)
103+
}
104+
105+
fun replaceAdditionalHeaders(name: String, value: String) = apply {
106+
additionalHeaders.replace(name, value)
107+
}
108+
109+
fun replaceAdditionalHeaders(name: String, values: Iterable<String>) = apply {
110+
additionalHeaders.replace(name, values)
111+
}
112+
113+
fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply {
114+
this.additionalHeaders.replaceAll(additionalHeaders)
115+
}
116+
117+
fun replaceAllAdditionalHeaders(additionalHeaders: Map<String, Iterable<String>>) = apply {
118+
this.additionalHeaders.replaceAll(additionalHeaders)
119+
}
120+
121+
fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) }
122+
123+
fun removeAllAdditionalHeaders(names: Set<String>) = apply {
124+
additionalHeaders.removeAll(names)
125+
}
126+
127+
fun additionalQueryParams(additionalQueryParams: QueryParams) = apply {
128+
this.additionalQueryParams.clear()
129+
putAllAdditionalQueryParams(additionalQueryParams)
130+
}
131+
132+
fun additionalQueryParams(additionalQueryParams: Map<String, Iterable<String>>) = apply {
133+
this.additionalQueryParams.clear()
134+
putAllAdditionalQueryParams(additionalQueryParams)
135+
}
136+
137+
fun putAdditionalQueryParam(key: String, value: String) = apply {
138+
additionalQueryParams.put(key, value)
139+
}
140+
141+
fun putAdditionalQueryParams(key: String, values: Iterable<String>) = apply {
142+
additionalQueryParams.put(key, values)
143+
}
144+
145+
fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
146+
this.additionalQueryParams.putAll(additionalQueryParams)
147+
}
148+
149+
fun putAllAdditionalQueryParams(additionalQueryParams: Map<String, Iterable<String>>) =
150+
apply {
151+
this.additionalQueryParams.putAll(additionalQueryParams)
152+
}
153+
154+
fun replaceAdditionalQueryParams(key: String, value: String) = apply {
155+
additionalQueryParams.replace(key, value)
156+
}
157+
158+
fun replaceAdditionalQueryParams(key: String, values: Iterable<String>) = apply {
159+
additionalQueryParams.replace(key, values)
160+
}
161+
162+
fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
163+
this.additionalQueryParams.replaceAll(additionalQueryParams)
164+
}
165+
166+
fun replaceAllAdditionalQueryParams(additionalQueryParams: Map<String, Iterable<String>>) =
167+
apply {
168+
this.additionalQueryParams.replaceAll(additionalQueryParams)
169+
}
170+
171+
fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) }
172+
173+
fun removeAllAdditionalQueryParams(keys: Set<String>) = apply {
174+
additionalQueryParams.removeAll(keys)
175+
}
176+
177+
/**
178+
* Returns an immutable instance of [CallAcceptParams].
179+
*
180+
* Further updates to this [Builder] will not mutate the returned instance.
181+
*
182+
* The following fields are required:
183+
* ```java
184+
* .realtimeSessionCreateRequest()
185+
* ```
186+
*
187+
* @throws IllegalStateException if any required field is unset.
188+
*/
189+
fun build(): CallAcceptParams =
190+
CallAcceptParams(
191+
callId,
192+
checkRequired("realtimeSessionCreateRequest", realtimeSessionCreateRequest),
193+
additionalHeaders.build(),
194+
additionalQueryParams.build(),
195+
)
196+
}
197+
198+
fun _body(): RealtimeSessionCreateRequest = realtimeSessionCreateRequest
199+
200+
fun _pathParam(index: Int): String =
201+
when (index) {
202+
0 -> callId ?: ""
203+
else -> ""
204+
}
205+
206+
override fun _headers(): Headers = additionalHeaders
207+
208+
override fun _queryParams(): QueryParams = additionalQueryParams
209+
210+
override fun equals(other: Any?): Boolean {
211+
if (this === other) {
212+
return true
213+
}
214+
215+
return other is CallAcceptParams &&
216+
callId == other.callId &&
217+
realtimeSessionCreateRequest == other.realtimeSessionCreateRequest &&
218+
additionalHeaders == other.additionalHeaders &&
219+
additionalQueryParams == other.additionalQueryParams
220+
}
221+
222+
override fun hashCode(): Int =
223+
Objects.hash(callId, realtimeSessionCreateRequest, additionalHeaders, additionalQueryParams)
224+
225+
override fun toString() =
226+
"CallAcceptParams{callId=$callId, realtimeSessionCreateRequest=$realtimeSessionCreateRequest, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}"
227+
}

0 commit comments

Comments
 (0)