Skip to content

Commit 6aef7fc

Browse files
ci-stytchStytch Codegen Botlogan-stytch
authored
WebAuthn URL encoding + RBAC org policy (#142)
Co-authored-by: Stytch Codegen Bot <[email protected]> Co-authored-by: Logan Gore <[email protected]>
1 parent bb11d80 commit 6aef7fc

File tree

18 files changed

+943
-3
lines changed

18 files changed

+943
-3
lines changed

Untitled

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version

stytch/src/main/kotlin/com/stytch/java/b2b/api/organizations/Organizations.kt

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ import com.stytch.java.b2b.models.organizations.ConnectedAppsRequestOptions
1616
import com.stytch.java.b2b.models.organizations.ConnectedAppsResponse
1717
import com.stytch.java.b2b.models.organizations.CreateRequest
1818
import com.stytch.java.b2b.models.organizations.CreateResponse
19+
import com.stytch.java.b2b.models.organizations.DeleteExternalIdRequest
20+
import com.stytch.java.b2b.models.organizations.DeleteExternalIdRequestOptions
21+
import com.stytch.java.b2b.models.organizations.DeleteExternalIdResponse
1922
import com.stytch.java.b2b.models.organizations.DeleteRequest
2023
import com.stytch.java.b2b.models.organizations.DeleteRequestOptions
2124
import com.stytch.java.b2b.models.organizations.DeleteResponse
@@ -270,6 +273,22 @@ public interface Organizations {
270273
data: GetConnectedAppRequest,
271274
methodOptions: GetConnectedAppRequestOptions? = null,
272275
): CompletableFuture<StytchResult<GetConnectedAppResponse>>
276+
277+
public suspend fun deleteExternalId(
278+
data: DeleteExternalIdRequest,
279+
methodOptions: DeleteExternalIdRequestOptions? = null,
280+
): StytchResult<DeleteExternalIdResponse>
281+
282+
public fun deleteExternalId(
283+
data: DeleteExternalIdRequest,
284+
methodOptions: DeleteExternalIdRequestOptions? = null,
285+
callback: (StytchResult<DeleteExternalIdResponse>) -> Unit,
286+
)
287+
288+
public fun deleteExternalIdCompletable(
289+
data: DeleteExternalIdRequest,
290+
methodOptions: DeleteExternalIdRequestOptions? = null,
291+
): CompletableFuture<StytchResult<DeleteExternalIdResponse>>
273292
}
274293

