All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.cognitoidp.model.RespondToAuthChallengeRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Cognito Identity Provider Service module holds the client classes that are used for communicating with Amazon Cognito Identity Provider Service.

There is a newer version: 1.12.772
Show newest version
/*
 * Copyright 2019-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.cognitoidp.model;

import java.io.Serializable;
import javax.annotation.Generated;

import com.amazonaws.AmazonWebServiceRequest;

/**
 * 

* The request to respond to an authentication challenge. *

* * @see AWS * API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class RespondToAuthChallengeRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The app client ID. *

*/ private String clientId; /** *

* The challenge name. For more information, see InitiateAuth. *

*

* ADMIN_NO_SRP_AUTH isn't a valid value. *

*/ private String challengeName; /** *

* The session that should be passed both ways in challenge-response calls to the service. If * InitiateAuth or RespondToAuthChallenge API call determines that the caller must pass * another challenge, they return a session with other challenge parameters. This session should be passed as it is * to the next RespondToAuthChallenge API call. *

*/ private String session; /** *

* The responses to the challenge that you received in the previous request. Each challenge has its own required * response parameters. The following examples are partial JSON request bodies that highlight challenge-response * parameters. *

* *

* You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. *

*
*
*
SMS_MFA
*
*

* "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} *

*
*
PASSWORD_VERIFIER
*
*

* "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
CUSTOM_CHALLENGE
*
*

* "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
NEW_PASSWORD_REQUIRED
*
*

* "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} *

*

* To set any required attributes that InitiateAuth returned in an requiredAttributes * parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set * values for writable attributes that aren't required by your user pool. *

* *

* In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already * has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the * requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify * the value of any additional attributes. *

*
*
SOFTWARE_TOKEN_MFA
*
*

* "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} *

*
*
DEVICE_SRP_AUTH
*
*

* "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} *

*
*
DEVICE_PASSWORD_VERIFIER
*
*

* "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*
*
MFA_SETUP
*
*

* "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" *

*
*
SELECT_MFA_TYPE
*
*

* "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} *

*
*
*

* For more information about SECRET_HASH, see Computing secret hash values. For information about DEVICE_KEY, see Working with user devices in your user pool. *

*/ private java.util.Map challengeResponses; /** *

* The Amazon Pinpoint analytics metadata that contributes to your metrics for RespondToAuthChallenge * calls. *

*/ private AnalyticsMetadataType analyticsMetadata; /** *

* Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito * advanced security evaluates the risk of an authentication event based on the context that your app generates and * passes to Amazon Cognito when it makes API requests. *

*/ private UserContextDataType userContextData; /** *

* A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers. *

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following * triggers: post authentication, pre token generation, define auth challenge, create auth * challenge, and verify auth challenge. When Amazon Cognito invokes any of these functions, it passes a * JSON payload, which the function receives as input. This payload contains a clientMetadata * attribute, which provides the data that you assigned to the ClientMetadata parameter in your * RespondToAuthChallenge request. In your function code in Lambda, you can process the clientMetadata * value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user pool * to support custom workflows. If your user pool configuration doesn't include triggers, the ClientMetadata * parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*
*/ private java.util.Map clientMetadata; /** *

* The app client ID. *

* * @param clientId * The app client ID. */ public void setClientId(String clientId) { this.clientId = clientId; } /** *

* The app client ID. *

* * @return The app client ID. */ public String getClientId() { return this.clientId; } /** *

* The app client ID. *

* * @param clientId * The app client ID. * @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest withClientId(String clientId) { setClientId(clientId); return this; } /** *

* The challenge name. For more information, see InitiateAuth. *

*

* ADMIN_NO_SRP_AUTH isn't a valid value. *

* * @param challengeName * The challenge name. For more information, see InitiateAuth.

*

* ADMIN_NO_SRP_AUTH isn't a valid value. * @see ChallengeNameType */ public void setChallengeName(String challengeName) { this.challengeName = challengeName; } /** *

* The challenge name. For more information, see InitiateAuth. *

*

* ADMIN_NO_SRP_AUTH isn't a valid value. *

* * @return The challenge name. For more information, see InitiateAuth.

*

* ADMIN_NO_SRP_AUTH isn't a valid value. * @see ChallengeNameType */ public String getChallengeName() { return this.challengeName; } /** *

* The challenge name. For more information, see InitiateAuth. *

*

* ADMIN_NO_SRP_AUTH isn't a valid value. *

* * @param challengeName * The challenge name. For more information, see InitiateAuth.

*

* ADMIN_NO_SRP_AUTH isn't a valid value. * @return Returns a reference to this object so that method calls can be chained together. * @see ChallengeNameType */ public RespondToAuthChallengeRequest withChallengeName(String challengeName) { setChallengeName(challengeName); return this; } /** *

* The challenge name. For more information, see InitiateAuth. *

*

* ADMIN_NO_SRP_AUTH isn't a valid value. *

* * @param challengeName * The challenge name. For more information, see InitiateAuth.

*

* ADMIN_NO_SRP_AUTH isn't a valid value. * @see ChallengeNameType */ public void setChallengeName(ChallengeNameType challengeName) { withChallengeName(challengeName); } /** *

* The challenge name. For more information, see InitiateAuth. *

*

* ADMIN_NO_SRP_AUTH isn't a valid value. *

* * @param challengeName * The challenge name. For more information, see InitiateAuth.

*

* ADMIN_NO_SRP_AUTH isn't a valid value. * @return Returns a reference to this object so that method calls can be chained together. * @see ChallengeNameType */ public RespondToAuthChallengeRequest withChallengeName(ChallengeNameType challengeName) { this.challengeName = challengeName.toString(); return this; } /** *

* The session that should be passed both ways in challenge-response calls to the service. If * InitiateAuth or RespondToAuthChallenge API call determines that the caller must pass * another challenge, they return a session with other challenge parameters. This session should be passed as it is * to the next RespondToAuthChallenge API call. *

* * @param session * The session that should be passed both ways in challenge-response calls to the service. If * InitiateAuth or RespondToAuthChallenge API call determines that the caller must * pass another challenge, they return a session with other challenge parameters. This session should be * passed as it is to the next RespondToAuthChallenge API call. */ public void setSession(String session) { this.session = session; } /** *

* The session that should be passed both ways in challenge-response calls to the service. If * InitiateAuth or RespondToAuthChallenge API call determines that the caller must pass * another challenge, they return a session with other challenge parameters. This session should be passed as it is * to the next RespondToAuthChallenge API call. *

* * @return The session that should be passed both ways in challenge-response calls to the service. If * InitiateAuth or RespondToAuthChallenge API call determines that the caller must * pass another challenge, they return a session with other challenge parameters. This session should be * passed as it is to the next RespondToAuthChallenge API call. */ public String getSession() { return this.session; } /** *

* The session that should be passed both ways in challenge-response calls to the service. If * InitiateAuth or RespondToAuthChallenge API call determines that the caller must pass * another challenge, they return a session with other challenge parameters. This session should be passed as it is * to the next RespondToAuthChallenge API call. *

* * @param session * The session that should be passed both ways in challenge-response calls to the service. If * InitiateAuth or RespondToAuthChallenge API call determines that the caller must * pass another challenge, they return a session with other challenge parameters. This session should be * passed as it is to the next RespondToAuthChallenge API call. * @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest withSession(String session) { setSession(session); return this; } /** *

* The responses to the challenge that you received in the previous request. Each challenge has its own required * response parameters. The following examples are partial JSON request bodies that highlight challenge-response * parameters. *

* *

* You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. *

*
*
*
SMS_MFA
*
*

* "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} *

*
*
PASSWORD_VERIFIER
*
*

* "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
CUSTOM_CHALLENGE
*
*

* "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
NEW_PASSWORD_REQUIRED
*
*

* "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} *

*

* To set any required attributes that InitiateAuth returned in an requiredAttributes * parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set * values for writable attributes that aren't required by your user pool. *

* *

* In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already * has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the * requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify * the value of any additional attributes. *

*
*
SOFTWARE_TOKEN_MFA
*
*

* "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} *

*
*
DEVICE_SRP_AUTH
*
*

* "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} *

*
*
DEVICE_PASSWORD_VERIFIER
*
*

* "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*
*
MFA_SETUP
*
*

* "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" *

*
*
SELECT_MFA_TYPE
*
*

* "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} *

*
*
*

* For more information about SECRET_HASH, see Computing secret hash values. For information about DEVICE_KEY, see Working with user devices in your user pool. *

* * @return The responses to the challenge that you received in the previous request. Each challenge has its own * required response parameters. The following examples are partial JSON request bodies that highlight * challenge-response parameters.

*

* You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client * secret. *

*
*
*
SMS_MFA
*
*

* "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} *

*
*
PASSWORD_VERIFIER
*
*

* "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
CUSTOM_CHALLENGE
*
*

* "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
NEW_PASSWORD_REQUIRED
*
*

* "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} *

*

* To set any required attributes that InitiateAuth returned in an * requiredAttributes parameter, add * "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set values * for writable attributes that aren't required by your user pool. *

* *

* In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that * already has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito * returned in the requiredAttributes parameter, then use the UpdateUserAttributes * API operation to modify the value of any additional attributes. *

*
*
SOFTWARE_TOKEN_MFA
*
*

* "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} *

*
*
DEVICE_SRP_AUTH
*
*

* "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} *

*
*
DEVICE_PASSWORD_VERIFIER
*
*

* "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*
*
MFA_SETUP
*
*

* "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" *

*
*
SELECT_MFA_TYPE
*
*

* "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} *

*
*
*

* For more information about SECRET_HASH, see Computing secret hash values. For information about DEVICE_KEY, see Working with user devices in your user pool. */ public java.util.Map getChallengeResponses() { return challengeResponses; } /** *

* The responses to the challenge that you received in the previous request. Each challenge has its own required * response parameters. The following examples are partial JSON request bodies that highlight challenge-response * parameters. *

* *

* You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. *

*
*
*
SMS_MFA
*
*

* "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} *

*
*
PASSWORD_VERIFIER
*
*

* "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
CUSTOM_CHALLENGE
*
*

* "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
NEW_PASSWORD_REQUIRED
*
*

* "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} *

*

* To set any required attributes that InitiateAuth returned in an requiredAttributes * parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set * values for writable attributes that aren't required by your user pool. *

* *

* In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already * has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the * requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify * the value of any additional attributes. *

*
*
SOFTWARE_TOKEN_MFA
*
*

* "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} *

*
*
DEVICE_SRP_AUTH
*
*

* "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} *

*
*
DEVICE_PASSWORD_VERIFIER
*
*

* "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*
*
MFA_SETUP
*
*

* "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" *

*
*
SELECT_MFA_TYPE
*
*

* "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} *

*
*
*

* For more information about SECRET_HASH, see Computing secret hash values. For information about DEVICE_KEY, see Working with user devices in your user pool. *

* * @param challengeResponses * The responses to the challenge that you received in the previous request. Each challenge has its own * required response parameters. The following examples are partial JSON request bodies that highlight * challenge-response parameters.

*

* You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client * secret. *

*
*
*
SMS_MFA
*
*

* "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} *

*
*
PASSWORD_VERIFIER
*
*

* "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
CUSTOM_CHALLENGE
*
*

* "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
NEW_PASSWORD_REQUIRED
*
*

* "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} *

*

* To set any required attributes that InitiateAuth returned in an * requiredAttributes parameter, add * "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set values * for writable attributes that aren't required by your user pool. *

* *

* In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that * already has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito * returned in the requiredAttributes parameter, then use the UpdateUserAttributes * API operation to modify the value of any additional attributes. *

*
*
SOFTWARE_TOKEN_MFA
*
*

* "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} *

*
*
DEVICE_SRP_AUTH
*
*

* "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} *

*
*
DEVICE_PASSWORD_VERIFIER
*
*

* "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*
*
MFA_SETUP
*
*

* "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" *

*
*
SELECT_MFA_TYPE
*
*

* "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} *

*
*
*

* For more information about SECRET_HASH, see Computing secret hash values. For information about DEVICE_KEY, see Working with user devices in your user pool. */ public void setChallengeResponses(java.util.Map challengeResponses) { this.challengeResponses = challengeResponses; } /** *

* The responses to the challenge that you received in the previous request. Each challenge has its own required * response parameters. The following examples are partial JSON request bodies that highlight challenge-response * parameters. *

* *

* You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. *

*
*
*
SMS_MFA
*
*

* "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} *

*
*
PASSWORD_VERIFIER
*
*

* "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
CUSTOM_CHALLENGE
*
*

* "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
NEW_PASSWORD_REQUIRED
*
*

* "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} *

*

* To set any required attributes that InitiateAuth returned in an requiredAttributes * parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set * values for writable attributes that aren't required by your user pool. *

* *

* In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already * has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the * requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify * the value of any additional attributes. *

*
*
SOFTWARE_TOKEN_MFA
*
*

* "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} *

*
*
DEVICE_SRP_AUTH
*
*

* "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} *

*
*
DEVICE_PASSWORD_VERIFIER
*
*

* "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*
*
MFA_SETUP
*
*

* "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" *

*
*
SELECT_MFA_TYPE
*
*

* "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} *

*
*
*

* For more information about SECRET_HASH, see Computing secret hash values. For information about DEVICE_KEY, see Working with user devices in your user pool. *

* * @param challengeResponses * The responses to the challenge that you received in the previous request. Each challenge has its own * required response parameters. The following examples are partial JSON request bodies that highlight * challenge-response parameters.

*

* You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client * secret. *

*
*
*
SMS_MFA
*
*

* "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} *

*
*
PASSWORD_VERIFIER
*
*

* "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
CUSTOM_CHALLENGE
*
*

* "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} *

*

* Add "DEVICE_KEY" when you sign in with a remembered device. *

*
*
NEW_PASSWORD_REQUIRED
*
*

* "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} *

*

* To set any required attributes that InitiateAuth returned in an * requiredAttributes parameter, add * "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set values * for writable attributes that aren't required by your user pool. *

* *

* In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that * already has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito * returned in the requiredAttributes parameter, then use the UpdateUserAttributes * API operation to modify the value of any additional attributes. *

*
*
SOFTWARE_TOKEN_MFA
*
*

* "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} *

*
*
DEVICE_SRP_AUTH
*
*

* "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} *

*
*
DEVICE_PASSWORD_VERIFIER
*
*

* "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} *

*
*
MFA_SETUP
*
*

* "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" *

*
*
SELECT_MFA_TYPE
*
*

* "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} *

*
*
*

* For more information about SECRET_HASH, see Computing secret hash values. For information about DEVICE_KEY, see Working with user devices in your user pool. * @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest withChallengeResponses(java.util.Map challengeResponses) { setChallengeResponses(challengeResponses); return this; } /** * Add a single ChallengeResponses entry * * @see RespondToAuthChallengeRequest#withChallengeResponses * @returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest addChallengeResponsesEntry(String key, String value) { if (null == this.challengeResponses) { this.challengeResponses = new java.util.HashMap(); } if (this.challengeResponses.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.challengeResponses.put(key, value); return this; } /** * Removes all the entries added into ChallengeResponses. * * @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest clearChallengeResponsesEntries() { this.challengeResponses = null; return this; } /** *

* The Amazon Pinpoint analytics metadata that contributes to your metrics for RespondToAuthChallenge * calls. *

* * @param analyticsMetadata * The Amazon Pinpoint analytics metadata that contributes to your metrics for * RespondToAuthChallenge calls. */ public void setAnalyticsMetadata(AnalyticsMetadataType analyticsMetadata) { this.analyticsMetadata = analyticsMetadata; } /** *

* The Amazon Pinpoint analytics metadata that contributes to your metrics for RespondToAuthChallenge * calls. *

* * @return The Amazon Pinpoint analytics metadata that contributes to your metrics for * RespondToAuthChallenge calls. */ public AnalyticsMetadataType getAnalyticsMetadata() { return this.analyticsMetadata; } /** *

* The Amazon Pinpoint analytics metadata that contributes to your metrics for RespondToAuthChallenge * calls. *

* * @param analyticsMetadata * The Amazon Pinpoint analytics metadata that contributes to your metrics for * RespondToAuthChallenge calls. * @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest withAnalyticsMetadata(AnalyticsMetadataType analyticsMetadata) { setAnalyticsMetadata(analyticsMetadata); return this; } /** *

* Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito * advanced security evaluates the risk of an authentication event based on the context that your app generates and * passes to Amazon Cognito when it makes API requests. *

* * @param userContextData * Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon * Cognito advanced security evaluates the risk of an authentication event based on the context that your app * generates and passes to Amazon Cognito when it makes API requests. */ public void setUserContextData(UserContextDataType userContextData) { this.userContextData = userContextData; } /** *

* Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito * advanced security evaluates the risk of an authentication event based on the context that your app generates and * passes to Amazon Cognito when it makes API requests. *

* * @return Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon * Cognito advanced security evaluates the risk of an authentication event based on the context that your * app generates and passes to Amazon Cognito when it makes API requests. */ public UserContextDataType getUserContextData() { return this.userContextData; } /** *

* Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito * advanced security evaluates the risk of an authentication event based on the context that your app generates and * passes to Amazon Cognito when it makes API requests. *

* * @param userContextData * Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon * Cognito advanced security evaluates the risk of an authentication event based on the context that your app * generates and passes to Amazon Cognito when it makes API requests. * @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest withUserContextData(UserContextDataType userContextData) { setUserContextData(userContextData); return this; } /** *

* A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers. *

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following * triggers: post authentication, pre token generation, define auth challenge, create auth * challenge, and verify auth challenge. When Amazon Cognito invokes any of these functions, it passes a * JSON payload, which the function receives as input. This payload contains a clientMetadata * attribute, which provides the data that you assigned to the ClientMetadata parameter in your * RespondToAuthChallenge request. In your function code in Lambda, you can process the clientMetadata * value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user pool * to support custom workflows. If your user pool configuration doesn't include triggers, the ClientMetadata * parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*
* * @return A map of custom key-value pairs that you can provide as input for any custom workflows that this action * triggers.

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the * following triggers: post authentication, pre token generation, define auth * challenge, create auth challenge, and verify auth challenge. When Amazon Cognito * invokes any of these functions, it passes a JSON payload, which the function receives as input. This * payload contains a clientMetadata attribute, which provides the data that you assigned to * the ClientMetadata parameter in your RespondToAuthChallenge request. In your function code in Lambda, you * can process the clientMetadata value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a * user pool to support custom workflows. If your user pool configuration doesn't include triggers, the * ClientMetadata parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*/ public java.util.Map getClientMetadata() { return clientMetadata; } /** *

* A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers. *

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following * triggers: post authentication, pre token generation, define auth challenge, create auth * challenge, and verify auth challenge. When Amazon Cognito invokes any of these functions, it passes a * JSON payload, which the function receives as input. This payload contains a clientMetadata * attribute, which provides the data that you assigned to the ClientMetadata parameter in your * RespondToAuthChallenge request. In your function code in Lambda, you can process the clientMetadata * value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user pool * to support custom workflows. If your user pool configuration doesn't include triggers, the ClientMetadata * parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*
* * @param clientMetadata * A map of custom key-value pairs that you can provide as input for any custom workflows that this action * triggers.

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following * triggers: post authentication, pre token generation, define auth challenge, create * auth challenge, and verify auth challenge. When Amazon Cognito invokes any of these functions, * it passes a JSON payload, which the function receives as input. This payload contains a * clientMetadata attribute, which provides the data that you assigned to the ClientMetadata * parameter in your RespondToAuthChallenge request. In your function code in Lambda, you can process the * clientMetadata value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user * pool to support custom workflows. If your user pool configuration doesn't include triggers, the * ClientMetadata parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*/ public void setClientMetadata(java.util.Map clientMetadata) { this.clientMetadata = clientMetadata; } /** *

* A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers. *

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following * triggers: post authentication, pre token generation, define auth challenge, create auth * challenge, and verify auth challenge. When Amazon Cognito invokes any of these functions, it passes a * JSON payload, which the function receives as input. This payload contains a clientMetadata * attribute, which provides the data that you assigned to the ClientMetadata parameter in your * RespondToAuthChallenge request. In your function code in Lambda, you can process the clientMetadata * value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user pool * to support custom workflows. If your user pool configuration doesn't include triggers, the ClientMetadata * parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*
* * @param clientMetadata * A map of custom key-value pairs that you can provide as input for any custom workflows that this action * triggers.

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following * triggers: post authentication, pre token generation, define auth challenge, create * auth challenge, and verify auth challenge. When Amazon Cognito invokes any of these functions, * it passes a JSON payload, which the function receives as input. This payload contains a * clientMetadata attribute, which provides the data that you assigned to the ClientMetadata * parameter in your RespondToAuthChallenge request. In your function code in Lambda, you can process the * clientMetadata value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user * pool to support custom workflows. If your user pool configuration doesn't include triggers, the * ClientMetadata parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
* @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest withClientMetadata(java.util.Map clientMetadata) { setClientMetadata(clientMetadata); return this; } /** * Add a single ClientMetadata entry * * @see RespondToAuthChallengeRequest#withClientMetadata * @returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest addClientMetadataEntry(String key, String value) { if (null == this.clientMetadata) { this.clientMetadata = new java.util.HashMap(); } if (this.clientMetadata.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.clientMetadata.put(key, value); return this; } /** * Removes all the entries added into ClientMetadata. * * @return Returns a reference to this object so that method calls can be chained together. */ public RespondToAuthChallengeRequest clearClientMetadataEntries() { this.clientMetadata = null; return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getClientId() != null) sb.append("ClientId: ").append("***Sensitive Data Redacted***").append(","); if (getChallengeName() != null) sb.append("ChallengeName: ").append(getChallengeName()).append(","); if (getSession() != null) sb.append("Session: ").append("***Sensitive Data Redacted***").append(","); if (getChallengeResponses() != null) sb.append("ChallengeResponses: ").append("***Sensitive Data Redacted***").append(","); if (getAnalyticsMetadata() != null) sb.append("AnalyticsMetadata: ").append(getAnalyticsMetadata()).append(","); if (getUserContextData() != null) sb.append("UserContextData: ").append("***Sensitive Data Redacted***").append(","); if (getClientMetadata() != null) sb.append("ClientMetadata: ").append(getClientMetadata()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof RespondToAuthChallengeRequest == false) return false; RespondToAuthChallengeRequest other = (RespondToAuthChallengeRequest) obj; if (other.getClientId() == null ^ this.getClientId() == null) return false; if (other.getClientId() != null && other.getClientId().equals(this.getClientId()) == false) return false; if (other.getChallengeName() == null ^ this.getChallengeName() == null) return false; if (other.getChallengeName() != null && other.getChallengeName().equals(this.getChallengeName()) == false) return false; if (other.getSession() == null ^ this.getSession() == null) return false; if (other.getSession() != null && other.getSession().equals(this.getSession()) == false) return false; if (other.getChallengeResponses() == null ^ this.getChallengeResponses() == null) return false; if (other.getChallengeResponses() != null && other.getChallengeResponses().equals(this.getChallengeResponses()) == false) return false; if (other.getAnalyticsMetadata() == null ^ this.getAnalyticsMetadata() == null) return false; if (other.getAnalyticsMetadata() != null && other.getAnalyticsMetadata().equals(this.getAnalyticsMetadata()) == false) return false; if (other.getUserContextData() == null ^ this.getUserContextData() == null) return false; if (other.getUserContextData() != null && other.getUserContextData().equals(this.getUserContextData()) == false) return false; if (other.getClientMetadata() == null ^ this.getClientMetadata() == null) return false; if (other.getClientMetadata() != null && other.getClientMetadata().equals(this.getClientMetadata()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getClientId() == null) ? 0 : getClientId().hashCode()); hashCode = prime * hashCode + ((getChallengeName() == null) ? 0 : getChallengeName().hashCode()); hashCode = prime * hashCode + ((getSession() == null) ? 0 : getSession().hashCode()); hashCode = prime * hashCode + ((getChallengeResponses() == null) ? 0 : getChallengeResponses().hashCode()); hashCode = prime * hashCode + ((getAnalyticsMetadata() == null) ? 0 : getAnalyticsMetadata().hashCode()); hashCode = prime * hashCode + ((getUserContextData() == null) ? 0 : getUserContextData().hashCode()); hashCode = prime * hashCode + ((getClientMetadata() == null) ? 0 : getClientMetadata().hashCode()); return hashCode; } @Override public RespondToAuthChallengeRequest clone() { return (RespondToAuthChallengeRequest) super.clone(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy