@fusionauth/typescript-client 1.61.0 → 1.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,6 +56,13 @@ export declare class FusionAuthClient {
56
56
  * @returns {Promise<ClientResponse<DeviceApprovalResponse>>}
57
57
  */
58
58
  approveDevice(client_id: string, client_secret: string, token: string, user_code: string): Promise<ClientResponse<DeviceApprovalResponse>>;
59
+ /**
60
+ * Approve a device grant.
61
+ *
62
+ * @param {DeviceApprovalRequest} request The request object containing the device approval information and optional tenantId.
63
+ * @returns {Promise<ClientResponse<DeviceApprovalResponse>>}
64
+ */
65
+ approveDeviceWithRequest(request: DeviceApprovalRequest): Promise<ClientResponse<DeviceApprovalResponse>>;
59
66
  /**
60
67
  * Cancels the user action.
61
68
  *
@@ -120,6 +127,18 @@ export declare class FusionAuthClient {
120
127
  * @returns {Promise<ClientResponse<void>>}
121
128
  */
122
129
  checkChangePasswordUsingId(changePasswordId: string): Promise<ClientResponse<void>>;
130
+ /**
131
+ * Check to see if the user must obtain a Trust Token Id in order to complete a change password request.
132
+ * When a user has enabled Two-Factor authentication, before you are allowed to use the Change Password API to change
133
+ * your password, you must obtain a Trust Token by completing a Two-Factor Step-Up authentication.
134
+ *
135
+ * An HTTP status code of 400 with a general error code of [TrustTokenRequired] indicates that a Trust Token is required to make a POST request to this API.
136
+ *
137
+ * @param {string} changePasswordId The change password Id used to find the user. This value is generated by FusionAuth once the change password workflow has been initiated.
138
+ * @param {string} ipAddress (Optional) IP address of the user changing their password. This is used for MFA risk assessment.
139
+ * @returns {Promise<ClientResponse<void>>}
140
+ */
141
+ checkChangePasswordUsingIdAndIPAddress(changePasswordId: string, ipAddress: string): Promise<ClientResponse<void>>;
123
142
  /**
124
143
  * Check to see if the user must obtain a Trust Token Id in order to complete a change password request.
125
144
  * When a user has enabled Two-Factor authentication, before you are allowed to use the Change Password API to change
@@ -131,6 +150,18 @@ export declare class FusionAuthClient {
131
150
  * @returns {Promise<ClientResponse<void>>}
132
151
  */
133
152
  checkChangePasswordUsingJWT(encodedJWT: string): Promise<ClientResponse<void>>;
153
+ /**
154
+ * Check to see if the user must obtain a Trust Token Id in order to complete a change password request.
155
+ * When a user has enabled Two-Factor authentication, before you are allowed to use the Change Password API to change
156
+ * your password, you must obtain a Trust Token by completing a Two-Factor Step-Up authentication.
157
+ *
158
+ * An HTTP status code of 400 with a general error code of [TrustTokenRequired] indicates that a Trust Token is required to make a POST request to this API.
159
+ *
160
+ * @param {string} encodedJWT The encoded JWT (access token).
161
+ * @param {string} ipAddress (Optional) IP address of the user changing their password. This is used for MFA risk assessment.
162
+ * @returns {Promise<ClientResponse<void>>}
163
+ */
164
+ checkChangePasswordUsingJWTAndIPAddress(encodedJWT: string, ipAddress: string): Promise<ClientResponse<void>>;
134
165
  /**
135
166
  * Check to see if the user must obtain a Trust Request Id in order to complete a change password request.
136
167
  * When a user has enabled Two-Factor authentication, before you are allowed to use the Change Password API to change
@@ -142,6 +173,18 @@ export declare class FusionAuthClient {
142
173
  * @returns {Promise<ClientResponse<void>>}
143
174
  */
144
175
  checkChangePasswordUsingLoginId(loginId: string): Promise<ClientResponse<void>>;
176
+ /**
177
+ * Check to see if the user must obtain a Trust Request Id in order to complete a change password request.
178
+ * When a user has enabled Two-Factor authentication, before you are allowed to use the Change Password API to change
179
+ * your password, you must obtain a Trust Request Id by completing a Two-Factor Step-Up authentication.
180
+ *
181
+ * An HTTP status code of 400 with a general error code of [TrustTokenRequired] indicates that a Trust Token is required to make a POST request to this API.
182
+ *
183
+ * @param {string} loginId The loginId (email or username) of the User that you intend to change the password for.
184
+ * @param {string} ipAddress (Optional) IP address of the user changing their password. This is used for MFA risk assessment.
185
+ * @returns {Promise<ClientResponse<void>>}
186
+ */
187
+ checkChangePasswordUsingLoginIdAndIPAddress(loginId: string, ipAddress: string): Promise<ClientResponse<void>>;
145
188
  /**
146
189
  * Check to see if the user must obtain a Trust Request Id in order to complete a change password request.
147
190
  * When a user has enabled Two-Factor authentication, before you are allowed to use the Change Password API to change
@@ -154,6 +197,19 @@ export declare class FusionAuthClient {
154
197
  * @returns {Promise<ClientResponse<void>>}
155
198
  */
156
199
  checkChangePasswordUsingLoginIdAndLoginIdTypes(loginId: string, loginIdTypes: Array<String>): Promise<ClientResponse<void>>;
200
+ /**
201
+ * Check to see if the user must obtain a Trust Request Id in order to complete a change password request.
202
+ * When a user has enabled Two-Factor authentication, before you are allowed to use the Change Password API to change
203
+ * your password, you must obtain a Trust Request Id by completing a Two-Factor Step-Up authentication.
204
+ *
205
+ * An HTTP status code of 400 with a general error code of [TrustTokenRequired] indicates that a Trust Token is required to make a POST request to this API.
206
+ *
207
+ * @param {string} loginId The loginId of the User that you intend to change the password for.
208
+ * @param {Array<String>} loginIdTypes The identity types that FusionAuth will compare the loginId to.
209
+ * @param {string} ipAddress (Optional) IP address of the user changing their password. This is used for MFA risk assessment.
210
+ * @returns {Promise<ClientResponse<void>>}
211
+ */
212
+ checkChangePasswordUsingLoginIdAndLoginIdTypesAndIPAddress(loginId: string, loginIdTypes: Array<String>, ipAddress: string): Promise<ClientResponse<void>>;
157
213
  /**
158
214
  * Make a Client Credentials grant request to obtain an access token.
159
215
  *
@@ -165,6 +221,13 @@ export declare class FusionAuthClient {
165
221
  * @returns {Promise<ClientResponse<AccessToken>>}
166
222
  */
167
223
  clientCredentialsGrant(client_id: string, client_secret: string, scope: string): Promise<ClientResponse<AccessToken>>;
224
+ /**
225
+ * Make a Client Credentials grant request to obtain an access token.
226
+ *
227
+ * @param {ClientCredentialsGrantRequest} request The client credentials grant request containing client authentication, scope and optional tenantId.
228
+ * @returns {Promise<ClientResponse<AccessToken>>}
229
+ */
230
+ clientCredentialsGrantWithRequest(request: ClientCredentialsGrantRequest): Promise<ClientResponse<AccessToken>>;
168
231
  /**
169
232
  * Adds a comment to the user's account.
170
233
  *
@@ -766,6 +829,13 @@ export declare class FusionAuthClient {
766
829
  * @returns {Promise<ClientResponse<void>>}
767
830
  */
768
831
  deleteWebAuthnCredential(id: UUID): Promise<ClientResponse<void>>;
832
+ /**
833
+ * Deletes all of the WebAuthn credentials for the given User Id.
834
+ *
835
+ * @param {UUID} userId The unique Id of the User to delete WebAuthn passkeys for.
836
+ * @returns {Promise<ClientResponse<void>>}
837
+ */
838
+ deleteWebAuthnCredentialsForUser(userId: UUID): Promise<ClientResponse<void>>;
769
839
  /**
770
840
  * Deletes the webhook for the given Id.
771
841
  *
@@ -773,6 +843,22 @@ export declare class FusionAuthClient {
773
843
  * @returns {Promise<ClientResponse<void>>}
774
844
  */
775
845
  deleteWebhook(webhookId: UUID): Promise<ClientResponse<void>>;
846
+ /**
847
+ * Start the Device Authorization flow using form-encoded parameters
848
+ *
849
+ * @param {string} client_id The unique client identifier. The client Id is the Id of the FusionAuth Application in which you are attempting to authenticate.
850
+ * @param {string} client_secret (Optional) The client secret. This value may optionally be provided in the request body instead of the Authorization header.
851
+ * @param {string} scope (Optional) A space-delimited string of the requested scopes. Defaults to all scopes configured in the Application's OAuth configuration.
852
+ * @returns {Promise<ClientResponse<DeviceResponse>>}
853
+ */
854
+ deviceAuthorize(client_id: string, client_secret: string, scope: string): Promise<ClientResponse<DeviceResponse>>;
855
+ /**
856
+ * Start the Device Authorization flow using a request body
857
+ *
858
+ * @param {DeviceAuthorizationRequest} request The device authorization request containing client authentication, scope, and optional device metadata.
859
+ * @returns {Promise<ClientResponse<DeviceResponse>>}
860
+ */
861
+ deviceAuthorizeWithRequest(request: DeviceAuthorizationRequest): Promise<ClientResponse<DeviceResponse>>;
776
862
  /**
777
863
  * Disable two-factor authentication for a user.
778
864
  *
@@ -823,6 +909,22 @@ export declare class FusionAuthClient {
823
909
  * @returns {Promise<ClientResponse<AccessToken>>}
824
910
  */
825
911
  exchangeOAuthCodeForAccessTokenUsingPKCE(code: string, client_id: string, client_secret: string, redirect_uri: string, code_verifier: string): Promise<ClientResponse<AccessToken>>;
912
+ /**
913
+ * Exchanges an OAuth authorization code and code_verifier for an access token.
914
+ * Makes a request to the Token endpoint to exchange the authorization code returned from the Authorize endpoint and a code_verifier for an access token.
915
+ *
916
+ * @param {OAuthCodePKCEAccessTokenRequest} request The PKCE OAuth code access token exchange request.
917
+ * @returns {Promise<ClientResponse<AccessToken>>}
918
+ */
919
+ exchangeOAuthCodeForAccessTokenUsingPKCEWithRequest(request: OAuthCodePKCEAccessTokenRequest): Promise<ClientResponse<AccessToken>>;
920
+ /**
921
+ * Exchanges an OAuth authorization code for an access token.
922
+ * Makes a request to the Token endpoint to exchange the authorization code returned from the Authorize endpoint for an access token.
923
+ *
924
+ * @param {OAuthCodeAccessTokenRequest} request The OAuth code access token exchange request.
925
+ * @returns {Promise<ClientResponse<AccessToken>>}
926
+ */
927
+ exchangeOAuthCodeForAccessTokenWithRequest(request: OAuthCodeAccessTokenRequest): Promise<ClientResponse<AccessToken>>;
826
928
  /**
827
929
  * Exchange a Refresh Token for an Access Token.
828
930
  * If you will be using the Refresh Token Grant, you will make a request to the Token endpoint to exchange the user’s refresh token for an access token.
@@ -836,6 +938,14 @@ export declare class FusionAuthClient {
836
938
  * @returns {Promise<ClientResponse<AccessToken>>}
837
939
  */
838
940
  exchangeRefreshTokenForAccessToken(refresh_token: string, client_id: string, client_secret: string, scope: string, user_code: string): Promise<ClientResponse<AccessToken>>;
941
+ /**
942
+ * Exchange a Refresh Token for an Access Token.
943
+ * If you will be using the Refresh Token Grant, you will make a request to the Token endpoint to exchange the user’s refresh token for an access token.
944
+ *
945
+ * @param {RefreshTokenAccessTokenRequest} request The refresh token access token exchange request.
946
+ * @returns {Promise<ClientResponse<AccessToken>>}
947
+ */
948
+ exchangeRefreshTokenForAccessTokenWithRequest(request: RefreshTokenAccessTokenRequest): Promise<ClientResponse<AccessToken>>;
839
949
  /**
840
950
  * Exchange a refresh token for a new JWT.
841
951
  *
@@ -857,6 +967,14 @@ export declare class FusionAuthClient {
857
967
  * @returns {Promise<ClientResponse<AccessToken>>}
858
968
  */
859
969
  exchangeUserCredentialsForAccessToken(username: string, password: string, client_id: string, client_secret: string, scope: string, user_code: string): Promise<ClientResponse<AccessToken>>;
970
+ /**
971
+ * Exchange User Credentials for a Token.
972
+ * If you will be using the Resource Owner Password Credential Grant, you will make a request to the Token endpoint to exchange the user’s email and password for an access token.
973
+ *
974
+ * @param {UserCredentialsAccessTokenRequest} request The user credentials access token exchange request.
975
+ * @returns {Promise<ClientResponse<AccessToken>>}
976
+ */
977
+ exchangeUserCredentialsForAccessTokenWithRequest(request: UserCredentialsAccessTokenRequest): Promise<ClientResponse<AccessToken>>;
860
978
  /**
861
979
  * Begins the forgot password sequence, which kicks off an email to the user so that they can reset their password.
862
980
  *
@@ -973,6 +1091,13 @@ export declare class FusionAuthClient {
973
1091
  * @returns {Promise<ClientResponse<IntrospectResponse>>}
974
1092
  */
975
1093
  introspectAccessToken(client_id: string, token: string): Promise<ClientResponse<IntrospectResponse>>;
1094
+ /**
1095
+ * Inspect an access token issued as the result of the User based grant such as the Authorization Code Grant, Implicit Grant, the User Credentials Grant or the Refresh Grant.
1096
+ *
1097
+ * @param {AccessTokenIntrospectRequest} request The access token introspection request.
1098
+ * @returns {Promise<ClientResponse<IntrospectResponse>>}
1099
+ */
1100
+ introspectAccessTokenWithRequest(request: AccessTokenIntrospectRequest): Promise<ClientResponse<IntrospectResponse>>;
976
1101
  /**
977
1102
  * Inspect an access token issued as the result of the Client Credentials Grant.
978
1103
  *
@@ -980,6 +1105,13 @@ export declare class FusionAuthClient {
980
1105
  * @returns {Promise<ClientResponse<IntrospectResponse>>}
981
1106
  */
982
1107
  introspectClientCredentialsAccessToken(token: string): Promise<ClientResponse<IntrospectResponse>>;
1108
+ /**
1109
+ * Inspect an access token issued as the result of the Client Credentials Grant.
1110
+ *
1111
+ * @param {ClientCredentialsAccessTokenIntrospectRequest} request The client credentials access token.
1112
+ * @returns {Promise<ClientResponse<IntrospectResponse>>}
1113
+ */
1114
+ introspectClientCredentialsAccessTokenWithRequest(request: ClientCredentialsAccessTokenIntrospectRequest): Promise<ClientResponse<IntrospectResponse>>;
983
1115
  /**
984
1116
  * Issue a new access token (JWT) for the requested Application after ensuring the provided JWT is valid. A valid
985
1117
  * access token is properly signed and not expired.
@@ -1048,13 +1180,23 @@ export declare class FusionAuthClient {
1048
1180
  */
1049
1181
  logoutWithRequest(request: LogoutRequest): Promise<ClientResponse<void>>;
1050
1182
  /**
1051
- * Retrieves the identity provider for the given domain. A 200 response code indicates the domain is managed
1183
+ * Retrieves any global identity providers for the given domain. A 200 response code indicates the domain is managed
1052
1184
  * by a registered identity provider. A 404 indicates the domain is not managed.
1053
1185
  *
1054
1186
  * @param {string} domain The domain or email address to lookup.
1055
1187
  * @returns {Promise<ClientResponse<LookupResponse>>}
1056
1188
  */
1057
1189
  lookupIdentityProvider(domain: string): Promise<ClientResponse<LookupResponse>>;
1190
+ /**
1191
+ * Retrieves the identity provider for the given domain and tenantId. A 200 response code indicates the domain is managed
1192
+ * by a registered identity provider. A 404 indicates the domain is not managed.
1193
+ *
1194
+ * @param {string} domain The domain or email address to lookup.
1195
+ * @param {UUID} tenantId If provided, the API searches for an identity provider scoped to the corresponding tenant that manages the requested domain.
1196
+ * If no result is found, the API then searches for global identity providers.
1197
+ * @returns {Promise<ClientResponse<LookupResponse>>}
1198
+ */
1199
+ lookupIdentityProviderByTenantId(domain: string, tenantId: UUID): Promise<ClientResponse<LookupResponse>>;
1058
1200
  /**
1059
1201
  * Modifies a temporal user action by changing the expiration of the action and optionally adding a comment to the
1060
1202
  * action.
@@ -1944,6 +2086,13 @@ export declare class FusionAuthClient {
1944
2086
  * @returns {Promise<ClientResponse<TotalsReportResponse>>}
1945
2087
  */
1946
2088
  retrieveTotalReport(): Promise<ClientResponse<TotalsReportResponse>>;
2089
+ /**
2090
+ * Retrieves the totals report. This allows excluding applicationTotals from the report. An empty list will include the applicationTotals.
2091
+ *
2092
+ * @param {Array<String>} excludes List of fields to exclude in the response. Currently only allows applicationTotals.
2093
+ * @returns {Promise<ClientResponse<TotalsReportResponse>>}
2094
+ */
2095
+ retrieveTotalReportWithExcludes(excludes: Array<String>): Promise<ClientResponse<TotalsReportResponse>>;
1947
2096
  /**
1948
2097
  * Retrieve two-factor recovery codes for a user.
1949
2098
  *
@@ -1963,6 +2112,17 @@ export declare class FusionAuthClient {
1963
2112
  * @returns {Promise<ClientResponse<TwoFactorStatusResponse>>}
1964
2113
  */
1965
2114
  retrieveTwoFactorStatus(userId: UUID, applicationId: UUID, twoFactorTrustId: string): Promise<ClientResponse<TwoFactorStatusResponse>>;
2115
+ /**
2116
+ * Retrieve a user's two-factor status.
2117
+ *
2118
+ * This can be used to see if a user will need to complete a two-factor challenge to complete a login,
2119
+ * and optionally identify the state of the two-factor trust across various applications. This operation
2120
+ * provides more payload options than retrieveTwoFactorStatus.
2121
+ *
2122
+ * @param {TwoFactorStatusRequest} request The request object that contains all the information used to check the status.
2123
+ * @returns {Promise<ClientResponse<TwoFactorStatusResponse>>}
2124
+ */
2125
+ retrieveTwoFactorStatusWithRequest(request: TwoFactorStatusRequest): Promise<ClientResponse<TwoFactorStatusResponse>>;
1966
2126
  /**
1967
2127
  * Retrieves the user for the given Id.
1968
2128
  *
@@ -2065,6 +2225,26 @@ export declare class FusionAuthClient {
2065
2225
  * @returns {Promise<ClientResponse<void>>}
2066
2226
  */
2067
2227
  retrieveUserCodeUsingAPIKey(user_code: string): Promise<ClientResponse<void>>;
2228
+ /**
2229
+ * Retrieve a user_code that is part of an in-progress Device Authorization Grant.
2230
+ *
2231
+ * This API is useful if you want to build your own login workflow to complete a device grant.
2232
+ *
2233
+ * This request will require an API key.
2234
+ *
2235
+ * @param {RetrieveUserCodeUsingAPIKeyRequest} request The user code retrieval request including optional tenantId.
2236
+ * @returns {Promise<ClientResponse<void>>}
2237
+ */
2238
+ retrieveUserCodeUsingAPIKeyWithRequest(request: RetrieveUserCodeUsingAPIKeyRequest): Promise<ClientResponse<void>>;
2239
+ /**
2240
+ * Retrieve a user_code that is part of an in-progress Device Authorization Grant.
2241
+ *
2242
+ * This API is useful if you want to build your own login workflow to complete a device grant.
2243
+ *
2244
+ * @param {RetrieveUserCodeRequest} request The user code retrieval request.
2245
+ * @returns {Promise<ClientResponse<void>>}
2246
+ */
2247
+ retrieveUserCodeWithRequest(request: RetrieveUserCodeRequest): Promise<ClientResponse<void>>;
2068
2248
  /**
2069
2249
  * Retrieves all the comments for the user with the given Id.
2070
2250
  *
@@ -2153,13 +2333,6 @@ export declare class FusionAuthClient {
2153
2333
  * @returns {Promise<ClientResponse<RecentLoginResponse>>}
2154
2334
  */
2155
2335
  retrieveUserRecentLogins(userId: UUID, offset: number, limit: number): Promise<ClientResponse<RecentLoginResponse>>;
2156
- /**
2157
- * Retrieves the user for the given Id. This method does not use an API key, instead it uses a JSON Web Token (JWT) for authentication.
2158
- *
2159
- * @param {string} encodedJWT The encoded JWT (access token).
2160
- * @returns {Promise<ClientResponse<UserResponse>>}
2161
- */
2162
- retrieveUserUsingJWT(encodedJWT: string): Promise<ClientResponse<UserResponse>>;
2163
2336
  /**
2164
2337
  * Retrieves the FusionAuth version string.
2165
2338
  *
@@ -2856,6 +3029,14 @@ export declare class FusionAuthClient {
2856
3029
  * @returns {Promise<ClientResponse<void>>}
2857
3030
  */
2858
3031
  validateDevice(user_code: string, client_id: string): Promise<ClientResponse<void>>;
3032
+ /**
3033
+ * Validates the end-user provided user_code from the user-interaction of the Device Authorization Grant.
3034
+ * If you build your own activation form you should validate the user provided code prior to beginning the Authorization grant.
3035
+ *
3036
+ * @param {ValidateDeviceRequest} request The device validation request.
3037
+ * @returns {Promise<ClientResponse<void>>}
3038
+ */
3039
+ validateDeviceWithRequest(request: ValidateDeviceRequest): Promise<ClientResponse<void>>;
2859
3040
  /**
2860
3041
  * Validates the provided JWT (encoded JWT string) to ensure the token is valid. A valid access token is properly
2861
3042
  * signed and not expired.
@@ -3008,6 +3189,16 @@ export interface AccessToken {
3008
3189
  token_type?: TokenType;
3009
3190
  userId?: UUID;
3010
3191
  }
3192
+ /**
3193
+ * The request object for introspecting an access token.
3194
+ *
3195
+ * @author Lyle Schemmerling
3196
+ */
3197
+ export interface AccessTokenIntrospectRequest {
3198
+ client_id?: string;
3199
+ tenantId?: string;
3200
+ token?: string;
3201
+ }
3011
3202
  /**
3012
3203
  * The user action request object.
3013
3204
  *
@@ -3139,6 +3330,7 @@ export interface AuthenticationTokenConfiguration extends Enableable {
3139
3330
  export interface LambdaConfiguration {
3140
3331
  accessTokenPopulateId?: UUID;
3141
3332
  idTokenPopulateId?: UUID;
3333
+ multiFactorRequirementId?: UUID;
3142
3334
  samlv2PopulateId?: UUID;
3143
3335
  selfServiceRegistrationValidationId?: UUID;
3144
3336
  userinfoPopulateId?: UUID;
@@ -3623,6 +3815,7 @@ export interface BaseIdentityProvider<D extends BaseIdentityProviderApplicationC
3623
3815
  linkingStrategy?: IdentityProviderLinkingStrategy;
3624
3816
  name?: string;
3625
3817
  tenantConfiguration?: Record<UUID, IdentityProviderTenantConfiguration>;
3818
+ tenantId?: UUID;
3626
3819
  type?: IdentityProviderType;
3627
3820
  }
3628
3821
  export interface LambdaConfiguration {
@@ -3795,6 +3988,27 @@ export declare enum ClientAuthenticationPolicy {
3795
3988
  NotRequired = "NotRequired",
3796
3989
  NotRequiredWhenUsingPKCE = "NotRequiredWhenUsingPKCE"
3797
3990
  }
3991
+ /**
3992
+ * Contains the parameters used to introspect an access token that was obtained via the client credentials grant.
3993
+ *
3994
+ * @author Lyle Schemmerling
3995
+ */
3996
+ export interface ClientCredentialsAccessTokenIntrospectRequest {
3997
+ tenantId?: string;
3998
+ token?: string;
3999
+ }
4000
+ /**
4001
+ * The request object to make a Client Credentials grant request to obtain an access token.
4002
+ *
4003
+ * @author Lyle Schemmerling
4004
+ */
4005
+ export interface ClientCredentialsGrantRequest {
4006
+ client_id?: string;
4007
+ client_secret?: string;
4008
+ grant_type?: string;
4009
+ scope?: string;
4010
+ tenantId?: string;
4011
+ }
3798
4012
  /**
3799
4013
  * @author Trevor Smith
3800
4014
  */
@@ -3911,6 +4125,19 @@ export declare enum ContentStatus {
3911
4125
  PENDING = "PENDING",
3912
4126
  REJECTED = "REJECTED"
3913
4127
  }
4128
+ /**
4129
+ * Represents the inbound lambda parameter 'context' for MFA Required lambdas.
4130
+ */
4131
+ export interface Context {
4132
+ accessToken?: string;
4133
+ action?: MultiFactorAction;
4134
+ application?: Application;
4135
+ authenticationThreats?: Array<AuthenticationThreats>;
4136
+ authenticationType?: string;
4137
+ eventInfo?: EventInfo;
4138
+ mfaTrust?: Trust;
4139
+ policies?: Policies;
4140
+ }
3914
4141
  /**
3915
4142
  * A number identifying a cryptographic algorithm. Values should be registered with the <a
3916
4143
  * href="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">IANA COSE Algorithms registry</a>
@@ -3980,6 +4207,18 @@ export interface DailyActiveUserReportResponse {
3980
4207
  dailyActiveUsers?: Array<Count>;
3981
4208
  total?: number;
3982
4209
  }
4210
+ /**
4211
+ * The request object to approve a device grant.
4212
+ *
4213
+ * @author Lyle Schemmerling
4214
+ */
4215
+ export interface DeviceApprovalRequest {
4216
+ client_id?: string;
4217
+ client_secret?: string;
4218
+ tenantId?: UUID;
4219
+ token?: string;
4220
+ user_code?: string;
4221
+ }
3983
4222
  /**
3984
4223
  * @author Daniel DeGroff
3985
4224
  */
@@ -3990,6 +4229,15 @@ export interface DeviceApprovalResponse {
3990
4229
  tenantId?: UUID;
3991
4230
  userId?: UUID;
3992
4231
  }
4232
+ /**
4233
+ * @author Lyle Schemmerling
4234
+ */
4235
+ export interface DeviceAuthorizationRequest {
4236
+ client_id?: string;
4237
+ client_secret?: string;
4238
+ scope?: string;
4239
+ tenantId?: UUID;
4240
+ }
3993
4241
  /**
3994
4242
  * @author Daniel DeGroff
3995
4243
  */
@@ -4590,6 +4838,13 @@ export declare enum EventType {
4590
4838
  UserIdentityVerified = "user.identity.verified",
4591
4839
  UserIdentityUpdate = "user.identity.update"
4592
4840
  }
4841
+ /**
4842
+ * Represent the various states/expectations of a user in the context of starting verification
4843
+ */
4844
+ export declare enum ExistingUserStrategy {
4845
+ mustExist = "mustExist",
4846
+ mustNotExist = "mustNotExist"
4847
+ }
4593
4848
  /**
4594
4849
  * An expandable API request.
4595
4850
  *
@@ -4672,6 +4927,18 @@ export interface ExternalJWTIdentityProvider extends BaseIdentityProvider<Extern
4672
4927
  oauth2?: IdentityProviderOauth2Configuration;
4673
4928
  uniqueIdentityClaim?: string;
4674
4929
  }
4930
+ /**
4931
+ * Determines if FusionAuth is in FIPS mode based on the system property <code>fusionauth.fips.enabled</code>. This can only be enabled once and
4932
+ * should be enabled when the VM starts or as close to that point as possible.
4933
+ * <p>
4934
+ * Once this has been enabled, it cannot be disabled.
4935
+ * <p>
4936
+ * This also provides some helpers for FIPS things such as password length requirements.
4937
+ *
4938
+ * @author Brian Pontarelli and Daniel DeGroff
4939
+ */
4940
+ export interface FIPS {
4941
+ }
4675
4942
  /**
4676
4943
  * @author Daniel DeGroff
4677
4944
  */
@@ -4918,6 +5185,15 @@ export interface FormResponse {
4918
5185
  */
4919
5186
  export interface FormStep {
4920
5187
  fields?: Array<UUID>;
5188
+ type?: FormStepType;
5189
+ }
5190
+ /**
5191
+ * Denotes the type of form step. This is used to configure different behavior on form steps in the registration flow.
5192
+ */
5193
+ export declare enum FormStepType {
5194
+ collectData = "collectData",
5195
+ verifyEmail = "verifyEmail",
5196
+ verifyPhoneNumber = "verifyPhoneNumber"
4921
5197
  }
4922
5198
  /**
4923
5199
  * @author Daniel DeGroff
@@ -5413,6 +5689,7 @@ export interface IdentityProviderResponse {
5413
5689
  export interface IdentityProviderSearchCriteria extends BaseSearchCriteria {
5414
5690
  applicationId?: UUID;
5415
5691
  name?: string;
5692
+ tenantId?: UUID;
5416
5693
  type?: IdentityProviderType;
5417
5694
  }
5418
5695
  /**
@@ -5747,12 +6024,14 @@ export declare enum KeyAlgorithm {
5747
6024
  HS512 = "HS512",
5748
6025
  RS256 = "RS256",
5749
6026
  RS384 = "RS384",
5750
- RS512 = "RS512"
6027
+ RS512 = "RS512",
6028
+ Ed25519 = "Ed25519"
5751
6029
  }
5752
6030
  export declare enum KeyType {
5753
6031
  EC = "EC",
5754
6032
  RSA = "RSA",
5755
- HMAC = "HMAC"
6033
+ HMAC = "HMAC",
6034
+ OKP = "OKP"
5756
6035
  }
5757
6036
  /**
5758
6037
  * Key API request object.
@@ -5939,7 +6218,8 @@ export declare enum LambdaType {
5939
6218
  SCIMServerUserResponseConverter = "SCIMServerUserResponseConverter",
5940
6219
  SelfServiceRegistrationValidation = "SelfServiceRegistrationValidation",
5941
6220
  UserInfoPopulate = "UserInfoPopulate",
5942
- LoginValidation = "LoginValidation"
6221
+ LoginValidation = "LoginValidation",
6222
+ MFARequirement = "MFARequirement"
5943
6223
  }
5944
6224
  /**
5945
6225
  * @author Daniel DeGroff
@@ -6136,6 +6416,7 @@ export interface IdentityProviderDetails {
6136
6416
  idpEndpoint?: string;
6137
6417
  name?: string;
6138
6418
  oauth2?: IdentityProviderOauth2Configuration;
6419
+ tenantId?: UUID;
6139
6420
  type?: IdentityProviderType;
6140
6421
  }
6141
6422
  /**
@@ -6259,6 +6540,14 @@ export interface MonthlyActiveUserReportResponse {
6259
6540
  monthlyActiveUsers?: Array<Count>;
6260
6541
  total?: number;
6261
6542
  }
6543
+ /**
6544
+ * Communicate various actions/contexts in which multi-factor authentication can be used.
6545
+ */
6546
+ export declare enum MultiFactorAction {
6547
+ changePassword = "changePassword",
6548
+ login = "login",
6549
+ stepUp = "stepUp"
6550
+ }
6262
6551
  /**
6263
6552
  * @author Daniel DeGroff
6264
6553
  */
@@ -6335,6 +6624,34 @@ export declare enum OAuthApplicationRelationship {
6335
6624
  FirstParty = "FirstParty",
6336
6625
  ThirdParty = "ThirdParty"
6337
6626
  }
6627
+ /**
6628
+ * The request object for exchanging an OAuth authorization code for an access token.
6629
+ *
6630
+ * @author Lyle Schemmerling
6631
+ */
6632
+ export interface OAuthCodeAccessTokenRequest {
6633
+ client_id?: string;
6634
+ client_secret?: string;
6635
+ code?: string;
6636
+ grant_type?: string;
6637
+ redirect_uri?: string;
6638
+ tenantId?: string;
6639
+ }
6640
+ /**
6641
+ * The request object to make a request to the Token endpoint to exchange the authorization code returned from the Authorize endpoint and a
6642
+ * code_verifier for an access token.
6643
+ *
6644
+ * @author Lyle Schemmerling
6645
+ */
6646
+ export interface OAuthCodePKCEAccessTokenRequest {
6647
+ client_id?: string;
6648
+ client_secret?: string;
6649
+ code?: string;
6650
+ code_verifier?: string;
6651
+ grant_type?: string;
6652
+ redirect_uri?: string;
6653
+ tenantId?: UUID;
6654
+ }
6338
6655
  /**
6339
6656
  * @author Daniel DeGroff
6340
6657
  */
@@ -6452,7 +6769,8 @@ export declare enum OAuthErrorType {
6452
6769
  two_factor_required = "two_factor_required",
6453
6770
  authorization_pending = "authorization_pending",
6454
6771
  expired_token = "expired_token",
6455
- unsupported_token_type = "unsupported_token_type"
6772
+ unsupported_token_type = "unsupported_token_type",
6773
+ invalid_dpop_proof = "invalid_dpop_proof"
6456
6774
  }
6457
6775
  /**
6458
6776
  * @author Daniel DeGroff
@@ -6513,6 +6831,7 @@ export interface OpenIdConfiguration {
6513
6831
  backchannel_logout_supported?: boolean;
6514
6832
  claims_supported?: Array<string>;
6515
6833
  device_authorization_endpoint?: string;
6834
+ dpop_signing_alg_values_supported?: Array<string>;
6516
6835
  end_session_endpoint?: string;
6517
6836
  frontchannel_logout_supported?: boolean;
6518
6837
  grant_types_supported?: Array<string>;
@@ -6580,6 +6899,7 @@ export interface PasswordEncryptionConfiguration {
6580
6899
  */
6581
6900
  export interface PasswordValidationRules {
6582
6901
  breachDetection?: PasswordBreachDetection;
6902
+ disallowUserLoginId?: boolean;
6583
6903
  maxLength?: number;
6584
6904
  minLength?: number;
6585
6905
  rememberPreviousPasswords?: RememberPreviousPasswords;
@@ -6670,6 +6990,14 @@ export interface PhoneUnverifiedOptions {
6670
6990
  allowPhoneNumberChangeWhenGated?: boolean;
6671
6991
  behavior?: UnverifiedBehavior;
6672
6992
  }
6993
+ /**
6994
+ * Represents the inbound lambda parameter 'policies' for MFA Required lambdas.
6995
+ */
6996
+ export interface Policies {
6997
+ applicationLoginPolicy?: MultiFactorLoginPolicy;
6998
+ applicationMultiFactorTrustPolicy?: ApplicationMultiFactorTrustPolicy;
6999
+ tenantLoginPolicy?: MultiFactorLoginPolicy;
7000
+ }
6673
7001
  /**
6674
7002
  * @author Michael Sleevi
6675
7003
  */
@@ -6874,10 +7202,12 @@ export interface ReactorStatus {
6874
7202
  applicationThemes?: ReactorFeatureStatus;
6875
7203
  breachedPasswordDetection?: ReactorFeatureStatus;
6876
7204
  connectors?: ReactorFeatureStatus;
7205
+ dPoP?: ReactorFeatureStatus;
6877
7206
  entityManagement?: ReactorFeatureStatus;
6878
7207
  expiration?: string;
6879
7208
  licenseAttributes?: Record<string, string>;
6880
7209
  licensed?: boolean;
7210
+ multiFactorLambdas?: ReactorFeatureStatus;
6881
7211
  scimServer?: ReactorFeatureStatus;
6882
7212
  tenantManagerApplication?: ReactorFeatureStatus;
6883
7213
  threatDetection?: ReactorFeatureStatus;
@@ -6928,6 +7258,20 @@ export interface MetaData {
6928
7258
  device?: DeviceInfo;
6929
7259
  scopes?: Array<string>;
6930
7260
  }
7261
+ /**
7262
+ * The request object to exchange a Refresh Token for an Access Token.
7263
+ *
7264
+ * @author Lyle Schemmerling
7265
+ */
7266
+ export interface RefreshTokenAccessTokenRequest {
7267
+ client_id?: string;
7268
+ client_secret?: string;
7269
+ grant_type?: string;
7270
+ refresh_token?: string;
7271
+ scope?: string;
7272
+ tenantId?: UUID;
7273
+ user_code?: string;
7274
+ }
6931
7275
  /**
6932
7276
  * @author Daniel DeGroff
6933
7277
  */
@@ -7025,6 +7369,7 @@ export interface RegistrationRequest extends BaseEventRequest {
7025
7369
  skipRegistrationVerification?: boolean;
7026
7370
  skipVerification?: boolean;
7027
7371
  user?: User;
7372
+ verificationIds?: Array<string>;
7028
7373
  }
7029
7374
  /**
7030
7375
  * Registration API request object.
@@ -7040,6 +7385,7 @@ export interface RegistrationResponse {
7040
7385
  token?: string;
7041
7386
  tokenExpirationInstant?: number;
7042
7387
  user?: User;
7388
+ verificationIds?: Array<VerificationId>;
7043
7389
  }
7044
7390
  /**
7045
7391
  * @author Daniel DeGroff
@@ -7076,6 +7422,13 @@ export interface RememberPreviousPasswords extends Enableable {
7076
7422
  export interface Requirable extends Enableable {
7077
7423
  required?: boolean;
7078
7424
  }
7425
+ /**
7426
+ * Represents the inbound lambda parameter 'result' for MFA Required lambdas.
7427
+ */
7428
+ export interface RequiredLambdaResult {
7429
+ required?: boolean;
7430
+ sendSuspiciousLoginEvent?: boolean;
7431
+ }
7079
7432
  /**
7080
7433
  * Interface describing the need for CORS configuration.
7081
7434
  *
@@ -7094,6 +7447,26 @@ export declare enum ResidentKeyRequirement {
7094
7447
  preferred = "preferred",
7095
7448
  required = "required"
7096
7449
  }
7450
+ /**
7451
+ * The request object for retrieving a user code that is part of an in-progress Device Authorization Grant.
7452
+ *
7453
+ * @author Lyle Schemmerling
7454
+ */
7455
+ export interface RetrieveUserCodeRequest {
7456
+ client_id?: string;
7457
+ client_secret?: string;
7458
+ tenantId?: UUID;
7459
+ user_code?: string;
7460
+ }
7461
+ /**
7462
+ * The request object for retrieving a user code that is part of an in-progress Device Authorization Grant using an API key
7463
+ *
7464
+ * @author Lyle Schemmerling
7465
+ */
7466
+ export interface RetrieveUserCodeUsingAPIKeyRequest {
7467
+ tenantId?: UUID;
7468
+ user_code?: string;
7469
+ }
7097
7470
  /**
7098
7471
  * @author Brian Pontarelli
7099
7472
  */
@@ -7575,6 +7948,7 @@ export interface TenantFormConfiguration {
7575
7948
  */
7576
7949
  export interface TenantLambdaConfiguration {
7577
7950
  loginValidationId?: UUID;
7951
+ multiFactorRequirementId?: UUID;
7578
7952
  scimEnterpriseUserRequestConverterId?: UUID;
7579
7953
  scimEnterpriseUserResponseConverterId?: UUID;
7580
7954
  scimGroupRequestConverterId?: UUID;
@@ -7903,13 +8277,15 @@ export interface TimeBasedDeletePolicy extends Enableable {
7903
8277
  * <a href="https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05">
7904
8278
  * Draft RFC on OAuth 2.0 Message Authentication Code (MAC) Tokens</a>
7905
8279
  * </li>
8280
+ * <li>DPoP Token type as defined by <a href="https://datatracker.ietf.org/doc/html/rfc9449">RFC 9449</a></li>
7906
8281
  * </ul>
7907
8282
  *
7908
8283
  * @author Daniel DeGroff
7909
8284
  */
7910
8285
  export declare enum TokenType {
7911
8286
  Bearer = "Bearer",
7912
- MAC = "MAC"
8287
+ MAC = "MAC",
8288
+ DPoP = "DPoP"
7913
8289
  }
7914
8290
  /**
7915
8291
  * The response from the total report. This report stores the total numbers for each application.
@@ -7938,6 +8314,24 @@ export declare enum TransactionType {
7938
8314
  SuperMajority = "SuperMajority",
7939
8315
  AbsoluteMajority = "AbsoluteMajority"
7940
8316
  }
8317
+ /**
8318
+ * Represents the inbound lambda parameter 'mfaTrust' inside the 'context' parameter for MFA Required lambdas.
8319
+ */
8320
+ export interface Trust {
8321
+ applicationId?: UUID;
8322
+ attributes?: Record<string, string>;
8323
+ expirationInstant?: number;
8324
+ id?: string;
8325
+ insertInstant?: number;
8326
+ startInstants?: StartInstant;
8327
+ state?: Record<string, any>;
8328
+ tenantId?: UUID;
8329
+ userId?: UUID;
8330
+ }
8331
+ export interface StartInstant {
8332
+ applications?: Record<UUID, number>;
8333
+ tenant?: number;
8334
+ }
7941
8335
  /**
7942
8336
  * @author Brett Guy
7943
8337
  */
@@ -8082,6 +8476,16 @@ export interface TwoFactorStartResponse {
8082
8476
  methods?: Array<TwoFactorMethod>;
8083
8477
  twoFactorId?: string;
8084
8478
  }
8479
+ /**
8480
+ * Check the status of two-factor authentication for a user, with more options than on a GET request.
8481
+ */
8482
+ export interface TwoFactorStatusRequest extends BaseEventRequest {
8483
+ accessToken?: string;
8484
+ action?: MultiFactorAction;
8485
+ applicationId?: UUID;
8486
+ twoFactorTrustId?: string;
8487
+ userId?: UUID;
8488
+ }
8085
8489
  /**
8086
8490
  * @author Daniel DeGroff
8087
8491
  */
@@ -8411,6 +8815,21 @@ export interface UserCreateCompleteEvent extends BaseUserEvent {
8411
8815
  */
8412
8816
  export interface UserCreateEvent extends BaseUserEvent {
8413
8817
  }
8818
+ /**
8819
+ * The request object for exchanging user credentials (username and password) for an access token.
8820
+ *
8821
+ * @author Lyle Schemmerling
8822
+ */
8823
+ export interface UserCredentialsAccessTokenRequest {
8824
+ client_id?: string;
8825
+ client_secret?: string;
8826
+ grant_type?: string;
8827
+ password?: string;
8828
+ scope?: string;
8829
+ tenantId?: string;
8830
+ user_code?: string;
8831
+ username?: string;
8832
+ }
8414
8833
  /**
8415
8834
  * Models the User Deactivate Event.
8416
8835
  *
@@ -8851,6 +9270,16 @@ export declare enum UserVerificationRequirement {
8851
9270
  */
8852
9271
  export interface UserinfoResponse extends Record<string, any> {
8853
9272
  }
9273
+ /**
9274
+ * The request object for validating an end-user provided user_code from the user-interaction of the Device Authorization Grant
9275
+ *
9276
+ * @author Lyle Schemmerling
9277
+ */
9278
+ export interface ValidateDeviceRequest {
9279
+ client_id?: string;
9280
+ tenantId?: UUID;
9281
+ user_code?: string;
9282
+ }
8854
9283
  /**
8855
9284
  * @author Daniel DeGroff
8856
9285
  */
@@ -8924,6 +9353,7 @@ export interface VerifySendRequest {
8924
9353
  */
8925
9354
  export interface VerifyStartRequest {
8926
9355
  applicationId?: UUID;
9356
+ existingUserStrategy?: ExistingUserStrategy;
8927
9357
  loginId?: string;
8928
9358
  loginIdType?: string;
8929
9359
  state?: Record<string, any>;