diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 6b7b74c5..cce92405 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.3.0"
+ ".": "0.3.1"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index f925a83b..04a3a0e4 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,3 +1,3 @@
-configured_endpoints: 25
-openapi_spec_hash: 4eff18b3478c98a9b257ac27fdeb6b49
-config_hash: b415187e3925c414fb2597cdd0a11859
+configured_endpoints: 26
+openapi_spec_hash: 6f6cb98b7755d18274dd51e857508336
+config_hash: cc9a32249c08143687799eb8de187d6a
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ff466380..016056b7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 0.3.1 (2026-01-12)
+
+Full Changelog: [v0.3.0...v0.3.1](https://github.com/openlayer-ai/openlayer-java/compare/v0.3.0...v0.3.1)
+
+### Chores
+
+* **closes OPEN-8576:** expose delete project endpoint ([2084dab](https://github.com/openlayer-ai/openlayer-java/commit/2084dabf6b839d9454718259b20a106a5fb41a4a))
+
## 0.3.0 (2026-01-09)
Full Changelog: [v0.2.0...v0.3.0](https://github.com/openlayer-ai/openlayer-java/compare/v0.2.0...v0.3.0)
diff --git a/README.md b/README.md
index 0bc9b920..df8fa8e2 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,8 @@
-[](https://central.sonatype.com/artifact/com.openlayer.api/openlayer-java/0.3.0)
-[](https://javadoc.io/doc/com.openlayer.api/openlayer-java/0.3.0)
+[](https://central.sonatype.com/artifact/com.openlayer.api/openlayer-java/0.3.1)
+[](https://javadoc.io/doc/com.openlayer.api/openlayer-java/0.3.1)
@@ -13,7 +13,7 @@ It is generated with [Stainless](https://www.stainless.com/).
-The REST API documentation can be found on [openlayer.com](https://openlayer.com/docs/api-reference/rest/overview). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.openlayer.api/openlayer-java/0.3.0).
+The REST API documentation can be found on [openlayer.com](https://openlayer.com/docs/api-reference/rest/overview). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.openlayer.api/openlayer-java/0.3.1).
@@ -24,7 +24,7 @@ The REST API documentation can be found on [openlayer.com](https://openlayer.com
### Gradle
```kotlin
-implementation("com.openlayer.api:openlayer-java:0.3.0")
+implementation("com.openlayer.api:openlayer-java:0.3.1")
```
### Maven
@@ -33,7 +33,7 @@ implementation("com.openlayer.api:openlayer-java:0.3.0")
com.openlayer.api
openlayer-java
- 0.3.0
+ 0.3.1
```
diff --git a/build.gradle.kts b/build.gradle.kts
index d977354f..a90fbafa 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,7 +8,7 @@ repositories {
allprojects {
group = "com.openlayer.api"
- version = "0.3.0" // x-release-please-version
+ version = "0.3.1" // x-release-please-version
}
subprojects {
diff --git a/openlayer-java-core/src/main/kotlin/com/openlayer/api/models/projects/ProjectDeleteParams.kt b/openlayer-java-core/src/main/kotlin/com/openlayer/api/models/projects/ProjectDeleteParams.kt
new file mode 100644
index 00000000..960ec915
--- /dev/null
+++ b/openlayer-java-core/src/main/kotlin/com/openlayer/api/models/projects/ProjectDeleteParams.kt
@@ -0,0 +1,229 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package com.openlayer.api.models.projects
+
+import com.openlayer.api.core.JsonValue
+import com.openlayer.api.core.Params
+import com.openlayer.api.core.http.Headers
+import com.openlayer.api.core.http.QueryParams
+import com.openlayer.api.core.toImmutable
+import java.util.Objects
+import java.util.Optional
+import kotlin.jvm.optionals.getOrNull
+
+/** Delete a project by its ID. */
+class ProjectDeleteParams
+private constructor(
+ private val projectId: String?,
+ private val additionalHeaders: Headers,
+ private val additionalQueryParams: QueryParams,
+ private val additionalBodyProperties: Map,
+) : Params {
+
+ fun projectId(): Optional = Optional.ofNullable(projectId)
+
+ /** Additional body properties to send with the request. */
+ fun _additionalBodyProperties(): Map = additionalBodyProperties
+
+ /** 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 {
+
+ @JvmStatic fun none(): ProjectDeleteParams = builder().build()
+
+ /** Returns a mutable builder for constructing an instance of [ProjectDeleteParams]. */
+ @JvmStatic fun builder() = Builder()
+ }
+
+ /** A builder for [ProjectDeleteParams]. */
+ class Builder internal constructor() {
+
+ private var projectId: String? = null
+ private var additionalHeaders: Headers.Builder = Headers.builder()
+ private var additionalQueryParams: QueryParams.Builder = QueryParams.builder()
+ private var additionalBodyProperties: MutableMap = mutableMapOf()
+
+ @JvmSynthetic
+ internal fun from(projectDeleteParams: ProjectDeleteParams) = apply {
+ projectId = projectDeleteParams.projectId
+ additionalHeaders = projectDeleteParams.additionalHeaders.toBuilder()
+ additionalQueryParams = projectDeleteParams.additionalQueryParams.toBuilder()
+ additionalBodyProperties = projectDeleteParams.additionalBodyProperties.toMutableMap()
+ }
+
+ fun projectId(projectId: String?) = apply { this.projectId = projectId }
+
+ /** Alias for calling [Builder.projectId] with `projectId.orElse(null)`. */
+ fun projectId(projectId: Optional) = projectId(projectId.getOrNull())
+
+ fun additionalHeaders(additionalHeaders: Headers) = apply {
+ this.additionalHeaders.clear()
+ putAllAdditionalHeaders(additionalHeaders)
+ }
+
+ fun additionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.clear()
+ putAllAdditionalHeaders(additionalHeaders)
+ }
+
+ fun putAdditionalHeader(name: String, value: String) = apply {
+ additionalHeaders.put(name, value)
+ }
+
+ fun putAdditionalHeaders(name: String, values: Iterable) = apply {
+ additionalHeaders.put(name, values)
+ }
+
+ fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply {
+ this.additionalHeaders.putAll(additionalHeaders)
+ }
+
+ fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.putAll(additionalHeaders)
+ }
+
+ fun replaceAdditionalHeaders(name: String, value: String) = apply {
+ additionalHeaders.replace(name, value)
+ }
+
+ fun replaceAdditionalHeaders(name: String, values: Iterable) = apply {
+ additionalHeaders.replace(name, values)
+ }
+
+ fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply {
+ this.additionalHeaders.replaceAll(additionalHeaders)
+ }
+
+ fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply {
+ this.additionalHeaders.replaceAll(additionalHeaders)
+ }
+
+ fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) }
+
+ fun removeAllAdditionalHeaders(names: Set) = apply {
+ additionalHeaders.removeAll(names)
+ }
+
+ fun additionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.clear()
+ putAllAdditionalQueryParams(additionalQueryParams)
+ }
+
+ fun additionalQueryParams(additionalQueryParams: Map>) = apply {
+ this.additionalQueryParams.clear()
+ putAllAdditionalQueryParams(additionalQueryParams)
+ }
+
+ fun putAdditionalQueryParam(key: String, value: String) = apply {
+ additionalQueryParams.put(key, value)
+ }
+
+ fun putAdditionalQueryParams(key: String, values: Iterable) = apply {
+ additionalQueryParams.put(key, values)
+ }
+
+ fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.putAll(additionalQueryParams)
+ }
+
+ fun putAllAdditionalQueryParams(additionalQueryParams: Map>) =
+ apply {
+ this.additionalQueryParams.putAll(additionalQueryParams)
+ }
+
+ fun replaceAdditionalQueryParams(key: String, value: String) = apply {
+ additionalQueryParams.replace(key, value)
+ }
+
+ fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply {
+ additionalQueryParams.replace(key, values)
+ }
+
+ fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply {
+ this.additionalQueryParams.replaceAll(additionalQueryParams)
+ }
+
+ fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) =
+ apply {
+ this.additionalQueryParams.replaceAll(additionalQueryParams)
+ }
+
+ fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) }
+
+ fun removeAllAdditionalQueryParams(keys: Set) = apply {
+ additionalQueryParams.removeAll(keys)
+ }
+
+ fun additionalBodyProperties(additionalBodyProperties: Map) = apply {
+ this.additionalBodyProperties.clear()
+ putAllAdditionalBodyProperties(additionalBodyProperties)
+ }
+
+ fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply {
+ additionalBodyProperties.put(key, value)
+ }
+
+ fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) =
+ apply {
+ this.additionalBodyProperties.putAll(additionalBodyProperties)
+ }
+
+ fun removeAdditionalBodyProperty(key: String) = apply {
+ additionalBodyProperties.remove(key)
+ }
+
+ fun removeAllAdditionalBodyProperties(keys: Set) = apply {
+ keys.forEach(::removeAdditionalBodyProperty)
+ }
+
+ /**
+ * Returns an immutable instance of [ProjectDeleteParams].
+ *
+ * Further updates to this [Builder] will not mutate the returned instance.
+ */
+ fun build(): ProjectDeleteParams =
+ ProjectDeleteParams(
+ projectId,
+ additionalHeaders.build(),
+ additionalQueryParams.build(),
+ additionalBodyProperties.toImmutable(),
+ )
+ }
+
+ fun _body(): Optional