public virtual async Task <Model.SignUpResponse> SignUp(Model.ISignUpRequest command, CancellationToken cancellationToken = default) { Check.NotNull(command, nameof(command)); command.EnsureIsValid(); var signUpRequest = new Amazon.CognitoIdentityProvider.Model.SignUpRequest { ClientId = clientId, Username = command.UserName.ToLower(), Password = command.Password, UserContextData = new UserContextDataType { EncodedData = $"IP:{command.IpAddress};ServerPath:{command.ServerPath};ServerName:{command.ServerName}" } }; var excludedProperties = new[] { "password", "username", "ipaddress", "serverpath", "servername", "httpheader" }; var properties = command.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public) .Where(p => !excludedProperties.Contains(p.Name.ToLower())); foreach (var prop in properties) { var value = prop.GetValue(command); if (value != null) { signUpRequest.UserAttributes.Add(new AttributeType() { Name = prop.Name.ToLower(), Value = value.ToString() }); } } try { var response = await base.CreateDefaultRetryAsyncPolicy().ExecuteAsync(async() => await CognitoidentityProvider.SignUpAsync(signUpRequest, cancellationToken)); return(new Model.SignUpResponse { Confirmed = response.UserConfirmed, UUID = response.UserSub }); } catch (Exception ex) { throw CatchException(ex); } }
/// <summary> /// Initiates the asynchronous execution of the SignUp operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the SignUp operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<SignUpResponse> SignUpAsync(SignUpRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new SignUpRequestMarshaller(); var unmarshaller = SignUpResponseUnmarshaller.Instance; return InvokeAsync<SignUpRequest,SignUpResponse>(request, marshaller, unmarshaller, cancellationToken); }
/// <summary> /// Registers the user in the specified user pool and creates a user name, password, and /// user attributes. /// </summary> /// <param name="request">Container for the necessary parameters to execute the SignUp service method.</param> /// /// <returns>The response from the SignUp service method, as returned by CognitoIdentityProvider.</returns> /// <exception cref="Amazon.CognitoIdentityProvider.Model.CodeDeliveryFailureException"> /// This exception is thrown when a verification code fails to deliver successfully. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.InternalErrorException"> /// This exception is thrown when Amazon Cognito encounters an internal error. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.InvalidEmailRoleAccessPolicyException"> /// This exception is thrown when Amazon Cognito is not allowed to use your email identity. /// HTTP status code: 400. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.InvalidLambdaResponseException"> /// This exception is thrown when the Amazon Cognito service encounters an invalid AWS /// Lambda response. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.InvalidParameterException"> /// This exception is thrown when the Amazon Cognito service encounters an invalid parameter. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.InvalidPasswordException"> /// This exception is thrown when the Amazon Cognito service encounters an invalid password. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.InvalidSmsRoleAccessPolicyException"> /// This exception is returned when the role provided for SMS configuration does not have /// permission to publish using Amazon SNS. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.InvalidSmsRoleTrustRelationshipException"> /// This exception is thrown when the trust relationship is invalid for the role provided /// for SMS configuration. This can happen if you do not trust <b>cognito-idp.amazonaws.com</b> /// or the external ID provided in the role does not match what is provided in the SMS /// configuration for the user pool. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.NotAuthorizedException"> /// This exception gets thrown when a user is not authorized. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.ResourceNotFoundException"> /// This exception is thrown when the Amazon Cognito service cannot find the requested /// resource. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.TooManyRequestsException"> /// This exception gets thrown when the user has made too many requests for a given operation. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.UnexpectedLambdaException"> /// This exception gets thrown when the Amazon Cognito service encounters an unexpected /// exception with the AWS Lambda service. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.UserLambdaValidationException"> /// This exception gets thrown when the Amazon Cognito service encounters a user validation /// exception with the AWS Lambda service. /// </exception> /// <exception cref="Amazon.CognitoIdentityProvider.Model.UsernameExistsException"> /// This exception is thrown when Amazon Cognito encounters a user name that already exists /// in the user pool. /// </exception> public SignUpResponse SignUp(SignUpRequest request) { var marshaller = new SignUpRequestMarshaller(); var unmarshaller = SignUpResponseUnmarshaller.Instance; return Invoke<SignUpRequest,SignUpResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the SignUp operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the SignUp operation on AmazonCognitoIdentityProviderClient.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndSignUp /// operation.</returns> public IAsyncResult BeginSignUp(SignUpRequest request, AsyncCallback callback, object state) { var marshaller = new SignUpRequestMarshaller(); var unmarshaller = SignUpResponseUnmarshaller.Instance; return BeginInvoke<SignUpRequest>(request, marshaller, unmarshaller, callback, state); }
private Amazon.CognitoIdentityProvider.Model.SignUpResponse CallAWSServiceOperation(IAmazonCognitoIdentityProvider client, Amazon.CognitoIdentityProvider.Model.SignUpRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Cognito Identity Provider", "SignUp"); try { #if DESKTOP return client.SignUp(request); #elif CORECLR return client.SignUpAsync(request).GetAwaiter().GetResult(); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.CognitoIdentityProvider.Model.SignUpRequest(); // populate AnalyticsMetadata var requestAnalyticsMetadataIsNull = true; request.AnalyticsMetadata = new Amazon.CognitoIdentityProvider.Model.AnalyticsMetadataType(); System.String requestAnalyticsMetadata_analyticsMetadata_AnalyticsEndpointId = null; if (cmdletContext.AnalyticsMetadata_AnalyticsEndpointId != null) { requestAnalyticsMetadata_analyticsMetadata_AnalyticsEndpointId = cmdletContext.AnalyticsMetadata_AnalyticsEndpointId; } if (requestAnalyticsMetadata_analyticsMetadata_AnalyticsEndpointId != null) { request.AnalyticsMetadata.AnalyticsEndpointId = requestAnalyticsMetadata_analyticsMetadata_AnalyticsEndpointId; requestAnalyticsMetadataIsNull = false; } // determine if request.AnalyticsMetadata should be set to null if (requestAnalyticsMetadataIsNull) { request.AnalyticsMetadata = null; } if (cmdletContext.ClientId != null) { request.ClientId = cmdletContext.ClientId; } if (cmdletContext.ClientMetadata != null) { request.ClientMetadata = cmdletContext.ClientMetadata; } if (cmdletContext.Password != null) { request.Password = cmdletContext.Password; } if (cmdletContext.SecretHash != null) { request.SecretHash = cmdletContext.SecretHash; } if (cmdletContext.UserAttribute != null) { request.UserAttributes = cmdletContext.UserAttribute; } // populate UserContextData var requestUserContextDataIsNull = true; request.UserContextData = new Amazon.CognitoIdentityProvider.Model.UserContextDataType(); System.String requestUserContextData_userContextData_EncodedData = null; if (cmdletContext.UserContextData_EncodedData != null) { requestUserContextData_userContextData_EncodedData = cmdletContext.UserContextData_EncodedData; } if (requestUserContextData_userContextData_EncodedData != null) { request.UserContextData.EncodedData = requestUserContextData_userContextData_EncodedData; requestUserContextDataIsNull = false; } // determine if request.UserContextData should be set to null if (requestUserContextDataIsNull) { request.UserContextData = null; } if (cmdletContext.Username != null) { request.Username = cmdletContext.Username; } if (cmdletContext.ValidationData != null) { request.ValidationData = cmdletContext.ValidationData; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return output; }