/* * 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. *

* */ private java.util.List userAttributes; /** *

* 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 validationData; /** *

* 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. *

*/ private String temporaryPassword; /** *

* 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. *

*/ private Boolean 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. *

*/ private String messageAction; /** *

* 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. *

*/ private java.util.List desiredDeliveryMediums; /** *

* 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. *

    *
  • *
*
*/ private java.util.Map clientMetadata; /** *

* 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. *

    *
  • *
* * @return 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. *

    *
  • */ public java.util.List getUserAttributes() { return 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 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. *

      *
    • *
    * * @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 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. *

      *
    • */ public void setUserAttributes(java.util.Collection userAttributes) { if (userAttributes == null) { this.userAttributes = null; return; } this.userAttributes = new java.util.ArrayList(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 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 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. *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest withUserAttributes(AttributeType... userAttributes) { if (this.userAttributes == null) { setUserAttributes(new java.util.ArrayList(userAttributes.length)); } for (AttributeType ele : userAttributes) { this.userAttributes.add(ele); } 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. *

          *
        • *
        * * @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 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. *

          *
        • * @return Returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest withUserAttributes(java.util.Collection userAttributes) { setUserAttributes(userAttributes); return this; } /** *

          * 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 getValidationData() { return validationData; } /** *

          * 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. *

          * * @param validationData * 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 void setValidationData(java.util.Collection validationData) { if (validationData == null) { this.validationData = null; return; } this.validationData = new java.util.ArrayList(validationData); } /** *

          * 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. *

          * * @param validationData * 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 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(validationData.length)); } for (AttributeType ele : validationData) { this.validationData.add(ele); } return this; } /** *

          * 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. *

          * * @param validationData * 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 Returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest withValidationData(java.util.Collection validationData) { setValidationData(validationData); return this; } /** *

          * 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. *

          * * @param 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. */ 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. *

          * * @return 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. */ 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. *

          * * @param 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. * @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. *

          * * @param 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. */ 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. *

          * * @return 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. */ 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. *

          * * @param 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. * @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. *

          * * @return 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. */ 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. *

          * * @param 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. * @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. *

          * * @return 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. * @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. *

          * * @param 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. * @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. *

          * * @param 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. * @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. *

          * * @param 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. * @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. *

          * * @return 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. * @see DeliveryMediumType */ public java.util.List getDesiredDeliveryMediums() { return 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. *

          * * @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. * @see DeliveryMediumType */ public void setDesiredDeliveryMediums(java.util.Collection desiredDeliveryMediums) { if (desiredDeliveryMediums == null) { this.desiredDeliveryMediums = null; return; } this.desiredDeliveryMediums = new java.util.ArrayList(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. *

          *

          * 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(desiredDeliveryMediums.length)); } for (String ele : desiredDeliveryMediums) { this.desiredDeliveryMediums.add(ele); } 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. *

          * * @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(java.util.Collection desiredDeliveryMediums) { setDesiredDeliveryMediums(desiredDeliveryMediums); 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. *

          * * @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(DeliveryMediumType... desiredDeliveryMediums) { java.util.ArrayList desiredDeliveryMediumsCopy = new java.util.ArrayList(desiredDeliveryMediums.length); for (DeliveryMediumType value : desiredDeliveryMediums) { desiredDeliveryMediumsCopy.add(value.toString()); } if (getDesiredDeliveryMediums() == null) { setDesiredDeliveryMediums(desiredDeliveryMediumsCopy); } else { getDesiredDeliveryMediums().addAll(desiredDeliveryMediumsCopy); } return this; } /** *

          * 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. *

            *
          • *
          *
          * * @return 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. *

            *
          • *
          */ public java.util.Map getClientMetadata() { return 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 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. *

            *
          • *
          *
          * * @param 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 * 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. *

            *
          • *
          */ public void setClientMetadata(java.util.Map clientMetadata) { this.clientMetadata = 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 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. *

            *
          • *
          *
          * * @param 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 * 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. *

            *
          • *
          * @return Returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest withClientMetadata(java.util.Map clientMetadata) { setClientMetadata(clientMetadata); return this; } /** * Add a single ClientMetadata entry * * @see AdminCreateUserRequest#withClientMetadata * @returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest addClientMetadataEntry(String key, String value) { if (null == this.clientMetadata) { this.clientMetadata = new java.util.HashMap(); } if (this.clientMetadata.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.clientMetadata.put(key, value); return this; } /** * Removes all the entries added into ClientMetadata. * * @return Returns a reference to this object so that method calls can be chained together. */ public AdminCreateUserRequest clearClientMetadataEntries() { this.clientMetadata = null; return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getUserPoolId() != null) sb.append("UserPoolId: ").append(getUserPoolId()).append(","); if (getUsername() != null) sb.append("Username: ").append("***Sensitive Data Redacted***").append(","); if (getUserAttributes() != null) sb.append("UserAttributes: ").append(getUserAttributes()).append(","); if (getValidationData() != null) sb.append("ValidationData: ").append(getValidationData()).append(","); if (getTemporaryPassword() != null) sb.append("TemporaryPassword: ").append("***Sensitive Data Redacted***").append(","); if (getForceAliasCreation() != null) sb.append("ForceAliasCreation: ").append(getForceAliasCreation()).append(","); if (getMessageAction() != null) sb.append("MessageAction: ").append(getMessageAction()).append(","); if (getDesiredDeliveryMediums() != null) sb.append("DesiredDeliveryMediums: ").append(getDesiredDeliveryMediums()).append(","); if (getClientMetadata() != null) sb.append("ClientMetadata: ").append(getClientMetadata()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof AdminCreateUserRequest == false) return false; AdminCreateUserRequest other = (AdminCreateUserRequest) obj; if (other.getUserPoolId() == null ^ this.getUserPoolId() == null) return false; if (other.getUserPoolId() != null && other.getUserPoolId().equals(this.getUserPoolId()) == false) return false; if (other.getUsername() == null ^ this.getUsername() == null) return false; if (other.getUsername() != null && other.getUsername().equals(this.getUsername()) == false) return false; if (other.getUserAttributes() == null ^ this.getUserAttributes() == null) return false; if (other.getUserAttributes() != null && other.getUserAttributes().equals(this.getUserAttributes()) == false) return false; if (other.getValidationData() == null ^ this.getValidationData() == null) return false; if (other.getValidationData() != null && other.getValidationData().equals(this.getValidationData()) == false) return false; if (other.getTemporaryPassword() == null ^ this.getTemporaryPassword() == null) return false; if (other.getTemporaryPassword() != null && other.getTemporaryPassword().equals(this.getTemporaryPassword()) == false) return false; if (other.getForceAliasCreation() == null ^ this.getForceAliasCreation() == null) return false; if (other.getForceAliasCreation() != null && other.getForceAliasCreation().equals(this.getForceAliasCreation()) == false) return false; if (other.getMessageAction() == null ^ this.getMessageAction() == null) return false; if (other.getMessageAction() != null && other.getMessageAction().equals(this.getMessageAction()) == false) return false; if (other.getDesiredDeliveryMediums() == null ^ this.getDesiredDeliveryMediums() == null) return false; if (other.getDesiredDeliveryMediums() != null && other.getDesiredDeliveryMediums().equals(this.getDesiredDeliveryMediums()) == false) return false; if (other.getClientMetadata() == null ^ this.getClientMetadata() == null) return false; if (other.getClientMetadata() != null && other.getClientMetadata().equals(this.getClientMetadata()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getUserPoolId() == null) ? 0 : getUserPoolId().hashCode()); hashCode = prime * hashCode + ((getUsername() == null) ? 0 : getUsername().hashCode()); hashCode = prime * hashCode + ((getUserAttributes() == null) ? 0 : getUserAttributes().hashCode()); hashCode = prime * hashCode + ((getValidationData() == null) ? 0 : getValidationData().hashCode()); hashCode = prime * hashCode + ((getTemporaryPassword() == null) ? 0 : getTemporaryPassword().hashCode()); hashCode = prime * hashCode + ((getForceAliasCreation() == null) ? 0 : getForceAliasCreation().hashCode()); hashCode = prime * hashCode + ((getMessageAction() == null) ? 0 : getMessageAction().hashCode()); hashCode = prime * hashCode + ((getDesiredDeliveryMediums() == null) ? 0 : getDesiredDeliveryMediums().hashCode()); hashCode = prime * hashCode + ((getClientMetadata() == null) ? 0 : getClientMetadata().hashCode()); return hashCode; } @Override public AdminCreateUserRequest clone() { return (AdminCreateUserRequest) super.clone(); } }