/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the cognito-idp-2016-04-18.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; namespace Amazon.CognitoIdentityProvider.Model { /// /// Container for the parameters to the RespondToAuthChallenge operation. /// Responds to the authentication challenge. /// /// /// /// This action might generate an SMS text message. Starting June 1, 2021, US telecom /// carriers require you to register an origination phone number before you can send SMS /// messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you /// must register a phone number with Amazon /// Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, /// Amazon Cognito users who must receive SMS messages might not be able to sign up, activate /// their accounts, or sign in. /// /// /// /// If you have never used SMS text messages with Amazon Cognito or any other Amazon Web /// Service, Amazon Simple Notification Service might place your account in the SMS sandbox. /// In sandbox /// mode , you can send messages only to verified phone numbers. After you test /// your app while in the sandbox environment, you can move out of the sandbox and into /// production. For more information, see /// SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer /// Guide. /// /// /// public partial class RespondToAuthChallengeRequest : AmazonCognitoIdentityProviderRequest { private AnalyticsMetadataType _analyticsMetadata; private ChallengeNameType _challengeName; private Dictionary _challengeResponses = new Dictionary(); private string _clientId; private Dictionary _clientMetadata = new Dictionary(); private string _session; private UserContextDataType _userContextData; /// /// Gets and sets the property AnalyticsMetadata. /// /// The Amazon Pinpoint analytics metadata that contributes to your metrics for RespondToAuthChallenge /// calls. /// /// public AnalyticsMetadataType AnalyticsMetadata { get { return this._analyticsMetadata; } set { this._analyticsMetadata = value; } } // Check to see if AnalyticsMetadata property is set internal bool IsSetAnalyticsMetadata() { return this._analyticsMetadata != null; } /// /// Gets and sets the property ChallengeName. /// /// The challenge name. For more information, see InitiateAuth. /// /// /// /// ADMIN_NO_SRP_AUTH isn't a valid value. /// /// [AWSProperty(Required=true)] public ChallengeNameType ChallengeName { get { return this._challengeName; } set { this._challengeName = value; } } // Check to see if ChallengeName property is set internal bool IsSetChallengeName() { return this._challengeName != null; } /// /// Gets and sets the property ChallengeResponses. /// /// The challenge responses. These are inputs corresponding to the value of ChallengeName, /// for example: /// /// /// /// SECRET_HASH (if app client is configured with client secret) applies /// to all of the inputs that follow (including SOFTWARE_TOKEN_MFA). /// ///
  • /// /// SMS_MFA: SMS_MFA_CODE, USERNAME. /// ///
  • /// /// PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, /// TIMESTAMP, USERNAME. /// /// /// /// PASSWORD_VERIFIER requires DEVICE_KEY when you sign in /// with a remembered device. /// ///
  • /// /// NEW_PASSWORD_REQUIRED: NEW_PASSWORD, USERNAME, /// SECRET_HASH (if app client is configured with client secret). To set /// any required attributes that Amazon Cognito returned as requiredAttributes /// in the InitiateAuth response, add a userAttributes.attributename /// parameter. 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: 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 must use the session /// value returned by VerifySoftwareToken in the Session parameter. /// ///
///
[AWSProperty(Sensitive=true)] public Dictionary ChallengeResponses { get { return this._challengeResponses; } set { this._challengeResponses = value; } } // Check to see if ChallengeResponses property is set internal bool IsSetChallengeResponses() { return this._challengeResponses != null && this._challengeResponses.Count > 0; } /// /// Gets and sets the property ClientId. /// /// The app client ID. /// /// [AWSProperty(Required=true, Sensitive=true, Min=1, Max=128)] public string ClientId { get { return this._clientId; } set { this._clientId = value; } } // Check to see if ClientId property is set internal bool IsSetClientId() { return this._clientId != null; } /// /// Gets and sets the property 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 Dictionary ClientMetadata { get { return this._clientMetadata; } set { this._clientMetadata = value; } } // Check to see if ClientMetadata property is set internal bool IsSetClientMetadata() { return this._clientMetadata != null && this._clientMetadata.Count > 0; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Sensitive=true, Min=20, Max=2048)] public string Session { get { return this._session; } set { this._session = value; } } // Check to see if Session property is set internal bool IsSetSession() { return this._session != null; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Sensitive=true)] public UserContextDataType UserContextData { get { return this._userContextData; } set { this._userContextData = value; } } // Check to see if UserContextData property is set internal bool IsSetUserContextData() { return this._userContextData != null; } /// /// Get the signer to use for this request. /// /// A signer for this request. override protected AbstractAWSSigner CreateSigner() { return new NullSigner(); } } }