Skip to content

Commit ce7fbf0

Browse files
committed
feat: update generated APIs
1 parent 1c5ada4 commit ce7fbf0

File tree

5 files changed

+97
-0
lines changed

5 files changed

+97
-0
lines changed

packages/clients/src/api/mongodb/v1alpha1/api.gen.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
marshalCreateSnapshotRequest,
1919
marshalCreateUserRequest,
2020
marshalRestoreSnapshotRequest,
21+
marshalSetUserRoleRequest,
2122
marshalUpdateInstanceRequest,
2223
marshalUpdateSnapshotRequest,
2324
marshalUpdateUserRequest,
@@ -57,6 +58,7 @@ import type {
5758
ListVersionsRequest,
5859
ListVersionsResponse,
5960
RestoreSnapshotRequest,
61+
SetUserRoleRequest,
6062
Snapshot,
6163
UpdateInstanceRequest,
6264
UpdateSnapshotRequest,
@@ -542,6 +544,19 @@ export class API extends ParentAPI {
542544
path: `/mongodb/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/instances/${validatePathParam('instanceId', request.instanceId)}/users/${validatePathParam('name', request.name)}`,
543545
})
544546

547+
setUserRole = (request: Readonly<SetUserRoleRequest>) =>
548+
this.client.fetch<User>(
549+
{
550+
body: JSON.stringify(
551+
marshalSetUserRoleRequest(request, this.client.settings),
552+
),
553+
headers: jsonContentHeaders,
554+
method: 'PUT',
555+
path: `/mongodb/v1alpha1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/instances/${validatePathParam('instanceId', request.instanceId)}/roles`,
556+
},
557+
unmarshalUser,
558+
)
559+
545560
/**
546561
* Delete a Database Instance endpoint. Delete the endpoint of a Database
547562
* Instance. You must specify the `endpoint_id` parameter of the endpoint you

packages/clients/src/api/mongodb/v1alpha1/index.gen.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export type {
4242
NodeTypeVolumeType,
4343
RestoreSnapshotRequest,
4444
RestoreSnapshotRequestVolumeDetails,
45+
SetUserRoleRequest,
4546
Setting,
4647
SettingPropertyType,
4748
Snapshot,
@@ -52,6 +53,8 @@ export type {
5253
UpdateUserRequest,
5354
UpgradeInstanceRequest,
5455
User,
56+
UserRole,
57+
UserRoleRole,
5558
Version,
5659
Volume,
5760
VolumeType,

packages/clients/src/api/mongodb/v1alpha1/marshalling.gen.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import type {
3131
NodeTypeVolumeType,
3232
RestoreSnapshotRequest,
3333
RestoreSnapshotRequestVolumeDetails,
34+
SetUserRoleRequest,
3435
Setting,
3536
Snapshot,
3637
SnapshotVolumeType,
@@ -39,6 +40,7 @@ import type {
3940
UpdateUserRequest,
4041
UpgradeInstanceRequest,
4142
User,
43+
UserRole,
4244
Version,
4345
Volume,
4446
} from './types.gen'
@@ -177,6 +179,20 @@ export const unmarshalSnapshot = (data: unknown): Snapshot => {
177179
} as Snapshot
178180
}
179181

182+
const unmarshalUserRole = (data: unknown): UserRole => {
183+
if (!isJSONObject(data)) {
184+
throw new TypeError(
185+
`Unmarshalling the type 'UserRole' failed as data isn't a dictionary.`,
186+
)
187+
}
188+
189+
return {
190+
anyDatabase: data.any_database,
191+
database: data.database,
192+
role: data.role,
193+
} as UserRole
194+
}
195+
180196
export const unmarshalUser = (data: unknown): User => {
181197
if (!isJSONObject(data)) {
182198
throw new TypeError(
@@ -186,6 +202,7 @@ export const unmarshalUser = (data: unknown): User => {
186202

187203
return {
188204
name: data.name,
205+
roles: unmarshalArrayOfObject(data.roles, unmarshalUserRole),
189206
} as User
190207
}
191208

@@ -450,6 +467,28 @@ export const marshalRestoreSnapshotRequest = (
450467
volume: marshalRestoreSnapshotRequestVolumeDetails(request.volume, defaults),
451468
})
452469

470+
const marshalUserRole = (
471+
request: UserRole,
472+
defaults: DefaultValues,
473+
): Record<string, unknown> => ({
474+
role: request.role,
475+
...resolveOneOf<string | boolean>([
476+
{ param: 'database', value: request.database },
477+
{ param: 'any_database', value: request.anyDatabase },
478+
]),
479+
})
480+
481+
export const marshalSetUserRoleRequest = (
482+
request: SetUserRoleRequest,
483+
defaults: DefaultValues,
484+
): Record<string, unknown> => ({
485+
roles:
486+
request.roles !== undefined
487+
? request.roles.map(elt => marshalUserRole(elt, defaults))
488+
: undefined,
489+
user_name: request.userName,
490+
})
491+
453492
export const marshalUpdateInstanceRequest = (
454493
request: UpdateInstanceRequest,
455494
defaults: DefaultValues,

packages/clients/src/api/mongodb/v1alpha1/types.gen.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ export type SnapshotStatus =
4848
| 'error'
4949
| 'locked'
5050

51+
export type UserRoleRole = 'unknown_role' | 'read' | 'read_write' | 'db_admin'
52+
5153
export type VolumeType = 'unknown_type' | 'sbs_5k' | 'sbs_15k'
5254

5355
/** Private Network details. */
@@ -119,6 +121,14 @@ export interface SnapshotVolumeType {
119121
type: VolumeType
120122
}
121123

124+
export interface UserRole {
125+
role: UserRoleRole
126+
/** One-of ('scope'): at most one of 'database', 'anyDatabase' could be set. */
127+
database?: string
128+
/** One-of ('scope'): at most one of 'database', 'anyDatabase' could be set. */
129+
anyDatabase?: boolean
130+
}
131+
122132
export interface Setting {
123133
/** Setting name from the database engine. */
124134
name: string
@@ -242,6 +252,11 @@ export interface User {
242252
* characters are accepted).
243253
*/
244254
name: string
255+
/**
256+
* List of roles assigned to the user, along with the corresponding database
257+
* where each role is granted.
258+
*/
259+
roles: UserRole[]
245260
}
246261

247262
export interface Version {
@@ -530,6 +545,23 @@ export type RestoreSnapshotRequest = {
530545
volume: RestoreSnapshotRequestVolumeDetails
531546
}
532547

548+
export type SetUserRoleRequest = {
549+
/**
550+
* Region to target. If none is passed will use default region from the
551+
* config.
552+
*/
553+
region?: ScwRegion
554+
/** UUID of the Database Instance the user belongs to. */
555+
instanceId: string
556+
/** Name of the database user. */
557+
userName: string
558+
/**
559+
* List of roles assigned to the user, along with the corresponding database
560+
* where each role is granted.
561+
*/
562+
roles?: UserRole[]
563+
}
564+
533565
export type UpdateInstanceRequest = {
534566
/**
535567
* Region to target. If none is passed will use default region from the

packages/clients/src/api/mongodb/v1alpha1/validation-rules.gen.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,14 @@ export const RestoreSnapshotRequest = {
138138
},
139139
}
140140

141+
export const SetUserRoleRequest = {
142+
userName: {
143+
maxLength: 63,
144+
minLength: 1,
145+
pattern: /^[a-zA-Z0-9_\-]*$/,
146+
},
147+
}
148+
141149
export const UpdateInstanceRequest = {
142150
name: {
143151
maxLength: 255,

0 commit comments

Comments
 (0)