class Aws::CognitoIdentityProvider::Types::RespondToAuthChallengeRequest

The request to respond to an authentication challenge.

@note When making an API call, you may pass RespondToAuthChallengeRequest

data as a hash:

    {
      client_id: "ClientIdType", # required
      challenge_name: "SMS_MFA", # required, accepts SMS_MFA, SOFTWARE_TOKEN_MFA, SELECT_MFA_TYPE, MFA_SETUP, PASSWORD_VERIFIER, CUSTOM_CHALLENGE, DEVICE_SRP_AUTH, DEVICE_PASSWORD_VERIFIER, ADMIN_NO_SRP_AUTH, NEW_PASSWORD_REQUIRED
      session: "SessionType",
      challenge_responses: {
        "StringType" => "StringType",
      },
      analytics_metadata: {
        analytics_endpoint_id: "StringType",
      },
      user_context_data: {
        encoded_data: "StringType",
      },
      client_metadata: {
        "StringType" => "StringType",
      },
    }

@!attribute [rw] client_id

The app client ID.
@return [String]

@!attribute [rw] challenge_name

The challenge name. For more information, see [InitiateAuth][1].

`ADMIN_NO_SRP_AUTH` is not a valid value.

[1]: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html
@return [String]

@!attribute [rw] session

The session which should be passed both ways in challenge-response
calls to the service. If `InitiateAuth` or `RespondToAuthChallenge`
API call determines that the caller needs to go through 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 [String]

@!attribute [rw] challenge_responses

The challenge responses. These are inputs corresponding to the value
of `ChallengeName`, for example:

<note markdown="1"> `SECRET_HASH` (if app client is configured with client secret)
applies to all inputs below (including `SOFTWARE_TOKEN_MFA`).

 </note>

* `SMS_MFA`\: `SMS_MFA_CODE`, `USERNAME`.

* `PASSWORD_VERIFIER`\: `PASSWORD_CLAIM_SIGNATURE`,
  `PASSWORD_CLAIM_SECRET_BLOCK`, `TIMESTAMP`, `USERNAME`.

* `NEW_PASSWORD_REQUIRED`\: `NEW_PASSWORD`, any other required
  attributes, `USERNAME`.

* `SOFTWARE_TOKEN_MFA`\: `USERNAME` and `SOFTWARE_TOKEN_MFA_CODE`
  are required attributes.

* `DEVICE_SRP_AUTH` requires `USERNAME`, `DEVICE_KEY`, `SRP_A` (and
  `SECRET_HASH`).

* `DEVICE_PASSWORD_VERIFIER` requires everything that
  `PASSWORD_VERIFIER` requires plus `DEVICE_KEY`.

* `MFA_SETUP` requires `USERNAME`, plus you need to use the session
  value returned by `VerifySoftwareToken` in the `Session`
  parameter.
@return [Hash<String,String>]

@!attribute [rw] analytics_metadata

The Amazon Pinpoint analytics metadata for collecting metrics for
`RespondToAuthChallenge` calls.
@return [Types::AnalyticsMetadataType]

@!attribute [rw] user_context_data

Contextual data such as the user's device fingerprint, IP address,
or location used for evaluating the risk of an unexpected event by
Amazon Cognito advanced security.
@return [Types::UserContextDataType]

@!attribute [rw] client_metadata

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][1] in the *Amazon Cognito Developer Guide*.

<note markdown="1"> Take the following limitations into consideration when you use the
ClientMetadata parameter:

 * Amazon Cognito does not 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
  does not include triggers, the ClientMetadata parameter serves no
  purpose.

* Amazon Cognito does not validate the ClientMetadata value.

* Amazon Cognito does not encrypt the the ClientMetadata value, so
  don't use it to provide sensitive information.

 </note>

[1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html
@return [Hash<String,String>]

@see docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/RespondToAuthChallengeRequest AWS API Documentation

Constants

SENSITIVE