/**
* 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 pool.See Also:
AWS
* API Reference
A string used to name the user pool.
*/ inline const Aws::String& GetPoolName() const{ return m_poolName; } inline bool PoolNameHasBeenSet() const { return m_poolNameHasBeenSet; } inline void SetPoolName(const Aws::String& value) { m_poolNameHasBeenSet = true; m_poolName = value; } inline void SetPoolName(Aws::String&& value) { m_poolNameHasBeenSet = true; m_poolName = std::move(value); } inline void SetPoolName(const char* value) { m_poolNameHasBeenSet = true; m_poolName.assign(value); } inline CreateUserPoolRequest& WithPoolName(const Aws::String& value) { SetPoolName(value); return *this;} inline CreateUserPoolRequest& WithPoolName(Aws::String&& value) { SetPoolName(std::move(value)); return *this;} inline CreateUserPoolRequest& WithPoolName(const char* value) { SetPoolName(value); return *this;} ///@} ///@{ /** *The policies associated with the new user pool.
*/ inline const UserPoolPolicyType& GetPolicies() const{ return m_policies; } inline bool PoliciesHasBeenSet() const { return m_policiesHasBeenSet; } inline void SetPolicies(const UserPoolPolicyType& value) { m_policiesHasBeenSet = true; m_policies = value; } inline void SetPolicies(UserPoolPolicyType&& value) { m_policiesHasBeenSet = true; m_policies = std::move(value); } inline CreateUserPoolRequest& WithPolicies(const UserPoolPolicyType& value) { SetPolicies(value); return *this;} inline CreateUserPoolRequest& WithPolicies(UserPoolPolicyType&& value) { SetPolicies(std::move(value)); return *this;} ///@} ///@{ /** *When active, DeletionProtection prevents accidental deletion of
* your user pool. Before you can delete a user pool that you have protected
* against deletion, you must deactivate this feature.
When you try to
* delete a protected user pool in a DeleteUserPool API request,
* Amazon Cognito returns an InvalidParameterException error. To
* delete a protected user pool, send a new DeleteUserPool request
* after you deactivate deletion protection in an UpdateUserPool API
* request.
The Lambda trigger configuration information for the new user pool.
*In a push model, event sources (such as Amazon S3 and custom * applications) need permission to invoke a function. So you must make an extra * call to add permission for these event sources to invoke your Lambda * function.
For more information on using the Lambda API to add * permission, see * AddPermission .
For adding permission using the CLI, see * add-permission .
*/ inline const LambdaConfigType& GetLambdaConfig() const{ return m_lambdaConfig; } inline bool LambdaConfigHasBeenSet() const { return m_lambdaConfigHasBeenSet; } inline void SetLambdaConfig(const LambdaConfigType& value) { m_lambdaConfigHasBeenSet = true; m_lambdaConfig = value; } inline void SetLambdaConfig(LambdaConfigType&& value) { m_lambdaConfigHasBeenSet = true; m_lambdaConfig = std::move(value); } inline CreateUserPoolRequest& WithLambdaConfig(const LambdaConfigType& value) { SetLambdaConfig(value); return *this;} inline CreateUserPoolRequest& WithLambdaConfig(LambdaConfigType&& value) { SetLambdaConfig(std::move(value)); return *this;} ///@} ///@{ /** *The attributes to be auto-verified. Possible values: email, * phone_number.
*/ inline const Aws::VectorAttributes supported as an alias for this user pool. Possible values: * phone_number, email, or preferred_username.
*/ inline const Aws::VectorSpecifies whether a user can use an email address or phone number as a * username when they sign up.
*/ inline const Aws::VectorThis parameter is no longer used. See VerificationMessageTemplateType.
*/ inline const Aws::String& GetSmsVerificationMessage() const{ return m_smsVerificationMessage; } inline bool SmsVerificationMessageHasBeenSet() const { return m_smsVerificationMessageHasBeenSet; } inline void SetSmsVerificationMessage(const Aws::String& value) { m_smsVerificationMessageHasBeenSet = true; m_smsVerificationMessage = value; } inline void SetSmsVerificationMessage(Aws::String&& value) { m_smsVerificationMessageHasBeenSet = true; m_smsVerificationMessage = std::move(value); } inline void SetSmsVerificationMessage(const char* value) { m_smsVerificationMessageHasBeenSet = true; m_smsVerificationMessage.assign(value); } inline CreateUserPoolRequest& WithSmsVerificationMessage(const Aws::String& value) { SetSmsVerificationMessage(value); return *this;} inline CreateUserPoolRequest& WithSmsVerificationMessage(Aws::String&& value) { SetSmsVerificationMessage(std::move(value)); return *this;} inline CreateUserPoolRequest& WithSmsVerificationMessage(const char* value) { SetSmsVerificationMessage(value); return *this;} ///@} ///@{ /** *This parameter is no longer used. See VerificationMessageTemplateType.
*/ inline const Aws::String& GetEmailVerificationMessage() const{ return m_emailVerificationMessage; } inline bool EmailVerificationMessageHasBeenSet() const { return m_emailVerificationMessageHasBeenSet; } inline void SetEmailVerificationMessage(const Aws::String& value) { m_emailVerificationMessageHasBeenSet = true; m_emailVerificationMessage = value; } inline void SetEmailVerificationMessage(Aws::String&& value) { m_emailVerificationMessageHasBeenSet = true; m_emailVerificationMessage = std::move(value); } inline void SetEmailVerificationMessage(const char* value) { m_emailVerificationMessageHasBeenSet = true; m_emailVerificationMessage.assign(value); } inline CreateUserPoolRequest& WithEmailVerificationMessage(const Aws::String& value) { SetEmailVerificationMessage(value); return *this;} inline CreateUserPoolRequest& WithEmailVerificationMessage(Aws::String&& value) { SetEmailVerificationMessage(std::move(value)); return *this;} inline CreateUserPoolRequest& WithEmailVerificationMessage(const char* value) { SetEmailVerificationMessage(value); return *this;} ///@} ///@{ /** *This parameter is no longer used. See VerificationMessageTemplateType.
*/ inline const Aws::String& GetEmailVerificationSubject() const{ return m_emailVerificationSubject; } inline bool EmailVerificationSubjectHasBeenSet() const { return m_emailVerificationSubjectHasBeenSet; } inline void SetEmailVerificationSubject(const Aws::String& value) { m_emailVerificationSubjectHasBeenSet = true; m_emailVerificationSubject = value; } inline void SetEmailVerificationSubject(Aws::String&& value) { m_emailVerificationSubjectHasBeenSet = true; m_emailVerificationSubject = std::move(value); } inline void SetEmailVerificationSubject(const char* value) { m_emailVerificationSubjectHasBeenSet = true; m_emailVerificationSubject.assign(value); } inline CreateUserPoolRequest& WithEmailVerificationSubject(const Aws::String& value) { SetEmailVerificationSubject(value); return *this;} inline CreateUserPoolRequest& WithEmailVerificationSubject(Aws::String&& value) { SetEmailVerificationSubject(std::move(value)); return *this;} inline CreateUserPoolRequest& WithEmailVerificationSubject(const char* value) { SetEmailVerificationSubject(value); return *this;} ///@} ///@{ /** *The template for the verification message that the user sees when the app * requests permission to access the user's information.
*/ inline const VerificationMessageTemplateType& GetVerificationMessageTemplate() const{ return m_verificationMessageTemplate; } inline bool VerificationMessageTemplateHasBeenSet() const { return m_verificationMessageTemplateHasBeenSet; } inline void SetVerificationMessageTemplate(const VerificationMessageTemplateType& value) { m_verificationMessageTemplateHasBeenSet = true; m_verificationMessageTemplate = value; } inline void SetVerificationMessageTemplate(VerificationMessageTemplateType&& value) { m_verificationMessageTemplateHasBeenSet = true; m_verificationMessageTemplate = std::move(value); } inline CreateUserPoolRequest& WithVerificationMessageTemplate(const VerificationMessageTemplateType& value) { SetVerificationMessageTemplate(value); return *this;} inline CreateUserPoolRequest& WithVerificationMessageTemplate(VerificationMessageTemplateType&& value) { SetVerificationMessageTemplate(std::move(value)); return *this;} ///@} ///@{ /** *A string representing the SMS authentication message.
*/ inline const Aws::String& GetSmsAuthenticationMessage() const{ return m_smsAuthenticationMessage; } inline bool SmsAuthenticationMessageHasBeenSet() const { return m_smsAuthenticationMessageHasBeenSet; } inline void SetSmsAuthenticationMessage(const Aws::String& value) { m_smsAuthenticationMessageHasBeenSet = true; m_smsAuthenticationMessage = value; } inline void SetSmsAuthenticationMessage(Aws::String&& value) { m_smsAuthenticationMessageHasBeenSet = true; m_smsAuthenticationMessage = std::move(value); } inline void SetSmsAuthenticationMessage(const char* value) { m_smsAuthenticationMessageHasBeenSet = true; m_smsAuthenticationMessage.assign(value); } inline CreateUserPoolRequest& WithSmsAuthenticationMessage(const Aws::String& value) { SetSmsAuthenticationMessage(value); return *this;} inline CreateUserPoolRequest& WithSmsAuthenticationMessage(Aws::String&& value) { SetSmsAuthenticationMessage(std::move(value)); return *this;} inline CreateUserPoolRequest& WithSmsAuthenticationMessage(const char* value) { SetSmsAuthenticationMessage(value); return *this;} ///@} ///@{ /** *Specifies MFA configuration details.
*/ inline const UserPoolMfaType& GetMfaConfiguration() const{ return m_mfaConfiguration; } inline bool MfaConfigurationHasBeenSet() const { return m_mfaConfigurationHasBeenSet; } inline void SetMfaConfiguration(const UserPoolMfaType& value) { m_mfaConfigurationHasBeenSet = true; m_mfaConfiguration = value; } inline void SetMfaConfiguration(UserPoolMfaType&& value) { m_mfaConfigurationHasBeenSet = true; m_mfaConfiguration = std::move(value); } inline CreateUserPoolRequest& WithMfaConfiguration(const UserPoolMfaType& value) { SetMfaConfiguration(value); return *this;} inline CreateUserPoolRequest& WithMfaConfiguration(UserPoolMfaType&& value) { SetMfaConfiguration(std::move(value)); return *this;} ///@} ///@{ /** *The settings for updates to user attributes. These settings include the
* property AttributesRequireVerificationBeforeUpdate, a user-pool
* setting that tells Amazon Cognito how to handle changes to the value of your
* users' email address and phone number attributes. For more information, see
* Verifying updates to email addresses and phone numbers.
The device-remembering configuration for a user pool. A null value indicates * that you have deactivated device remembering in your user pool.
*When you provide a value for any DeviceConfiguration field, you
* activate the Amazon Cognito device-remembering feature.
The email configuration of your user pool. The email configuration type sets * your preferred sending method, Amazon Web Services Region, and sender for * messages from your user pool.
*/ inline const EmailConfigurationType& GetEmailConfiguration() const{ return m_emailConfiguration; } inline bool EmailConfigurationHasBeenSet() const { return m_emailConfigurationHasBeenSet; } inline void SetEmailConfiguration(const EmailConfigurationType& value) { m_emailConfigurationHasBeenSet = true; m_emailConfiguration = value; } inline void SetEmailConfiguration(EmailConfigurationType&& value) { m_emailConfigurationHasBeenSet = true; m_emailConfiguration = std::move(value); } inline CreateUserPoolRequest& WithEmailConfiguration(const EmailConfigurationType& value) { SetEmailConfiguration(value); return *this;} inline CreateUserPoolRequest& WithEmailConfiguration(EmailConfigurationType&& value) { SetEmailConfiguration(std::move(value)); return *this;} ///@} ///@{ /** *The SMS configuration with the settings that your Amazon Cognito user pool * must use to send an SMS message from your Amazon Web Services account through * Amazon Simple Notification Service. To send SMS messages with Amazon SNS in the * Amazon Web Services Region that you want, the Amazon Cognito user pool uses an * Identity and Access Management (IAM) role in your Amazon Web Services * account.
*/ inline const SmsConfigurationType& GetSmsConfiguration() const{ return m_smsConfiguration; } inline bool SmsConfigurationHasBeenSet() const { return m_smsConfigurationHasBeenSet; } inline void SetSmsConfiguration(const SmsConfigurationType& value) { m_smsConfigurationHasBeenSet = true; m_smsConfiguration = value; } inline void SetSmsConfiguration(SmsConfigurationType&& value) { m_smsConfigurationHasBeenSet = true; m_smsConfiguration = std::move(value); } inline CreateUserPoolRequest& WithSmsConfiguration(const SmsConfigurationType& value) { SetSmsConfiguration(value); return *this;} inline CreateUserPoolRequest& WithSmsConfiguration(SmsConfigurationType&& value) { SetSmsConfiguration(std::move(value)); return *this;} ///@} ///@{ /** *The tag keys and values to assign to the user pool. A tag is a label that you * can use to categorize and manage user pools in different ways, such as by * purpose, owner, environment, or other criteria.
*/ inline const Aws::MapThe configuration for AdminCreateUser requests.
An array of schema attributes for the new user pool. These attributes can be * standard or custom attributes.
*/ inline const Aws::VectorUser pool add-ons. Contains settings for activation of advanced security
* features. To log user security information but take no action, set to
* AUDIT. To configure automatic security responses to risky traffic
* to your user pool, set to ENFORCED.
For more information, * see Adding * advanced security to a user pool.
*/ inline const UserPoolAddOnsType& GetUserPoolAddOns() const{ return m_userPoolAddOns; } inline bool UserPoolAddOnsHasBeenSet() const { return m_userPoolAddOnsHasBeenSet; } inline void SetUserPoolAddOns(const UserPoolAddOnsType& value) { m_userPoolAddOnsHasBeenSet = true; m_userPoolAddOns = value; } inline void SetUserPoolAddOns(UserPoolAddOnsType&& value) { m_userPoolAddOnsHasBeenSet = true; m_userPoolAddOns = std::move(value); } inline CreateUserPoolRequest& WithUserPoolAddOns(const UserPoolAddOnsType& value) { SetUserPoolAddOns(value); return *this;} inline CreateUserPoolRequest& WithUserPoolAddOns(UserPoolAddOnsType&& value) { SetUserPoolAddOns(std::move(value)); return *this;} ///@} ///@{ /** *Case sensitivity on the username input for the selected sign-in option. When
* case sensitivity is set to False (case insensitive), users can sign
* in with any combination of capital and lowercase letters. For example,
* username, USERNAME, or UserName, or for
* email, email@example.com or EMaiL@eXamplE.Com. For
* most use cases, set case sensitivity to False (case insensitive) as
* a best practice. When usernames and email addresses are case insensitive, Amazon
* Cognito treats any variation in case as the same user, and prevents a case
* variation from being assigned to the same attribute for a different user.
This configuration is immutable after you set it. For more information, see * UsernameConfigurationType.
*/ inline const UsernameConfigurationType& GetUsernameConfiguration() const{ return m_usernameConfiguration; } inline bool UsernameConfigurationHasBeenSet() const { return m_usernameConfigurationHasBeenSet; } inline void SetUsernameConfiguration(const UsernameConfigurationType& value) { m_usernameConfigurationHasBeenSet = true; m_usernameConfiguration = value; } inline void SetUsernameConfiguration(UsernameConfigurationType&& value) { m_usernameConfigurationHasBeenSet = true; m_usernameConfiguration = std::move(value); } inline CreateUserPoolRequest& WithUsernameConfiguration(const UsernameConfigurationType& value) { SetUsernameConfiguration(value); return *this;} inline CreateUserPoolRequest& WithUsernameConfiguration(UsernameConfigurationType&& value) { SetUsernameConfiguration(std::move(value)); return *this;} ///@} ///@{ /** *The available verified method a user can use to recover their password when
* they call ForgotPassword. You can use this setting to define a
* preferred method when a user has more than one method available. With this
* setting, SMS doesn't qualify for a valid password recovery mechanism if the user
* also has SMS multi-factor authentication (MFA) activated. In the absence of this
* setting, Amazon Cognito uses the legacy behavior to determine the recovery
* method where SMS is preferred through email.