/* * Copyright 2018-2023 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. */ package com.amazonaws.services.cognitoidp.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** *
* Represents the request to create a user in the specified user pool. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AdminCreateUserRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** ** The user pool ID for the user pool where the user will be created. *
*/ private String userPoolId; /** ** The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 * characters. After the user is created, the username can't be changed. *
*/ private String username; /** *
     * 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.
     * 
* The user's validation data. This is an array of name-value pairs that contain user attributes and attribute * values that you can use for custom validation, such as restricting the types of user accounts that can be * registered. For example, you might choose to allow or disallow user sign-up based on the user's domain. *
** To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in * the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation * process. *
** The user's validation data isn't persisted. *
*/ private java.util.List* The 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 specified when you
     * created the user pool. To reset the account after that time limit, you must call AdminCreateUser
     * again, specifying "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. *
** The user pool ID for the user pool where the user will be created. *
* * @param userPoolId * The user pool ID for the user pool where the user will be created. */ public void setUserPoolId(String userPoolId) { this.userPoolId = userPoolId; } /** ** The user pool ID for the user pool where the user will be created. *
* * @return The user pool ID for the user pool where the user will be created. */ public String getUserPoolId() { return this.userPoolId; } /** ** The user pool ID for the user pool where the user will be created. *
* * @param userPoolId * The user pool ID for the user pool where the user will be created. * @return Returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest withUserPoolId(String userPoolId) { setUserPoolId(userPoolId); return this; } /** ** The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 * characters. After the user is created, the username can't be changed. *
* * @param username * The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 * characters. After the user is created, the username can't be changed. */ public void setUsername(String username) { this.username = username; } /** ** The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 * characters. After the user is created, the username can't be changed. *
* * @return The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 * characters. After the user is created, the username can't be changed. */ public String getUsername() { return this.username; } /** ** The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 * characters. After the user is created, the username can't be changed. *
* * @param username * The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 * characters. After the user is created, the username can't be changed. * @return Returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest withUsername(String username) { setUsername(username); return this; } /** *
     * 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.
     * 
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.
     *         
     * 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.
     * 
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.
     *        
     * 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.
     * 
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setUserAttributes(java.util.Collection)} or {@link #withUserAttributes(java.util.Collection)} if you want * to override the existing values. *
* * @param userAttributes * 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 thanUsername.
     *        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.
     *        
     * 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.
     * 
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.
     *        
* The user's validation data. This is an array of name-value pairs that contain user attributes and attribute * values that you can use for custom validation, such as restricting the types of user accounts that can be * registered. For example, you might choose to allow or disallow user sign-up based on the user's domain. *
** To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in * the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation * process. *
** The user's validation data isn't persisted. *
* * @return The user's validation data. This is an array of name-value pairs that contain user attributes and * attribute values that you can use for custom validation, such as restricting the types of user accounts * that can be registered. For example, you might choose to allow or disallow user sign-up based on the * user's domain. ** To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as * described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses * it in the validation process. *
*
     *         The user's validation data isn't persisted.
     */
    public java.util.List 
     * The user's validation data. This is an array of name-value pairs that contain user attributes and attribute
     * values that you can use for custom validation, such as restricting the types of user accounts that can be
     * registered. For example, you might choose to allow or disallow user sign-up based on the user's domain.
     *  
     * To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in
     * the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation
     * process.
     *  
     * The user's validation data isn't persisted.
     * 
