/* * 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; namespace Amazon.CognitoIdentityProvider.Model { /// /// Container for the parameters to the AdminRespondToAuthChallenge operation. /// Responds to an authentication challenge, as an administrator. /// /// /// /// 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. /// /// /// /// Calling this action requires developer credentials. /// /// public partial class AdminRespondToAuthChallengeRequest : AmazonCognitoIdentityProviderRequest { private AnalyticsMetadataType _analyticsMetadata; private ChallengeNameType _challengeName; private Dictionary _challengeResponses = new Dictionary(); private string _clientId; private Dictionary _clientMetadata = new Dictionary(); private ContextDataType _contextData; private string _session; private string _userPoolId; /// /// Gets and sets the property AnalyticsMetadata. /// /// The analytics metadata for collecting Amazon Pinpoint metrics for AdminRespondToAuthChallenge /// 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 AdminInitiateAuth. /// /// [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: /// ///
  • /// /// SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH /// (if app client is configured with client secret). /// ///
  • /// /// PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, /// TIMESTAMP, USERNAME, SECRET_HASH (if app client /// is configured with client secret). /// /// /// /// PASSWORD_VERIFIER requires DEVICE_KEY when signing in with /// a remembered device. /// ///
  • /// /// ADMIN_NO_SRP_AUTH: PASSWORD, USERNAME, SECRET_HASH /// (if app client is configured with client secret). /// ///
  • /// /// 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 AdminInitiateAuth 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 AdminRespondToAuthChallenge, set /// a value for any keys that Amazon Cognito returned in the requiredAttributes /// parameter, then use the AdminUpdateUserAttributes API operation to modify /// the value of any additional attributes. /// ///
  • /// /// MFA_SETUP requires USERNAME, plus you must use the session /// value returned by VerifySoftwareToken in the Session parameter. /// ///
/// /// The value of the USERNAME attribute must be the user's actual username, /// not an alias (such as an email address or phone number). To make this simpler, the /// AdminInitiateAuth response includes the actual username value in the /// USERNAMEUSER_ID_FOR_SRP attribute. This happens even if you specified /// an alias in your call to AdminInitiateAuth. /// ///
[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 AdminRespondToAuthChallenge API action, Amazon Cognito invokes any functions /// that you have assigned to the following triggers: /// ///
  • /// /// pre sign-up /// ///
  • /// /// custom message /// ///
  • /// /// post authentication /// ///
  • /// /// user migration /// ///
  • /// /// pre token generation /// ///
  • /// /// define auth challenge /// ///
  • /// /// create auth challenge /// ///
  • /// /// verify auth challenge response /// ///
/// /// 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 that provides the data that you assigned to the ClientMetadata parameter /// in your AdminRespondToAuthChallenge 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 ContextData. /// /// 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 ContextDataType ContextData { get { return this._contextData; } set { this._contextData = value; } } // Check to see if ContextData property is set internal bool IsSetContextData() { return this._contextData != null; } /// /// Gets and sets the property Session. /// /// The session that should be passed both ways in challenge-response calls to the service. /// If an InitiateAuth or RespondToAuthChallenge API call determines /// that the caller must pass another challenge, it returns 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 UserPoolId. /// /// The ID of the Amazon Cognito user pool. /// /// [AWSProperty(Required=true, Min=1, Max=55)] public string UserPoolId { get { return this._userPoolId; } set { this._userPoolId = value; } } // Check to see if UserPoolId property is set internal bool IsSetUserPoolId() { return this._userPoolId != null; } } }