275294
internal class OrganizationsImpl(
@@ -514,4 +533,36 @@ internal class OrganizationsImpl(
514533
.async {
515534
getConnectedApp(data, methodOptions)
516535
}.asCompletableFuture()
536+
537+
override suspend fun deleteExternalId(
538+
data: DeleteExternalIdRequest,
539+
methodOptions: DeleteExternalIdRequestOptions?,
540+
): StytchResult<DeleteExternalIdResponse> =
541+
withContext(Dispatchers.IO) {
542+
var headers = emptyMap<String, String>()
543+
methodOptions?.let {
544+
headers = methodOptions.addHeaders(headers)
545+
}
546+
547+
httpClient.delete("/v1/b2b/organizations/${data.organizationId}/external_id", headers)
548+
}
549+
550+
override fun deleteExternalId(
551+
data: DeleteExternalIdRequest,
552+
methodOptions: DeleteExternalIdRequestOptions?,
553+
callback: (StytchResult<DeleteExternalIdResponse>) -> Unit,
554+
) {
555+
coroutineScope.launch {
556+
callback(deleteExternalId(data, methodOptions))
557+
}
558+
}
559+
560+
override fun deleteExternalIdCompletable(
561+
data: DeleteExternalIdRequest,
562+
methodOptions: DeleteExternalIdRequestOptions?,
563+
): CompletableFuture<StytchResult<DeleteExternalIdResponse>> =
564+
coroutineScope
565+
.async {
566+
deleteExternalId(data, methodOptions)
567+
}.asCompletableFuture()
517568
}

stytch/src/main/kotlin/com/stytch/java/b2b/api/organizationsmembers/OrganizationsMembers.kt

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import com.stytch.java.b2b.models.organizationsmembers.CreateRequest
1717
import com.stytch.java.b2b.models.organizationsmembers.CreateRequestOptions
1818
import com.stytch.java.b2b.models.organizationsmembers.CreateResponse
1919
import com.stytch.java.b2b.models.organizationsmembers.DangerouslyGetRequest
20+
import com.stytch.java.b2b.models.organizationsmembers.DeleteExternalIdRequest
21+
import com.stytch.java.b2b.models.organizationsmembers.DeleteExternalIdRequestOptions
22+
import com.stytch.java.b2b.models.organizationsmembers.DeleteExternalIdResponse
2023
import com.stytch.java.b2b.models.organizationsmembers.DeleteMFAPhoneNumberRequest
2124
import com.stytch.java.b2b.models.organizationsmembers.DeleteMFAPhoneNumberRequestOptions
2225
import com.stytch.java.b2b.models.organizationsmembers.DeleteMFAPhoneNumberResponse
@@ -566,6 +569,22 @@ public interface Members {
566569
methodOptions: GetConnectedAppsRequestOptions? = null,
567570
): CompletableFuture<StytchResult<GetConnectedAppsResponse>>
568571

572+
public suspend fun deleteExternalId(
573+
data: DeleteExternalIdRequest,
574+
methodOptions: DeleteExternalIdRequestOptions? = null,
575+
): StytchResult<DeleteExternalIdResponse>
576+
577+
public fun deleteExternalId(
578+
data: DeleteExternalIdRequest,
579+
methodOptions: DeleteExternalIdRequestOptions? = null,
580+
callback: (StytchResult<DeleteExternalIdResponse>) -> Unit,
581+
)
582+
583+
public fun deleteExternalIdCompletable(
584+
data: DeleteExternalIdRequest,
585+
methodOptions: DeleteExternalIdRequestOptions? = null,
586+
): CompletableFuture<StytchResult<DeleteExternalIdResponse>>
587+
569588
/**
570589
* Creates a Member. An `organization_id` and `email_address` are required.
571590
*/
@@ -1000,6 +1019,38 @@ internal class MembersImpl(
10001019
getConnectedApps(data, methodOptions)
10011020
}.asCompletableFuture()
10021021

1022+
override suspend fun deleteExternalId(
1023+
data: DeleteExternalIdRequest,
1024+
methodOptions: DeleteExternalIdRequestOptions?,
1025+
): StytchResult<DeleteExternalIdResponse> =
1026+
withContext(Dispatchers.IO) {
1027+
var headers = emptyMap<String, String>()
1028+
methodOptions?.let {
1029+
headers = methodOptions.addHeaders(headers)
1030+
}
1031+
1032+
httpClient.delete("/v1/b2b/organizations/${data.organizationId}/members/${data.memberId}/external_id", headers)
1033+
}
1034+
1035+
override fun deleteExternalId(
1036+
data: DeleteExternalIdRequest,
1037+
methodOptions: DeleteExternalIdRequestOptions?,
1038+
callback: (StytchResult<DeleteExternalIdResponse>) -> Unit,
1039+
) {
1040+
coroutineScope.launch {
1041+
callback(deleteExternalId(data, methodOptions))
1042+
}
1043+
}
1044+
1045+
override fun deleteExternalIdCompletable(
1046+
data: DeleteExternalIdRequest,
1047+
methodOptions: DeleteExternalIdRequestOptions?,
1048+
): CompletableFuture<StytchResult<DeleteExternalIdResponse>> =
1049+
coroutineScope
1050+
.async {
1051+
deleteExternalId(data, methodOptions)
1052+
}.asCompletableFuture()
1053+
10031054
override suspend fun create(
10041055
data: CreateRequest,
10051056
methodOptions: CreateRequestOptions?,

stytch/src/main/kotlin/com/stytch/java/b2b/api/rbac/RBAC.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ package com.stytch.java.b2b.api.rbac
99
import com.squareup.moshi.JsonAdapter
1010
import com.squareup.moshi.Moshi
1111
import com.squareup.moshi.Types
12+
import com.stytch.java.b2b.api.rbacorganizations.Organizations
13+
import com.stytch.java.b2b.api.rbacorganizations.OrganizationsImpl
1214
import com.stytch.java.b2b.models.rbac.PolicyRequest
1315
import com.stytch.java.b2b.models.rbac.PolicyResponse
1416
import com.stytch.java.common.InstantAdapter
@@ -23,6 +25,8 @@ import kotlinx.coroutines.withContext
2325
import java.util.concurrent.CompletableFuture
2426

2527
public interface RBAC {
28+
public val organizations: Organizations
29+
2630
/**
2731
* Get the active RBAC Policy for your current Stytch Project. An RBAC Policy is the canonical document that stores all
2832
* defined Resources and Roles within your RBAC permissioning model.
@@ -87,6 +91,8 @@ internal class RBACImpl(
8791
) : RBAC {
8892
private val moshi = Moshi.Builder().add(InstantAdapter()).build()
8993

94+
override val organizations: Organizations = OrganizationsImpl(httpClient, coroutineScope)
95+
9096
override suspend fun policy(data: PolicyRequest): StytchResult<PolicyResponse> =
9197
withContext(Dispatchers.IO) {
9298
var headers = emptyMap<String, String>()

0 commit comments

Comments
 (0)