Skip to content

Commit 83c5b67

Browse files
feat(iam/v1alpha1): add user connection routes (#2164)
Co-authored-by: Mia-Cross <[email protected]>
1 parent 1be85c7 commit 83c5b67

File tree

5 files changed

+115
-0
lines changed

5 files changed

+115
-0
lines changed

packages_generated/iam/src/v1alpha1/api.gen.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ import {
1717
marshalCreatePolicyRequest,
1818
marshalCreateSSHKeyRequest,
1919
marshalCreateUserRequest,
20+
marshalJoinUserConnectionRequest,
2021
marshalRemoveGroupMemberRequest,
22+
marshalRemoveUserConnectionRequest,
2123
marshalSetGroupMembersRequest,
2224
marshalSetRulesRequest,
2325
marshalUpdateAPIKeyRequest,
@@ -35,6 +37,7 @@ import {
3537
unmarshalEncodedJWT,
3638
unmarshalGetUserConnectionsResponse,
3739
unmarshalGroup,
40+
unmarshalInitiateUserConnectionResponse,
3841
unmarshalJWT,
3942
unmarshalListAPIKeysResponse,
4043
unmarshalListApplicationsResponse,
@@ -94,7 +97,10 @@ import type {
9497
GetUserConnectionsResponse,
9598
GetUserRequest,
9699
Group,
100+
InitiateUserConnectionRequest,
101+
InitiateUserConnectionResponse,
97102
JWT,
103+
JoinUserConnectionRequest,
98104
ListAPIKeysRequest,
99105
ListAPIKeysResponse,
100106
ListApplicationsRequest,
@@ -127,6 +133,7 @@ import type {
127133
Policy,
128134
Quotum,
129135
RemoveGroupMemberRequest,
136+
RemoveUserConnectionRequest,
130137
SSHKey,
131138
SetGroupMembersRequest,
132139
SetRulesRequest,
@@ -495,6 +502,37 @@ export class API extends ParentAPI {
495502
unmarshalGetUserConnectionsResponse,
496503
)
497504

505+
initiateUserConnection = (request: Readonly<InitiateUserConnectionRequest>) =>
506+
this.client.fetch<InitiateUserConnectionResponse>(
507+
{
508+
body: '{}',
509+
headers: jsonContentHeaders,
510+
method: 'POST',
511+
path: `/iam/v1alpha1/users/${validatePathParam('userId', request.userId)}/initiate-connection`,
512+
},
513+
unmarshalInitiateUserConnectionResponse,
514+
)
515+
516+
joinUserConnection = (request: Readonly<JoinUserConnectionRequest>) =>
517+
this.client.fetch<void>({
518+
body: JSON.stringify(
519+
marshalJoinUserConnectionRequest(request, this.client.settings),
520+
),
521+
headers: jsonContentHeaders,
522+
method: 'POST',
523+
path: `/iam/v1alpha1/users/${validatePathParam('userId', request.userId)}/join-connection`,
524+
})
525+
526+
removeUserConnection = (request: Readonly<RemoveUserConnectionRequest>) =>
527+
this.client.fetch<void>({
528+
body: JSON.stringify(
529+
marshalRemoveUserConnectionRequest(request, this.client.settings),
530+
),
531+
headers: jsonContentHeaders,
532+
method: 'POST',
533+
path: `/iam/v1alpha1/users/${validatePathParam('userId', request.userId)}/remove-connection`,
534+
})
535+
498536
protected pageOfListApplications = (
499537
request: Readonly<ListApplicationsRequest> = {},
500538
) =>

packages_generated/iam/src/v1alpha1/index.gen.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ export type {
4545
GracePeriod,
4646
GracePeriodType,
4747
Group,
48+
InitiateUserConnectionRequest,
49+
InitiateUserConnectionResponse,
4850
JWT,
51+
JoinUserConnectionRequest,
4952
ListAPIKeysRequest,
5053
ListAPIKeysRequestOrderBy,
5154
ListAPIKeysResponse,
@@ -94,6 +97,7 @@ export type {
9497
Quotum,
9598
QuotumLimit,
9699
RemoveGroupMemberRequest,
100+
RemoveUserConnectionRequest,
97101
Rule,
98102
RuleSpecs,
99103
SSHKey,

packages_generated/iam/src/v1alpha1/marshalling.gen.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ import type {
2828
GetUserConnectionsResponse,
2929
GracePeriod,
3030
Group,
31+
InitiateUserConnectionResponse,
3132
JWT,
33+
JoinUserConnectionRequest,
3234
ListAPIKeysResponse,
3335
ListApplicationsResponse,
3436
ListGracePeriodsResponse,
@@ -49,6 +51,7 @@ import type {
4951
Quotum,
5052
QuotumLimit,
5153
RemoveGroupMemberRequest,
54+
RemoveUserConnectionRequest,
5255
Rule,
5356
RuleSpecs,
5457
SSHKey,
@@ -365,6 +368,20 @@ export const unmarshalGetUserConnectionsResponse = (
365368
} as GetUserConnectionsResponse
366369
}
367370

371+
export const unmarshalInitiateUserConnectionResponse = (
372+
data: unknown,
373+
): InitiateUserConnectionResponse => {
374+
if (!isJSONObject(data)) {
375+
throw new TypeError(
376+
`Unmarshalling the type 'InitiateUserConnectionResponse' failed as data isn't a dictionary.`,
377+
)
378+
}
379+
380+
return {
381+
token: data.token,
382+
} as InitiateUserConnectionResponse
383+
}
384+
368385
export const unmarshalListAPIKeysResponse = (
369386
data: unknown,
370387
): ListAPIKeysResponse => {
@@ -784,6 +801,13 @@ export const marshalCreateUserRequest = (
784801
]),
785802
})
786803

804+
export const marshalJoinUserConnectionRequest = (
805+
request: JoinUserConnectionRequest,
806+
defaults: DefaultValues,
807+
): Record<string, unknown> => ({
808+
token: request.token,
809+
})
810+
787811
export const marshalRemoveGroupMemberRequest = (
788812
request: RemoveGroupMemberRequest,
789813
defaults: DefaultValues,
@@ -794,6 +818,13 @@ export const marshalRemoveGroupMemberRequest = (
794818
]),
795819
})
796820

821+
export const marshalRemoveUserConnectionRequest = (
822+
request: RemoveUserConnectionRequest,
823+
defaults: DefaultValues,
824+
): Record<string, unknown> => ({
825+
target_user_id: request.targetUserId,
826+
})
827+
797828
export const marshalSetGroupMembersRequest = (
798829
request: SetGroupMembersRequest,
799830
defaults: DefaultValues,

packages_generated/iam/src/v1alpha1/types.gen.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,6 +1121,31 @@ export type GetUserRequest = {
11211121
userId: string
11221122
}
11231123

1124+
export type InitiateUserConnectionRequest = {
1125+
/**
1126+
* ID of the user that will be added to your connection.
1127+
*/
1128+
userId: string
1129+
}
1130+
1131+
export interface InitiateUserConnectionResponse {
1132+
/**
1133+
* Token to be used in JoinUserConnection.
1134+
*/
1135+
token: string
1136+
}
1137+
1138+
export type JoinUserConnectionRequest = {
1139+
/**
1140+
* User ID.
1141+
*/
1142+
userId: string
1143+
/**
1144+
* A token returned by InitiateUserConnection.
1145+
*/
1146+
token: string
1147+
}
1148+
11241149
export type ListAPIKeysRequest = {
11251150
/**
11261151
* Criteria for sorting results.
@@ -1671,6 +1696,17 @@ export type RemoveGroupMemberRequest = {
16711696
applicationId?: string
16721697
}
16731698

1699+
export type RemoveUserConnectionRequest = {
1700+
/**
1701+
* ID of the user you want to manage the connection for.
1702+
*/
1703+
userId: string
1704+
/**
1705+
* ID of the user you want to remove from your connection.
1706+
*/
1707+
targetUserId: string
1708+
}
1709+
16741710
export type SetGroupMembersRequest = {
16751711
groupId: string
16761712
userIds: string[]

packages_generated/iam/src/v1alpha1/validation-rules.gen.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@ export const GetQuotumRequest = {
7979
},
8080
}
8181

82+
export const JoinUserConnectionRequest = {
83+
token: {
84+
minLength: 1,
85+
},
86+
}
87+
8288
export const ListAPIKeysRequest = {
8389
description: {
8490
maxLength: 200,

0 commit comments

Comments
 (0)