* To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as * described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses * it in the validation process. *
*
     *        The user's validation data isn't persisted.
     */
    public void setValidationData(java.util.Collection 
     * The user's validation data. This is an array of name-value pairs that contain user attributes and attribute
     * values that you can use for custom validation, such as restricting the types of user accounts that can be
     * registered. For example, you might choose to allow or disallow user sign-up based on the user's domain.
     *  
     * To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in
     * the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation
     * process.
     *  
     * The user's validation data isn't persisted.
     *  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setValidationData(java.util.Collection)} or {@link #withValidationData(java.util.Collection)} if you want
     * to override the existing values.
     * 
* To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as * described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses * it in the validation process. *
*
     *        The user's validation data isn't persisted.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public AdminCreateUserRequest withValidationData(AttributeType... validationData) {
        if (this.validationData == null) {
            setValidationData(new java.util.ArrayList 
     * The user's validation data. This is an array of name-value pairs that contain user attributes and attribute
     * values that you can use for custom validation, such as restricting the types of user accounts that can be
     * registered. For example, you might choose to allow or disallow user sign-up based on the user's domain.
     *  
     * To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in
     * the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation
     * process.
     *  
     * The user's validation data isn't persisted.
     * 
* To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as * described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses * it in the validation process. *
*
     *        The user's validation data isn't persisted.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public AdminCreateUserRequest withValidationData(java.util.Collection 
     * The 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 specified when you
     * created the user pool. To reset the account after that time limit, you must call AdminCreateUser
     * again, specifying "RESEND" for the MessageAction parameter.
     * 
* 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 specified when
     *        you created the user pool. To reset the account after that time limit, you must call
     *        AdminCreateUser again, specifying "RESEND" for the MessageAction
     *        parameter.
     */
    public void setTemporaryPassword(String temporaryPassword) {
        this.temporaryPassword = temporaryPassword;
    }
    /**
     * 
* The 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 specified when you
     * created the user pool. To reset the account after that time limit, you must call AdminCreateUser
     * again, specifying "RESEND" for the MessageAction parameter.
     * 
* 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 specified when
     *         you created the user pool. To reset the account after that time limit, you must call
     *         AdminCreateUser again, specifying "RESEND" for the MessageAction
     *         parameter.
     */
    public String getTemporaryPassword() {
        return this.temporaryPassword;
    }
    /**
     * 
* The 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 specified when you
     * created the user pool. To reset the account after that time limit, you must call AdminCreateUser
     * again, specifying "RESEND" for the MessageAction parameter.
     * 
* 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 specified when
     *        you created the user pool. To reset the account after that time limit, you must call
     *        AdminCreateUser again, specifying "RESEND" for the MessageAction
     *        parameter.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public AdminCreateUserRequest withTemporaryPassword(String temporaryPassword) {
        setTemporaryPassword(temporaryPassword);
        return this;
    }
    /**
     * 
     * 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.
     * 
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.
     */
    public void setForceAliasCreation(Boolean forceAliasCreation) {
        this.forceAliasCreation = forceAliasCreation;
    }
    /**
     * 
     * 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.
     * 
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.
     */
    public Boolean getForceAliasCreation() {
        return this.forceAliasCreation;
    }
    /**
     * 
     * 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.
     * 
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.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public AdminCreateUserRequest withForceAliasCreation(Boolean forceAliasCreation) {
        setForceAliasCreation(forceAliasCreation);
        return this;
    }
    /**
     * 
     * 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.
     * 
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.
     */
    public Boolean isForceAliasCreation() {
        return this.forceAliasCreation;
    }
    /**
     * 
     * 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.
     * 
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.
     * @see MessageActionType
     */
    public void setMessageAction(String messageAction) {
        this.messageAction = messageAction;
    }
    /**
     * 
     * 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.
     * 
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.
     * @see MessageActionType
     */
    public String getMessageAction() {
        return this.messageAction;
    }
    /**
     * 
     * 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.
     * 
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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MessageActionType
     */
    public AdminCreateUserRequest withMessageAction(String messageAction) {
        setMessageAction(messageAction);
        return this;
    }
    /**
     * 
     * 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.
     * 
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.
     * @see MessageActionType
     */
    public void setMessageAction(MessageActionType messageAction) {
        withMessageAction(messageAction);
    }
    /**
     * 
     * 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.
     * 
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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MessageActionType
     */
    public AdminCreateUserRequest withMessageAction(MessageActionType messageAction) {
        this.messageAction = messageAction.toString();
        return this;
    }
    /**
     * 
     * 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.
     * 
"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.
     * @see DeliveryMediumType
     */
    public java.util.List
     * 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.
     * 
"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.
     * @see DeliveryMediumType
     */
    public void setDesiredDeliveryMediums(java.util.Collection
     * 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.
     * 
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setDesiredDeliveryMediums(java.util.Collection)} or * {@link #withDesiredDeliveryMediums(java.util.Collection)} if you want to override the existing values. *
* * @param desiredDeliveryMediums * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see DeliveryMediumType
     */
    public AdminCreateUserRequest withDesiredDeliveryMediums(String... desiredDeliveryMediums) {
        if (this.desiredDeliveryMediums == null) {
            setDesiredDeliveryMediums(new java.util.ArrayList
     * 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.
     * 
"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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see DeliveryMediumType
     */
    public AdminCreateUserRequest withDesiredDeliveryMediums(java.util.Collection
     * 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.
     * 
"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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see DeliveryMediumType
     */
    public AdminCreateUserRequest withDesiredDeliveryMediums(DeliveryMediumType... desiredDeliveryMediums) {
        java.util.ArrayList* 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. *
*
     *         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. *
** 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. *
*
     *        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. *
** 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. *
*
     *        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. *
*