/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents the request to create a user in the specified user
* pool.See Also:
AWS
* API Reference
The user pool ID for the user pool where the user will be created.
*/ inline const Aws::String& GetUserPoolId() const{ return m_userPoolId; } inline bool UserPoolIdHasBeenSet() const { return m_userPoolIdHasBeenSet; } inline void SetUserPoolId(const Aws::String& value) { m_userPoolIdHasBeenSet = true; m_userPoolId = value; } inline void SetUserPoolId(Aws::String&& value) { m_userPoolIdHasBeenSet = true; m_userPoolId = std::move(value); } inline void SetUserPoolId(const char* value) { m_userPoolIdHasBeenSet = true; m_userPoolId.assign(value); } inline AdminCreateUserRequest& WithUserPoolId(const Aws::String& value) { SetUserPoolId(value); return *this;} inline AdminCreateUserRequest& WithUserPoolId(Aws::String&& value) { SetUserPoolId(std::move(value)); return *this;} inline AdminCreateUserRequest& WithUserPoolId(const char* value) { SetUserPoolId(value); return *this;} ///@} ///@{ /** *The value that you want to set as the username sign-in attribute. The * following conditions apply to the username parameter.
The * username can't be a duplicate of another username in the same user pool.
*You can't change the value of a username after you create it.
*You can only provide a value if usernames are a valid sign-in * attribute for your user pool. If your user pool only supports phone numbers or * email addresses as sign-in attributes, Amazon Cognito automatically generates a * username value. For more information, see Customizing * sign-in attributes.
An array of name-value pairs that contain user attributes and attribute
* values to be set for the user to be created. You can create a user without
* specifying any attributes other than Username. However, any
* attributes that you specify as required (when creating a user pool or in the
* Attributes tab of the console) either you should supply (in your call to
* AdminCreateUser) or the user should supply (when they sign up in
* response to your welcome message).
For custom attributes, you must
* prepend the custom: prefix to the attribute name.
To send a * message inviting the user to sign up, you must specify the user's email address * or phone number. You can do this in your call to AdminCreateUser or in the * Users tab of the Amazon Cognito console for managing your user pools.
*In your call to AdminCreateUser, you can set the
* email_verified attribute to True, and you can set the
* phone_number_verified attribute to True. You can also
* do this by calling AdminUpdateUserAttributes.
email: The email address of the user to whom the message
* that contains the code and username will be sent. Required if the
* email_verified attribute is set to True, or if
* "EMAIL" is specified in the DesiredDeliveryMediums
* parameter.
phone_number: The phone number of the user
* to whom the message that contains the code and username will be sent. Required
* if the phone_number_verified attribute is set to True,
* or if "SMS" is specified in the DesiredDeliveryMediums
* parameter.
Temporary user attributes that contribute to the outcomes of your pre sign-up * Lambda trigger. This set of key-value pairs are for custom validation of * information that you collect from your users but don't need to retain.
*Your Lambda function can analyze this additional data and act on it. Your * function might perform external API operations like logging user attributes and * validation data to Amazon CloudWatch Logs. Validation data might also affect the * response that your function returns to Amazon Cognito, like automatically * confirming the user if they sign up from within your network.
For more * information about the pre sign-up Lambda trigger, see Pre * sign-up Lambda trigger.
*/ inline const Aws::VectorThe user's temporary password. This password must conform to the password * policy that you specified when you created the user pool.
The temporary * password is valid only once. To complete the Admin Create User flow, the user * must enter the temporary password in the sign-in page, along with a new password * to be used in all future sign-ins.
This parameter isn't required. If you * don't specify a value, Amazon Cognito generates one for you.
The
* temporary password can only be used until the user account expiration limit that
* you set for your user pool. To reset the account after that time limit, you must
* call AdminCreateUser again and specify RESEND for the
* MessageAction parameter.
This parameter is used only if the phone_number_verified or
* email_verified attribute is set to True. Otherwise, it
* is ignored.
If this parameter is set to True and the phone
* number or email address specified in the UserAttributes parameter already exists
* as an alias with a different user, the API call will migrate the alias from the
* previous user to the newly created user. The previous user will no longer be
* able to log in using that alias.
If this parameter is set to
* False, the API throws an AliasExistsException error if
* the alias already exists. The default value is False.
Set to RESEND to resend the invitation message to a user that
* already exists and reset the expiration limit on the user's account. Set to
* SUPPRESS to suppress sending the message. You can specify only one
* value.
Specify "EMAIL" if email will be used to send the welcome
* message. Specify "SMS" if the phone number will be used. The
* default value is "SMS". You can specify more than one value.
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
* AdminCreateUser API action, Amazon Cognito invokes the function that is assigned
* to the pre sign-up trigger. When Amazon Cognito invokes this function, 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 AdminCreateUser 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.