/* * Copyright 2010-2016 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.cognitoidentityprovider.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** * <p> * Creates a new user in the specified user pool and sends a welcome message via * email or phone (SMS). This message is based on a template that you configured * in your call to CreateUserPool or UpdateUserPool. This template includes your * custom sign-up instructions and placeholders for user name and temporary * password. * </p> * <p> * Requires developer credentials. * </p> */ public class AdminCreateUserRequest extends AmazonWebServiceRequest implements Serializable { /** * <p> * The user pool ID for the user pool where the user will be created. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 55<br/> * <b>Pattern: </b>[\w-]+_[0-9a-zA-Z]+<br/> */ private String userPoolId; /** * <p> * 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 cannot be changed. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 128<br/> * <b>Pattern: </b>[\p{L}\p{M}\p{S}\p{N}\p{P}]+<br/> */ private String username; /** * <p> * 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 (in CreateUserPool or in the * <b>Attributes</b> tab of the console) must be supplied either by you (in * your call to AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must specify the * user's email address or phone number. This can be done in your call to * AdminCreateUser or in the <b>Users</b> tab of the Amazon Cognito console * for managing your user pools. * </p> * <p> * 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 cannot do this by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> */ private java.util.List<AttributeType> userAttributes; /** * <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> */ private java.util.List<AttributeType> validationData; /** * <p> * The user's temporary password. This password must conform to the password * policy that you specified when you created the user pool. * </p> * <p> * 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. * </p> * <p> * This parameter is not required. If you do not specify a value, Amazon * Cognito generates one for you. * </p> * <p> * 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. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>6 - 256<br/> * <b>Pattern: </b>[\S]+<br/> */ private String temporaryPassword; /** * <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an AliasExistsException * error if the alias already exists. The default value is False. * </p> */ private Boolean forceAliasCreation; /** * <p> * 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. Only one value can be * specified. * </p> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>RESEND, SUPPRESS */ private String messageAction; /** * <p> * 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". More than one value can be specified. * </p> */ private java.util.List<String> desiredDeliveryMediums; /** * <p> * The user pool ID for the user pool where the user will be created. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 55<br/> * <b>Pattern: </b>[\w-]+_[0-9a-zA-Z]+<br/> * * @return <p> * The user pool ID for the user pool where the user will be * created. * </p> */ public String getUserPoolId() { return userPoolId; } /** * <p> * The user pool ID for the user pool where the user will be created. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 55<br/> * <b>Pattern: </b>[\w-]+_[0-9a-zA-Z]+<br/> * * @param userPoolId <p> * The user pool ID for the user pool where the user will be * created. * </p> */ public void setUserPoolId(String userPoolId) { this.userPoolId = userPoolId; } /** * <p> * The user pool ID for the user pool where the user will be created. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 55<br/> * <b>Pattern: </b>[\w-]+_[0-9a-zA-Z]+<br/> * * @param userPoolId <p> * The user pool ID for the user pool where the user will be * created. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withUserPoolId(String userPoolId) { this.userPoolId = userPoolId; return this; } /** * <p> * 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 cannot be changed. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 128<br/> * <b>Pattern: </b>[\p{L}\p{M}\p{S}\p{N}\p{P}]+<br/> * * @return <p> * 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 cannot be changed. * </p> */ public String getUsername() { return username; } /** * <p> * 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 cannot be changed. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 128<br/> * <b>Pattern: </b>[\p{L}\p{M}\p{S}\p{N}\p{P}]+<br/> * * @param username <p> * 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 cannot be changed. * </p> */ public void setUsername(String username) { this.username = username; } /** * <p> * 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 cannot be changed. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Length: </b>1 - 128<br/> * <b>Pattern: </b>[\p{L}\p{M}\p{S}\p{N}\p{P}]+<br/> * * @param username <p> * 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 cannot be changed. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withUsername(String username) { this.username = username; return this; } /** * <p> * 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 (in CreateUserPool or in the * <b>Attributes</b> tab of the console) must be supplied either by you (in * your call to AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must specify the * user's email address or phone number. This can be done in your call to * AdminCreateUser or in the <b>Users</b> tab of the Amazon Cognito console * for managing your user pools. * </p> * <p> * 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 cannot do this by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> * * @return <p> * 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 * (in CreateUserPool or in the <b>Attributes</b> tab of the * console) must be supplied either by you (in your call to * AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must specify * the user's email address or phone number. This can be done in * your call to AdminCreateUser or in the <b>Users</b> tab of the * Amazon Cognito console for managing your user pools. * </p> * <p> * 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 cannot do this by calling other * operations such as AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> */ public java.util.List<AttributeType> getUserAttributes() { return userAttributes; } /** * <p> * 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 (in CreateUserPool or in the * <b>Attributes</b> tab of the console) must be supplied either by you (in * your call to AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must specify the * user's email address or phone number. This can be done in your call to * AdminCreateUser or in the <b>Users</b> tab of the Amazon Cognito console * for managing your user pools. * </p> * <p> * 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 cannot do this by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> * * @param userAttributes <p> * 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 * (in CreateUserPool or in the <b>Attributes</b> tab of the * console) must be supplied either by you (in your call to * AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must * specify the user's email address or phone number. This can be * done in your call to AdminCreateUser or in the <b>Users</b> * tab of the Amazon Cognito console for managing your user * pools. * </p> * <p> * 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 cannot do this * by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> */ public void setUserAttributes(java.util.Collection<AttributeType> userAttributes) { if (userAttributes == null) { this.userAttributes = null; return; } this.userAttributes = new java.util.ArrayList<AttributeType>(userAttributes); } /** * <p> * 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 (in CreateUserPool or in the * <b>Attributes</b> tab of the console) must be supplied either by you (in * your call to AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must specify the * user's email address or phone number. This can be done in your call to * AdminCreateUser or in the <b>Users</b> tab of the Amazon Cognito console * for managing your user pools. * </p> * <p> * 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 cannot do this by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param userAttributes <p> * 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 * (in CreateUserPool or in the <b>Attributes</b> tab of the * console) must be supplied either by you (in your call to * AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must * specify the user's email address or phone number. This can be * done in your call to AdminCreateUser or in the <b>Users</b> * tab of the Amazon Cognito console for managing your user * pools. * </p> * <p> * 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 cannot do this * by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withUserAttributes(AttributeType... userAttributes) { if (getUserAttributes() == null) { this.userAttributes = new java.util.ArrayList<AttributeType>(userAttributes.length); } for (AttributeType value : userAttributes) { this.userAttributes.add(value); } return this; } /** * <p> * 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 (in CreateUserPool or in the * <b>Attributes</b> tab of the console) must be supplied either by you (in * your call to AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must specify the * user's email address or phone number. This can be done in your call to * AdminCreateUser or in the <b>Users</b> tab of the Amazon Cognito console * for managing your user pools. * </p> * <p> * 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 cannot do this by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param userAttributes <p> * 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 * (in CreateUserPool or in the <b>Attributes</b> tab of the * console) must be supplied either by you (in your call to * AdminCreateUser) or by the user (when he or she signs up in * response to your welcome message). * </p> * <p> * To send a message inviting the user to sign up, you must * specify the user's email address or phone number. This can be * done in your call to AdminCreateUser or in the <b>Users</b> * tab of the Amazon Cognito console for managing your user * pools. * </p> * <p> * 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 cannot do this * by calling other operations such as * AdminUpdateUserAttributes.) * </p> * <ul> * <li> * <p> * <b>email</b>: 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. * </p> * </li> * <li> * <p> * <b>phone_number</b>: 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. * </p> * </li> * </ul> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withUserAttributes( java.util.Collection<AttributeType> userAttributes) { setUserAttributes(userAttributes); return this; } /** * <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> * * @return <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> */ public java.util.List<AttributeType> getValidationData() { return validationData; } /** * <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> * * @param validationData <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> */ public void setValidationData(java.util.Collection<AttributeType> validationData) { if (validationData == null) { this.validationData = null; return; } this.validationData = new java.util.ArrayList<AttributeType>(validationData); } /** * <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param validationData <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withValidationData(AttributeType... validationData) { if (getValidationData() == null) { this.validationData = new java.util.ArrayList<AttributeType>(validationData.length); } for (AttributeType value : validationData) { this.validationData.add(value); } return this; } /** * <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param validationData <p> * 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. * </p> * <p> * 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. * </p> * <p> * The user's validation data is not persisted. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withValidationData( java.util.Collection<AttributeType> validationData) { setValidationData(validationData); return this; } /** * <p> * The user's temporary password. This password must conform to the password * policy that you specified when you created the user pool. * </p> * <p> * 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. * </p> * <p> * This parameter is not required. If you do not specify a value, Amazon * Cognito generates one for you. * </p> * <p> * 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. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>6 - 256<br/> * <b>Pattern: </b>[\S]+<br/> * * @return <p> * The user's temporary password. This password must conform to the * password policy that you specified when you created the user * pool. * </p> * <p> * 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. * </p> * <p> * This parameter is not required. If you do not specify a value, * Amazon Cognito generates one for you. * </p> * <p> * 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. * </p> */ public String getTemporaryPassword() { return temporaryPassword; } /** * <p> * The user's temporary password. This password must conform to the password * policy that you specified when you created the user pool. * </p> * <p> * 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. * </p> * <p> * This parameter is not required. If you do not specify a value, Amazon * Cognito generates one for you. * </p> * <p> * 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. * </p> * <p> * <b>Constraints:</b><br/> * <b>Length: </b>6 - 256<br/> * <b>Pattern: </b>[\S]+<br/> * * @param temporaryPassword <p> * The user's temporary password. This password must conform to * the password policy that you specified when you created the * user pool. * </p> * <p> * 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. * </p> * <p> * This parameter is not required. If you do not specify a value, * Amazon Cognito generates one for you. * </p> * <p> * 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. * </p> */ public void setTemporaryPassword(String temporaryPassword) { this.temporaryPassword = temporaryPassword; } /** * <p> * The user's temporary password. This password must conform to the password * policy that you specified when you created the user pool. * </p> * <p> * 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. * </p> * <p> * This parameter is not required. If you do not specify a value, Amazon * Cognito generates one for you. * </p> * <p> * 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. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Length: </b>6 - 256<br/> * <b>Pattern: </b>[\S]+<br/> * * @param temporaryPassword <p> * The user's temporary password. This password must conform to * the password policy that you specified when you created the * user pool. * </p> * <p> * 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. * </p> * <p> * This parameter is not required. If you do not specify a value, * Amazon Cognito generates one for you. * </p> * <p> * 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. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withTemporaryPassword(String temporaryPassword) { this.temporaryPassword = temporaryPassword; return this; } /** * <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an AliasExistsException * error if the alias already exists. The default value is False. * </p> * * @return <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is * ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an * AliasExistsException error if the alias already exists. The * default value is False. * </p> */ public Boolean isForceAliasCreation() { return forceAliasCreation; } /** * <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an AliasExistsException * error if the alias already exists. The default value is False. * </p> * * @return <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is * ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an * AliasExistsException error if the alias already exists. The * default value is False. * </p> */ public Boolean getForceAliasCreation() { return forceAliasCreation; } /** * <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an AliasExistsException * error if the alias already exists. The default value is False. * </p> * * @param forceAliasCreation <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is * ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an * AliasExistsException error if the alias already exists. The * default value is False. * </p> */ public void setForceAliasCreation(Boolean forceAliasCreation) { this.forceAliasCreation = forceAliasCreation; } /** * <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an AliasExistsException * error if the alias already exists. The default value is False. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param forceAliasCreation <p> * This parameter is only used if the phone_number_verified or * email_verified attribute is set to True. Otherwise, it is * ignored. * </p> * <p> * 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. * </p> * <p> * If this parameter is set to False, the API throws an * AliasExistsException error if the alias already exists. The * default value is False. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withForceAliasCreation(Boolean forceAliasCreation) { this.forceAliasCreation = forceAliasCreation; return this; } /** * <p> * 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. Only one value can be * specified. * </p> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>RESEND, SUPPRESS * * @return <p> * 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. Only * one value can be specified. * </p> * @see MessageActionType */ public String getMessageAction() { return messageAction; } /** * <p> * 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. Only one value can be * specified. * </p> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>RESEND, SUPPRESS * * @param messageAction <p> * 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. Only one value can be specified. * </p> * @see MessageActionType */ public void setMessageAction(String messageAction) { this.messageAction = messageAction; } /** * <p> * 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. Only one value can be * specified. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>RESEND, SUPPRESS * * @param messageAction <p> * 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. Only one value can be specified. * </p> * @return A reference to this updated object so that method calls can be * chained together. * @see MessageActionType */ public AdminCreateUserRequest withMessageAction(String messageAction) { this.messageAction = messageAction; return this; } /** * <p> * 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. Only one value can be * specified. * </p> * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>RESEND, SUPPRESS * * @param messageAction <p> * 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. Only one value can be specified. * </p> * @see MessageActionType */ public void setMessageAction(MessageActionType messageAction) { this.messageAction = messageAction.toString(); } /** * <p> * 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. Only one value can be * specified. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * <p> * <b>Constraints:</b><br/> * <b>Allowed Values: </b>RESEND, SUPPRESS * * @param messageAction <p> * 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. Only one value can be specified. * </p> * @return A reference to this updated object so that method calls can be * chained together. * @see MessageActionType */ public AdminCreateUserRequest withMessageAction(MessageActionType messageAction) { this.messageAction = messageAction.toString(); return this; } /** * <p> * 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". More than one value can be specified. * </p> * * @return <p> * 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". More than one value can be specified. * </p> */ public java.util.List<String> getDesiredDeliveryMediums() { return desiredDeliveryMediums; } /** * <p> * 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". More than one value can be specified. * </p> * * @param desiredDeliveryMediums <p> * 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". More than one value can be specified. * </p> */ public void setDesiredDeliveryMediums(java.util.Collection<String> desiredDeliveryMediums) { if (desiredDeliveryMediums == null) { this.desiredDeliveryMediums = null; return; } this.desiredDeliveryMediums = new java.util.ArrayList<String>(desiredDeliveryMediums); } /** * <p> * 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". More than one value can be specified. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param desiredDeliveryMediums <p> * 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". More than one value can be specified. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withDesiredDeliveryMediums(String... desiredDeliveryMediums) { if (getDesiredDeliveryMediums() == null) { this.desiredDeliveryMediums = new java.util.ArrayList<String>( desiredDeliveryMediums.length); } for (String value : desiredDeliveryMediums) { this.desiredDeliveryMediums.add(value); } return this; } /** * <p> * 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". More than one value can be specified. * </p> * <p> * Returns a reference to this object so that method calls can be chained * together. * * @param desiredDeliveryMediums <p> * 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". More than one value can be specified. * </p> * @return A reference to this updated object so that method calls can be * chained together. */ public AdminCreateUserRequest withDesiredDeliveryMediums( java.util.Collection<String> desiredDeliveryMediums) { setDesiredDeliveryMediums(desiredDeliveryMediums); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @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: " + getUserPoolId() + ","); if (getUsername() != null) sb.append("Username: " + getUsername() + ","); if (getUserAttributes() != null) sb.append("UserAttributes: " + getUserAttributes() + ","); if (getValidationData() != null) sb.append("ValidationData: " + getValidationData() + ","); if (getTemporaryPassword() != null) sb.append("TemporaryPassword: " + getTemporaryPassword() + ","); if (getForceAliasCreation() != null) sb.append("ForceAliasCreation: " + getForceAliasCreation() + ","); if (getMessageAction() != null) sb.append("MessageAction: " + getMessageAction() + ","); if (getDesiredDeliveryMediums() != null) sb.append("DesiredDeliveryMediums: " + getDesiredDeliveryMediums()); sb.append("}"); return sb.toString(); } @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()); return hashCode; } @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; return true; } }