import type * as cip from "@distilled.cloud/aws/cognito-identity-provider"; import type * as Effect from "effect/Effect"; import * as Binding from "../../Binding.ts"; import type { UserPool } from "./UserPool.ts"; export interface AdminCreateUserRequest extends Omit { } export interface AdminGetUserRequest extends Omit { } export interface AdminSetUserPasswordRequest extends Omit { } export interface AdminUpdateUserAttributesRequest extends Omit { } export interface AdminDeleteUserRequest extends Omit { } export interface AdminConfirmSignUpRequest extends Omit { } export interface AdminDisableUserRequest extends Omit { } export interface AdminEnableUserRequest extends Omit { } export interface AdminResetUserPasswordRequest extends Omit { } export interface AdminInitiateAuthRequest extends Omit { } export interface AdminRespondToAuthChallengeRequest extends Omit { } export interface AdminUserGlobalSignOutRequest extends Omit { } export interface AdminAddUserToGroupRequest extends Omit { } export interface AdminRemoveUserFromGroupRequest extends Omit { } export interface ListUsersRequest extends Omit { } export interface ListUsersInGroupRequest extends Omit { } export interface AdminDeleteUserAttributesRequest extends Omit { } export interface AdminListGroupsForUserRequest extends Omit { } export interface AdminSetUserMFAPreferenceRequest extends Omit { } export interface AdminLinkProviderForUserRequest extends Omit { } export interface AdminDisableProviderForUserRequest extends Omit { } export interface AdminGetDeviceRequest extends Omit { } export interface AdminListDevicesRequest extends Omit { } export interface AdminForgetDeviceRequest extends Omit { } export interface AdminUpdateDeviceStatusRequest extends Omit { } export interface AdminListUserAuthEventsRequest extends Omit { } export interface AdminUpdateAuthEventFeedbackRequest extends Omit { } export interface ListGroupsRequest extends Omit { } /** * The typed client returned by binding {@link UserPoolAdmin} to a * `UserPool`. Every method automatically injects the user pool ID and is * authorized by IAM (`cognito-idp:Admin*` on the pool ARN). */ export interface UserPoolAdminClient { /** Create a user as an administrator (optionally suppressing the invite). */ adminCreateUser: (request: AdminCreateUserRequest) => Effect.Effect; /** Fetch a user's profile and status by username. */ adminGetUser: (request: AdminGetUserRequest) => Effect.Effect; /** Set a user's password (permanent or temporary). */ adminSetUserPassword: (request: AdminSetUserPasswordRequest) => Effect.Effect; /** Update (or add) user attributes as an administrator. */ adminUpdateUserAttributes: (request: AdminUpdateUserAttributesRequest) => Effect.Effect; /** Delete a user as an administrator. */ adminDeleteUser: (request: AdminDeleteUserRequest) => Effect.Effect; /** Confirm a user's sign-up without a confirmation code. */ adminConfirmSignUp: (request: AdminConfirmSignUpRequest) => Effect.Effect; /** Disable a user (prevents sign-in and revokes tokens). */ adminDisableUser: (request: AdminDisableUserRequest) => Effect.Effect; /** Re-enable a disabled user. */ adminEnableUser: (request: AdminEnableUserRequest) => Effect.Effect; /** Force a password reset on next sign-in. */ adminResetUserPassword: (request: AdminResetUserPasswordRequest) => Effect.Effect; /** Start an auth flow with admin credentials (e.g. `ADMIN_USER_PASSWORD_AUTH`). */ adminInitiateAuth: (request: AdminInitiateAuthRequest) => Effect.Effect; /** Answer an auth challenge from `adminInitiateAuth`. */ adminRespondToAuthChallenge: (request: AdminRespondToAuthChallengeRequest) => Effect.Effect; /** Sign a user out of all devices. */ adminUserGlobalSignOut: (request: AdminUserGlobalSignOutRequest) => Effect.Effect; /** Add a user to a group. */ adminAddUserToGroup: (request: AdminAddUserToGroupRequest) => Effect.Effect; /** Remove a user from a group. */ adminRemoveUserFromGroup: (request: AdminRemoveUserFromGroupRequest) => Effect.Effect; /** List users in the pool (optionally filtered). */ listUsers: (request?: ListUsersRequest) => Effect.Effect; /** List the users in a group. */ listUsersInGroup: (request: ListUsersInGroupRequest) => Effect.Effect; /** Delete attributes from a user's profile as an administrator. */ adminDeleteUserAttributes: (request: AdminDeleteUserAttributesRequest) => Effect.Effect; /** List the groups a user belongs to. */ adminListGroupsForUser: (request: AdminListGroupsForUserRequest) => Effect.Effect; /** Set a user's MFA preferences (SMS / TOTP / email) as an administrator. */ adminSetUserMFAPreference: (request: AdminSetUserMFAPreferenceRequest) => Effect.Effect; /** Link a federated identity to an existing native user. */ adminLinkProviderForUser: (request: AdminLinkProviderForUserRequest) => Effect.Effect; /** Unlink a federated identity from a user. */ adminDisableProviderForUser: (request: AdminDisableProviderForUserRequest) => Effect.Effect; /** Fetch one of a user's remembered devices. */ adminGetDevice: (request: AdminGetDeviceRequest) => Effect.Effect; /** List a user's remembered devices. */ adminListDevices: (request: AdminListDevicesRequest) => Effect.Effect; /** Forget (deregister) one of a user's remembered devices. */ adminForgetDevice: (request: AdminForgetDeviceRequest) => Effect.Effect; /** Mark a user's device as remembered or not remembered. */ adminUpdateDeviceStatus: (request: AdminUpdateDeviceStatusRequest) => Effect.Effect; /** List a user's sign-in auth events (threat protection history). */ adminListUserAuthEvents: (request: AdminListUserAuthEventsRequest) => Effect.Effect; /** Provide valid/invalid feedback on a user's auth event. */ adminUpdateAuthEventFeedback: (request: AdminUpdateAuthEventFeedbackRequest) => Effect.Effect; /** List the groups in the pool. */ listGroups: (request?: ListGroupsRequest) => Effect.Effect; } /** * Runtime binding for administrative Cognito user pool operations. * * Bind this to a `UserPool` inside a function runtime to get a typed client * for user management and admin auth flows. The binding grants the * corresponding `cognito-idp:*` IAM actions scoped to the pool's ARN and * injects the pool ID into every call. * ### Managing Users * **Example:** Create a User with a Permanent Password * ```typescript * const admin = yield* Cognito.UserPoolAdmin(pool); * * yield* admin.adminCreateUser({ * Username: "user@example.com", * MessageAction: "SUPPRESS", * UserAttributes: [ * { Name: "email", Value: "user@example.com" }, * { Name: "email_verified", Value: "true" }, * ], * }); * yield* admin.adminSetUserPassword({ * Username: "user@example.com", * Password: "Sup3r-secret!", * Permanent: true, * }); * ``` * * **Example:** Look Up and Delete a User * ```typescript * const user = yield* admin.adminGetUser({ Username: "user@example.com" }); * yield* admin.adminDeleteUser({ Username: "user@example.com" }); * ``` * * ### Groups * **Example:** Manage Group Membership * ```typescript * yield* admin.adminAddUserToGroup({ * Username: "user@example.com", * GroupName: "Admins", * }); * const admins = yield* admin.listUsersInGroup({ GroupName: "Admins" }); * const groups = yield* admin.adminListGroupsForUser({ * Username: "user@example.com", * }); * ``` * * ### Federation and Devices * **Example:** Link a Federated Identity to a Native User * ```typescript * yield* admin.adminLinkProviderForUser({ * DestinationUser: { * ProviderName: "Cognito", * ProviderAttributeValue: "user@example.com", * }, * SourceUser: { * ProviderName: "Google", * ProviderAttributeName: "Cognito_Subject", * ProviderAttributeValue: googleSub, * }, * }); * ``` * * **Example:** List a User's Remembered Devices * ```typescript * const devices = yield* admin.adminListDevices({ * Username: "user@example.com", * }); * ``` * * @binding */ export interface UserPoolAdmin extends Binding.Service(pool: P) => Effect.Effect> { } export declare const UserPoolAdmin: UserPoolAdmin; //# sourceMappingURL=UserPoolAdmin.d.ts.map