Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "4.0.1"
".": "4.1.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 118
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-e205b1f2da6a1f2caa229efa9ede63f2d3d2fedeeb2dd6ed3d880bafdcb0ab88.yml
openapi_spec_hash: c8aee2469a749f6a838b40c57e4b7b06
config_hash: 45dcba51451ba532959c020a0ddbf23c
configured_endpoints: 122
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-fadefdc7c7e30df47c09df323669b242ff90ee08e51f304175ace5274e0aab49.yml
openapi_spec_hash: 6d20f639d9ff8a097a34962da6218231
config_hash: 902654e60f5d659f2bfcfd903e17c46d
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 4.1.0 (2025-10-02)

Full Changelog: [v4.0.1...v4.1.0](https://github.com/openai/openai-java/compare/v4.0.1...v4.1.0)

### Features

* **api:** add support for realtime calls ([c4d224c](https://github.com/openai/openai-java/commit/c4d224cf9b37aa0535c2857f3159421898304ff6))

## 4.0.1 (2025-10-01)

Full Changelog: [v4.0.0...v4.0.1](https://github.com/openai/openai-java/compare/v4.0.0...v4.0.1)
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

<!-- x-release-please-start-version -->

[![Maven Central](https://img.shields.io/maven-central/v/com.openai/openai-java)](https://central.sonatype.com/artifact/com.openai/openai-java/4.0.1)
[![javadoc](https://javadoc.io/badge2/com.openai/openai-java/4.0.1/javadoc.svg)](https://javadoc.io/doc/com.openai/openai-java/4.0.1)
[![Maven Central](https://img.shields.io/maven-central/v/com.openai/openai-java)](https://central.sonatype.com/artifact/com.openai/openai-java/4.1.0)
[![javadoc](https://javadoc.io/badge2/com.openai/openai-java/4.1.0/javadoc.svg)](https://javadoc.io/doc/com.openai/openai-java/4.1.0)

<!-- x-release-please-end -->

The OpenAI Java SDK provides convenient access to the [OpenAI REST API](https://platform.openai.com/docs) from applications written in Java.

<!-- x-release-please-start-version -->

The REST API documentation can be found on [platform.openai.com](https://platform.openai.com/docs). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.openai/openai-java/4.0.1).
The REST API documentation can be found on [platform.openai.com](https://platform.openai.com/docs). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.openai/openai-java/4.1.0).

<!-- x-release-please-end -->

Expand All @@ -24,7 +24,7 @@ The REST API documentation can be found on [platform.openai.com](https://platfor
### Gradle

```kotlin
implementation("com.openai:openai-java:4.0.1")
implementation("com.openai:openai-java:4.1.0")
```

### Maven
Expand All @@ -33,7 +33,7 @@ implementation("com.openai:openai-java:4.0.1")
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>4.0.1</version>
<version>4.1.0</version>
</dependency>
```

Expand Down Expand Up @@ -1342,7 +1342,7 @@ If you're using Spring Boot, then you can use the SDK's [Spring Boot starter](ht
#### Gradle

```kotlin
implementation("com.openai:openai-java-spring-boot-starter:4.0.1")
implementation("com.openai:openai-java-spring-boot-starter:4.1.0")
```

#### Maven
Expand All @@ -1351,7 +1351,7 @@ implementation("com.openai:openai-java-spring-boot-starter:4.0.1")
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java-spring-boot-starter</artifactId>
<version>4.0.1</version>
<version>4.1.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "com.openai"
version = "4.0.1" // x-release-please-version
version = "4.1.0" // x-release-please-version
}

subprojects {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
// File generated from our OpenAPI spec by Stainless.

package com.openai.models.realtime.calls

import com.openai.core.JsonValue
import com.openai.core.Params
import com.openai.core.checkRequired
import com.openai.core.http.Headers
import com.openai.core.http.QueryParams
import com.openai.models.realtime.RealtimeSessionCreateRequest
import java.util.Objects
import java.util.Optional
import kotlin.jvm.optionals.getOrNull

/** Accept an incoming SIP call and configure the realtime session that will handle it. */
class CallAcceptParams
private constructor(
private val callId: String?,
private val realtimeSessionCreateRequest: RealtimeSessionCreateRequest,
private val additionalHeaders: Headers,
private val additionalQueryParams: QueryParams,
) : Params {

fun callId(): Optional<String> = Optional.ofNullable(callId)

/** Realtime session object configuration. */
fun realtimeSessionCreateRequest(): RealtimeSessionCreateRequest = realtimeSessionCreateRequest

fun _additionalBodyProperties(): Map<String, JsonValue> =
realtimeSessionCreateRequest._additionalProperties()

/** Additional headers to send with the request. */
fun _additionalHeaders(): Headers = additionalHeaders

/** Additional query param to send with the request. */
fun _additionalQueryParams(): QueryParams = additionalQueryParams

fun toBuilder() = Builder().from(this)

companion object {

/**
* Returns a mutable builder for constructing an instance of [CallAcceptParams].
*
* The following fields are required:
* ```java
* .realtimeSessionCreateRequest()
* ```
*/
@JvmStatic fun builder() = Builder()
}

/** A builder for [CallAcceptParams]. */
class Builder internal constructor() {

private var callId: String? = null
private var realtimeSessionCreateRequest: RealtimeSessionCreateRequest? = null
private var additionalHeaders: Headers.Builder = Headers.builder()
private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()

@JvmSynthetic
internal fun from(callAcceptParams: CallAcceptParams) = apply {
callId = callAcceptParams.callId
realtimeSessionCreateRequest = callAcceptParams.realtimeSessionCreateRequest
additionalHeaders = callAcceptParams.additionalHeaders.toBuilder()
additionalQueryParams = callAcceptParams.additionalQueryParams.toBuilder()
}

fun callId(callId: String?) = apply { this.callId = callId }

/** Alias for calling [Builder.callId] with `callId.orElse(null)`. */
fun callId(callId: Optional<String>) = callId(callId.getOrNull())

/** Realtime session object configuration. */
fun realtimeSessionCreateRequest(
realtimeSessionCreateRequest: RealtimeSessionCreateRequest
) = apply { this.realtimeSessionCreateRequest = realtimeSessionCreateRequest }

fun additionalHeaders(additionalHeaders: Headers) = apply {
this.additionalHeaders.clear()
putAllAdditionalHeaders(additionalHeaders)
}

fun additionalHeaders(additionalHeaders: Map<String, Iterable<String>>) = apply {
this.additionalHeaders.clear()
putAllAdditionalHeaders(additionalHeaders)
}

fun putAdditionalHeader(name: String, value: String) = apply {
additionalHeaders.put(name, value)
}

fun putAdditionalHeaders(name: String, values: Iterable<String>) = apply {
additionalHeaders.put(name, values)
}

fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply {
this.additionalHeaders.putAll(additionalHeaders)
}

fun putAllAdditionalHeaders(additionalHeaders: Map<String, Iterable<String>>) = apply {
this.additionalHeaders.putAll(additionalHeaders)
}

fun replaceAdditionalHeaders(name: String, value: String) = apply {
additionalHeaders.replace(name, value)
}

fun replaceAdditionalHeaders(name: String, values: Iterable<String>) = apply {
additionalHeaders.replace(name, values)
}

fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply {
this.additionalHeaders.replaceAll(additionalHeaders)
}

fun replaceAllAdditionalHeaders(additionalHeaders: Map<String, Iterable<String>>) = apply {
this.additionalHeaders.replaceAll(additionalHeaders)
}

fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) }

fun removeAllAdditionalHeaders(names: Set<String>) = apply {
additionalHeaders.removeAll(names)
}

fun additionalQueryParams(additionalQueryParams: QueryParams) = apply {
this.additionalQueryParams.clear()
putAllAdditionalQueryParams(additionalQueryParams)
}

fun additionalQueryParams(additionalQueryParams: Map<String, Iterable<String>>) = apply {
this.additionalQueryParams.clear()
putAllAdditionalQueryParams(additionalQueryParams)
}

fun putAdditionalQueryParam(key: String, value: String) = apply {
additionalQueryParams.put(key, value)
}

fun putAdditionalQueryParams(key: String, values: Iterable<String>) = apply {
additionalQueryParams.put(key, values)
}

fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
this.additionalQueryParams.putAll(additionalQueryParams)
}

fun putAllAdditionalQueryParams(additionalQueryParams: Map<String, Iterable<String>>) =
apply {
this.additionalQueryParams.putAll(additionalQueryParams)
}

fun replaceAdditionalQueryParams(key: String, value: String) = apply {
additionalQueryParams.replace(key, value)
}

fun replaceAdditionalQueryParams(key: String, values: Iterable<String>) = apply {
additionalQueryParams.replace(key, values)
}

fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
this.additionalQueryParams.replaceAll(additionalQueryParams)
}

fun replaceAllAdditionalQueryParams(additionalQueryParams: Map<String, Iterable<String>>) =
apply {
this.additionalQueryParams.replaceAll(additionalQueryParams)
}

fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) }

fun removeAllAdditionalQueryParams(keys: Set<String>) = apply {
additionalQueryParams.removeAll(keys)
}

/**
* Returns an immutable instance of [CallAcceptParams].
*
* Further updates to this [Builder] will not mutate the returned instance.
*
* The following fields are required:
* ```java
* .realtimeSessionCreateRequest()
* ```
*
* @throws IllegalStateException if any required field is unset.
*/
fun build(): CallAcceptParams =
CallAcceptParams(
callId,
checkRequired("realtimeSessionCreateRequest", realtimeSessionCreateRequest),
additionalHeaders.build(),
additionalQueryParams.build(),
)
}

fun _body(): RealtimeSessionCreateRequest = realtimeSessionCreateRequest

fun _pathParam(index: Int): String =
when (index) {
0 -> callId ?: ""
else -> ""
}

override fun _headers(): Headers = additionalHeaders

override fun _queryParams(): QueryParams = additionalQueryParams

override fun equals(other: Any?): Boolean {
if (this === other) {
return true
}

return other is CallAcceptParams &&
callId == other.callId &&
realtimeSessionCreateRequest == other.realtimeSessionCreateRequest &&
additionalHeaders == other.additionalHeaders &&
additionalQueryParams == other.additionalQueryParams
}

override fun hashCode(): Int =
Objects.hash(callId, realtimeSessionCreateRequest, additionalHeaders, additionalQueryParams)

override fun toString() =
"CallAcceptParams{callId=$callId, realtimeSessionCreateRequest=$realtimeSessionCreateRequest, additionalHeaders=$additionalHeaders, additionalQueryParams=$additionalQueryParams}"
}
Loading
Loading