Skip to content

Commit 88a190d

Browse files
chore(closes OPEN-8576): expose delete project endpoint
1 parent cd3663d commit 88a190d

9 files changed

Lines changed: 490 additions & 3 deletions

File tree

.stats.yml

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

openlayer-java-core/src/main/kotlin/com/openlayer/api/services/async/ProjectServiceAsync.kt

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ package com.openlayer.api.services.async
44

55
import com.openlayer.api.core.ClientOptions
66
import com.openlayer.api.core.RequestOptions
7+
import com.openlayer.api.core.http.HttpResponse
78
import com.openlayer.api.core.http.HttpResponseFor
89
import com.openlayer.api.models.projects.ProjectCreateParams
910
import com.openlayer.api.models.projects.ProjectCreateResponse
11+
import com.openlayer.api.models.projects.ProjectDeleteParams
1012
import com.openlayer.api.models.projects.ProjectListParams
1113
import com.openlayer.api.models.projects.ProjectListResponse
1214
import com.openlayer.api.services.async.projects.CommitServiceAsync
@@ -63,6 +65,38 @@ interface ProjectServiceAsync {
6365
fun list(requestOptions: RequestOptions): CompletableFuture<ProjectListResponse> =
6466
list(ProjectListParams.none(), requestOptions)
6567

68+
/** Delete a project by its ID. */
69+
fun delete(projectId: String): CompletableFuture<Void?> =
70+
delete(projectId, ProjectDeleteParams.none())
71+
72+
/** @see delete */
73+
fun delete(
74+
projectId: String,
75+
params: ProjectDeleteParams = ProjectDeleteParams.none(),
76+
requestOptions: RequestOptions = RequestOptions.none(),
77+
): CompletableFuture<Void?> =
78+
delete(params.toBuilder().projectId(projectId).build(), requestOptions)
79+
80+
/** @see delete */
81+
fun delete(
82+
projectId: String,
83+
params: ProjectDeleteParams = ProjectDeleteParams.none(),
84+
): CompletableFuture<Void?> = delete(projectId, params, RequestOptions.none())
85+
86+
/** @see delete */
87+
fun delete(
88+
params: ProjectDeleteParams,
89+
requestOptions: RequestOptions = RequestOptions.none(),
90+
): CompletableFuture<Void?>
91+
92+
/** @see delete */
93+
fun delete(params: ProjectDeleteParams): CompletableFuture<Void?> =
94+
delete(params, RequestOptions.none())
95+
96+
/** @see delete */
97+
fun delete(projectId: String, requestOptions: RequestOptions): CompletableFuture<Void?> =
98+
delete(projectId, ProjectDeleteParams.none(), requestOptions)
99+
66100
/**
67101
* A view of [ProjectServiceAsync] that provides access to raw HTTP responses for each method.
68102
*/
@@ -122,5 +156,43 @@ interface ProjectServiceAsync {
122156
requestOptions: RequestOptions
123157
): CompletableFuture<HttpResponseFor<ProjectListResponse>> =
124158
list(ProjectListParams.none(), requestOptions)
159+
160+
/**
161+
* Returns a raw HTTP response for `delete /projects/{projectId}`, but is otherwise the same
162+
* as [ProjectServiceAsync.delete].
163+
*/
164+
fun delete(projectId: String): CompletableFuture<HttpResponse> =
165+
delete(projectId, ProjectDeleteParams.none())
166+
167+
/** @see delete */
168+
fun delete(
169+
projectId: String,
170+
params: ProjectDeleteParams = ProjectDeleteParams.none(),
171+
requestOptions: RequestOptions = RequestOptions.none(),
172+
): CompletableFuture<HttpResponse> =
173+
delete(params.toBuilder().projectId(projectId).build(), requestOptions)
174+
175+
/** @see delete */
176+
fun delete(
177+
projectId: String,
178+
params: ProjectDeleteParams = ProjectDeleteParams.none(),
179+
): CompletableFuture<HttpResponse> = delete(projectId, params, RequestOptions.none())
180+
181+
/** @see delete */
182+
fun delete(
183+
params: ProjectDeleteParams,
184+
requestOptions: RequestOptions = RequestOptions.none(),
185+
): CompletableFuture<HttpResponse>
186+
187+
/** @see delete */
188+
fun delete(params: ProjectDeleteParams): CompletableFuture<HttpResponse> =
189+
delete(params, RequestOptions.none())
190+
191+
/** @see delete */
192+
fun delete(
193+
projectId: String,
194+
requestOptions: RequestOptions,
195+
): CompletableFuture<HttpResponse> =
196+
delete(projectId, ProjectDeleteParams.none(), requestOptions)
125197
}
126198
}

0 commit comments

Comments
 (0)