Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
software.amazon.awssdk.services.cognitoidentityprovider.model.CreateUserPoolRequest Maven / Gradle / Ivy
/*
* Copyright 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 software.amazon.awssdk.services.cognitoidentityprovider.model;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Represents the request to create a user pool.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class CreateUserPoolRequest extends CognitoIdentityProviderRequest implements
ToCopyableBuilder {
private static final SdkField POOL_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("PoolName").getter(getter(CreateUserPoolRequest::poolName)).setter(setter(Builder::poolName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PoolName").build()).build();
private static final SdkField POLICIES_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("Policies")
.getter(getter(CreateUserPoolRequest::policies)).setter(setter(Builder::policies))
.constructor(UserPoolPolicyType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Policies").build()).build();
private static final SdkField DELETION_PROTECTION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DeletionProtection").getter(getter(CreateUserPoolRequest::deletionProtectionAsString))
.setter(setter(Builder::deletionProtection))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeletionProtection").build())
.build();
private static final SdkField LAMBDA_CONFIG_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("LambdaConfig")
.getter(getter(CreateUserPoolRequest::lambdaConfig)).setter(setter(Builder::lambdaConfig))
.constructor(LambdaConfigType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LambdaConfig").build()).build();
private static final SdkField> AUTO_VERIFIED_ATTRIBUTES_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("AutoVerifiedAttributes")
.getter(getter(CreateUserPoolRequest::autoVerifiedAttributesAsStrings))
.setter(setter(Builder::autoVerifiedAttributesWithStrings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AutoVerifiedAttributes").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField> ALIAS_ATTRIBUTES_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("AliasAttributes")
.getter(getter(CreateUserPoolRequest::aliasAttributesAsStrings))
.setter(setter(Builder::aliasAttributesWithStrings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AliasAttributes").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField> USERNAME_ATTRIBUTES_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("UsernameAttributes")
.getter(getter(CreateUserPoolRequest::usernameAttributesAsStrings))
.setter(setter(Builder::usernameAttributesWithStrings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UsernameAttributes").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField SMS_VERIFICATION_MESSAGE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SmsVerificationMessage").getter(getter(CreateUserPoolRequest::smsVerificationMessage))
.setter(setter(Builder::smsVerificationMessage))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SmsVerificationMessage").build())
.build();
private static final SdkField EMAIL_VERIFICATION_MESSAGE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("EmailVerificationMessage").getter(getter(CreateUserPoolRequest::emailVerificationMessage))
.setter(setter(Builder::emailVerificationMessage))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EmailVerificationMessage").build())
.build();
private static final SdkField EMAIL_VERIFICATION_SUBJECT_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("EmailVerificationSubject").getter(getter(CreateUserPoolRequest::emailVerificationSubject))
.setter(setter(Builder::emailVerificationSubject))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EmailVerificationSubject").build())
.build();
private static final SdkField VERIFICATION_MESSAGE_TEMPLATE_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.memberName("VerificationMessageTemplate")
.getter(getter(CreateUserPoolRequest::verificationMessageTemplate))
.setter(setter(Builder::verificationMessageTemplate))
.constructor(VerificationMessageTemplateType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("VerificationMessageTemplate")
.build()).build();
private static final SdkField SMS_AUTHENTICATION_MESSAGE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SmsAuthenticationMessage").getter(getter(CreateUserPoolRequest::smsAuthenticationMessage))
.setter(setter(Builder::smsAuthenticationMessage))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SmsAuthenticationMessage").build())
.build();
private static final SdkField MFA_CONFIGURATION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("MfaConfiguration").getter(getter(CreateUserPoolRequest::mfaConfigurationAsString))
.setter(setter(Builder::mfaConfiguration))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MfaConfiguration").build()).build();
private static final SdkField USER_ATTRIBUTE_UPDATE_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.memberName("UserAttributeUpdateSettings")
.getter(getter(CreateUserPoolRequest::userAttributeUpdateSettings))
.setter(setter(Builder::userAttributeUpdateSettings))
.constructor(UserAttributeUpdateSettingsType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UserAttributeUpdateSettings")
.build()).build();
private static final SdkField DEVICE_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DeviceConfiguration")
.getter(getter(CreateUserPoolRequest::deviceConfiguration)).setter(setter(Builder::deviceConfiguration))
.constructor(DeviceConfigurationType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeviceConfiguration").build())
.build();
private static final SdkField EMAIL_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("EmailConfiguration")
.getter(getter(CreateUserPoolRequest::emailConfiguration)).setter(setter(Builder::emailConfiguration))
.constructor(EmailConfigurationType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EmailConfiguration").build())
.build();
private static final SdkField SMS_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("SmsConfiguration")
.getter(getter(CreateUserPoolRequest::smsConfiguration)).setter(setter(Builder::smsConfiguration))
.constructor(SmsConfigurationType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SmsConfiguration").build()).build();
private static final SdkField> USER_POOL_TAGS_FIELD = SdkField
.> builder(MarshallingType.MAP)
.memberName("UserPoolTags")
.getter(getter(CreateUserPoolRequest::userPoolTags))
.setter(setter(Builder::userPoolTags))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UserPoolTags").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build()).build()).build();
private static final SdkField ADMIN_CREATE_USER_CONFIG_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("AdminCreateUserConfig")
.getter(getter(CreateUserPoolRequest::adminCreateUserConfig)).setter(setter(Builder::adminCreateUserConfig))
.constructor(AdminCreateUserConfigType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AdminCreateUserConfig").build())
.build();
private static final SdkField> SCHEMA_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("Schema")
.getter(getter(CreateUserPoolRequest::schema))
.setter(setter(Builder::schema))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Schema").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(SchemaAttributeType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField USER_POOL_ADD_ONS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("UserPoolAddOns")
.getter(getter(CreateUserPoolRequest::userPoolAddOns)).setter(setter(Builder::userPoolAddOns))
.constructor(UserPoolAddOnsType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UserPoolAddOns").build()).build();
private static final SdkField USERNAME_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("UsernameConfiguration")
.getter(getter(CreateUserPoolRequest::usernameConfiguration)).setter(setter(Builder::usernameConfiguration))
.constructor(UsernameConfigurationType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UsernameConfiguration").build())
.build();
private static final SdkField ACCOUNT_RECOVERY_SETTING_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("AccountRecoverySetting")
.getter(getter(CreateUserPoolRequest::accountRecoverySetting)).setter(setter(Builder::accountRecoverySetting))
.constructor(AccountRecoverySettingType::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AccountRecoverySetting").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(POOL_NAME_FIELD,
POLICIES_FIELD, DELETION_PROTECTION_FIELD, LAMBDA_CONFIG_FIELD, AUTO_VERIFIED_ATTRIBUTES_FIELD,
ALIAS_ATTRIBUTES_FIELD, USERNAME_ATTRIBUTES_FIELD, SMS_VERIFICATION_MESSAGE_FIELD, EMAIL_VERIFICATION_MESSAGE_FIELD,
EMAIL_VERIFICATION_SUBJECT_FIELD, VERIFICATION_MESSAGE_TEMPLATE_FIELD, SMS_AUTHENTICATION_MESSAGE_FIELD,
MFA_CONFIGURATION_FIELD, USER_ATTRIBUTE_UPDATE_SETTINGS_FIELD, DEVICE_CONFIGURATION_FIELD, EMAIL_CONFIGURATION_FIELD,
SMS_CONFIGURATION_FIELD, USER_POOL_TAGS_FIELD, ADMIN_CREATE_USER_CONFIG_FIELD, SCHEMA_FIELD, USER_POOL_ADD_ONS_FIELD,
USERNAME_CONFIGURATION_FIELD, ACCOUNT_RECOVERY_SETTING_FIELD));
private static final Map> SDK_NAME_TO_FIELD = Collections
.unmodifiableMap(new HashMap>() {
{
put("PoolName", POOL_NAME_FIELD);
put("Policies", POLICIES_FIELD);
put("DeletionProtection", DELETION_PROTECTION_FIELD);
put("LambdaConfig", LAMBDA_CONFIG_FIELD);
put("AutoVerifiedAttributes", AUTO_VERIFIED_ATTRIBUTES_FIELD);
put("AliasAttributes", ALIAS_ATTRIBUTES_FIELD);
put("UsernameAttributes", USERNAME_ATTRIBUTES_FIELD);
put("SmsVerificationMessage", SMS_VERIFICATION_MESSAGE_FIELD);
put("EmailVerificationMessage", EMAIL_VERIFICATION_MESSAGE_FIELD);
put("EmailVerificationSubject", EMAIL_VERIFICATION_SUBJECT_FIELD);
put("VerificationMessageTemplate", VERIFICATION_MESSAGE_TEMPLATE_FIELD);
put("SmsAuthenticationMessage", SMS_AUTHENTICATION_MESSAGE_FIELD);
put("MfaConfiguration", MFA_CONFIGURATION_FIELD);
put("UserAttributeUpdateSettings", USER_ATTRIBUTE_UPDATE_SETTINGS_FIELD);
put("DeviceConfiguration", DEVICE_CONFIGURATION_FIELD);
put("EmailConfiguration", EMAIL_CONFIGURATION_FIELD);
put("SmsConfiguration", SMS_CONFIGURATION_FIELD);
put("UserPoolTags", USER_POOL_TAGS_FIELD);
put("AdminCreateUserConfig", ADMIN_CREATE_USER_CONFIG_FIELD);
put("Schema", SCHEMA_FIELD);
put("UserPoolAddOns", USER_POOL_ADD_ONS_FIELD);
put("UsernameConfiguration", USERNAME_CONFIGURATION_FIELD);
put("AccountRecoverySetting", ACCOUNT_RECOVERY_SETTING_FIELD);
}
});
private final String poolName;
private final UserPoolPolicyType policies;
private final String deletionProtection;
private final LambdaConfigType lambdaConfig;
private final List autoVerifiedAttributes;
private final List aliasAttributes;
private final List usernameAttributes;
private final String smsVerificationMessage;
private final String emailVerificationMessage;
private final String emailVerificationSubject;
private final VerificationMessageTemplateType verificationMessageTemplate;
private final String smsAuthenticationMessage;
private final String mfaConfiguration;
private final UserAttributeUpdateSettingsType userAttributeUpdateSettings;
private final DeviceConfigurationType deviceConfiguration;
private final EmailConfigurationType emailConfiguration;
private final SmsConfigurationType smsConfiguration;
private final Map userPoolTags;
private final AdminCreateUserConfigType adminCreateUserConfig;
private final List schema;
private final UserPoolAddOnsType userPoolAddOns;
private final UsernameConfigurationType usernameConfiguration;
private final AccountRecoverySettingType accountRecoverySetting;
private CreateUserPoolRequest(BuilderImpl builder) {
super(builder);
this.poolName = builder.poolName;
this.policies = builder.policies;
this.deletionProtection = builder.deletionProtection;
this.lambdaConfig = builder.lambdaConfig;
this.autoVerifiedAttributes = builder.autoVerifiedAttributes;
this.aliasAttributes = builder.aliasAttributes;
this.usernameAttributes = builder.usernameAttributes;
this.smsVerificationMessage = builder.smsVerificationMessage;
this.emailVerificationMessage = builder.emailVerificationMessage;
this.emailVerificationSubject = builder.emailVerificationSubject;
this.verificationMessageTemplate = builder.verificationMessageTemplate;
this.smsAuthenticationMessage = builder.smsAuthenticationMessage;
this.mfaConfiguration = builder.mfaConfiguration;
this.userAttributeUpdateSettings = builder.userAttributeUpdateSettings;
this.deviceConfiguration = builder.deviceConfiguration;
this.emailConfiguration = builder.emailConfiguration;
this.smsConfiguration = builder.smsConfiguration;
this.userPoolTags = builder.userPoolTags;
this.adminCreateUserConfig = builder.adminCreateUserConfig;
this.schema = builder.schema;
this.userPoolAddOns = builder.userPoolAddOns;
this.usernameConfiguration = builder.usernameConfiguration;
this.accountRecoverySetting = builder.accountRecoverySetting;
}
/**
*
* A string used to name the user pool.
*
*
* @return A string used to name the user pool.
*/
public final String poolName() {
return poolName;
}
/**
*
* The policies associated with the new user pool.
*
*
* @return The policies associated with the new user pool.
*/
public final UserPoolPolicyType policies() {
return policies;
}
/**
*
* When active, DeletionProtection
prevents accidental deletion of your user pool. Before you can
* delete a user pool that you have protected against deletion, you must deactivate this feature.
*
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon Cognito returns
* an InvalidParameterException
error. To delete a protected user pool, send a new
* DeleteUserPool
request after you deactivate deletion protection in an UpdateUserPool
* API request.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #deletionProtection} will return {@link DeletionProtectionType#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #deletionProtectionAsString}.
*
*
* @return When active, DeletionProtection
prevents accidental deletion of your user pool. Before you
* can delete a user pool that you have protected against deletion, you must deactivate this feature.
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon Cognito
* returns an InvalidParameterException
error. To delete a protected user pool, send a new
* DeleteUserPool
request after you deactivate deletion protection in an
* UpdateUserPool
API request.
* @see DeletionProtectionType
*/
public final DeletionProtectionType deletionProtection() {
return DeletionProtectionType.fromValue(deletionProtection);
}
/**
*
* When active, DeletionProtection
prevents accidental deletion of your user pool. Before you can
* delete a user pool that you have protected against deletion, you must deactivate this feature.
*
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon Cognito returns
* an InvalidParameterException
error. To delete a protected user pool, send a new
* DeleteUserPool
request after you deactivate deletion protection in an UpdateUserPool
* API request.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #deletionProtection} will return {@link DeletionProtectionType#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #deletionProtectionAsString}.
*
*
* @return When active, DeletionProtection
prevents accidental deletion of your user pool. Before you
* can delete a user pool that you have protected against deletion, you must deactivate this feature.
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon Cognito
* returns an InvalidParameterException
error. To delete a protected user pool, send a new
* DeleteUserPool
request after you deactivate deletion protection in an
* UpdateUserPool
API request.
* @see DeletionProtectionType
*/
public final String deletionProtectionAsString() {
return deletionProtection;
}
/**
*
* The Lambda trigger configuration information for the new user pool.
*
*
*
* In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a function.
* So you must make an extra call to add permission for these event sources to invoke your Lambda function.
*
*
*
* For more information on using the Lambda API to add permission, see AddPermission .
*
*
* For adding permission using the CLI, see add-permission .
*
*
*
* @return The Lambda trigger configuration information for the new user pool.
*
* In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a
* function. So you must make an extra call to add permission for these event sources to invoke your Lambda
* function.
*
*
*
* For more information on using the Lambda API to add permission, see AddPermission .
*
*
* For adding permission using the CLI, see add-permission .
*
*/
public final LambdaConfigType lambdaConfig() {
return lambdaConfig;
}
/**
*
* The attributes to be auto-verified. Possible values: email , phone_number .
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAutoVerifiedAttributes} method.
*
*
* @return The attributes to be auto-verified. Possible values: email , phone_number .
*/
public final List autoVerifiedAttributes() {
return VerifiedAttributesListTypeCopier.copyStringToEnum(autoVerifiedAttributes);
}
/**
* For responses, this returns true if the service returned a value for the AutoVerifiedAttributes property. This
* DOES NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the
* property). This is useful because the SDK will never return a null collection or map, but you may need to
* differentiate between the service returning nothing (or null) and the service returning an empty collection or
* map. For requests, this returns true if a value for the property was specified in the request builder, and false
* if a value was not specified.
*/
public final boolean hasAutoVerifiedAttributes() {
return autoVerifiedAttributes != null && !(autoVerifiedAttributes instanceof SdkAutoConstructList);
}
/**
*
* The attributes to be auto-verified. Possible values: email , phone_number .
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAutoVerifiedAttributes} method.
*
*
* @return The attributes to be auto-verified. Possible values: email , phone_number .
*/
public final List autoVerifiedAttributesAsStrings() {
return autoVerifiedAttributes;
}
/**
*
* Attributes supported as an alias for this user pool. Possible values: phone_number , email , or
* preferred_username .
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAliasAttributes} method.
*
*
* @return Attributes supported as an alias for this user pool. Possible values: phone_number , email ,
* or preferred_username .
*/
public final List aliasAttributes() {
return AliasAttributesListTypeCopier.copyStringToEnum(aliasAttributes);
}
/**
* For responses, this returns true if the service returned a value for the AliasAttributes property. This DOES NOT
* check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasAliasAttributes() {
return aliasAttributes != null && !(aliasAttributes instanceof SdkAutoConstructList);
}
/**
*
* Attributes supported as an alias for this user pool. Possible values: phone_number , email , or
* preferred_username .
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAliasAttributes} method.
*
*
* @return Attributes supported as an alias for this user pool. Possible values: phone_number , email ,
* or preferred_username .
*/
public final List aliasAttributesAsStrings() {
return aliasAttributes;
}
/**
*
* Specifies whether a user can use an email address or phone number as a username when they sign up.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasUsernameAttributes} method.
*
*
* @return Specifies whether a user can use an email address or phone number as a username when they sign up.
*/
public final List usernameAttributes() {
return UsernameAttributesListTypeCopier.copyStringToEnum(usernameAttributes);
}
/**
* For responses, this returns true if the service returned a value for the UsernameAttributes property. This DOES
* NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasUsernameAttributes() {
return usernameAttributes != null && !(usernameAttributes instanceof SdkAutoConstructList);
}
/**
*
* Specifies whether a user can use an email address or phone number as a username when they sign up.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasUsernameAttributes} method.
*
*
* @return Specifies whether a user can use an email address or phone number as a username when they sign up.
*/
public final List usernameAttributesAsStrings() {
return usernameAttributes;
}
/**
*
* This parameter is no longer used. See VerificationMessageTemplateType .
*
*
* @return This parameter is no longer used. See VerificationMessageTemplateType .
*/
public final String smsVerificationMessage() {
return smsVerificationMessage;
}
/**
*
* This parameter is no longer used. See VerificationMessageTemplateType .
*
*
* @return This parameter is no longer used. See VerificationMessageTemplateType .
*/
public final String emailVerificationMessage() {
return emailVerificationMessage;
}
/**
*
* This parameter is no longer used. See VerificationMessageTemplateType .
*
*
* @return This parameter is no longer used. See VerificationMessageTemplateType .
*/
public final String emailVerificationSubject() {
return emailVerificationSubject;
}
/**
*
* The template for the verification message that the user sees when the app requests permission to access the
* user's information.
*
*
* @return The template for the verification message that the user sees when the app requests permission to access
* the user's information.
*/
public final VerificationMessageTemplateType verificationMessageTemplate() {
return verificationMessageTemplate;
}
/**
*
* A string representing the SMS authentication message.
*
*
* @return A string representing the SMS authentication message.
*/
public final String smsAuthenticationMessage() {
return smsAuthenticationMessage;
}
/**
*
* Specifies MFA configuration details.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #mfaConfiguration}
* will return {@link UserPoolMfaType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #mfaConfigurationAsString}.
*
*
* @return Specifies MFA configuration details.
* @see UserPoolMfaType
*/
public final UserPoolMfaType mfaConfiguration() {
return UserPoolMfaType.fromValue(mfaConfiguration);
}
/**
*
* Specifies MFA configuration details.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #mfaConfiguration}
* will return {@link UserPoolMfaType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #mfaConfigurationAsString}.
*
*
* @return Specifies MFA configuration details.
* @see UserPoolMfaType
*/
public final String mfaConfigurationAsString() {
return mfaConfiguration;
}
/**
*
* The settings for updates to user attributes. These settings include the property
* AttributesRequireVerificationBeforeUpdate
, a user-pool setting that tells Amazon Cognito how to
* handle changes to the value of your users' email address and phone number attributes. For more information, see
* Verifying updates to email addresses and phone numbers .
*
*
* @return The settings for updates to user attributes. These settings include the property
* AttributesRequireVerificationBeforeUpdate
, a user-pool setting that tells Amazon Cognito how
* to handle changes to the value of your users' email address and phone number attributes. For more
* information, see Verifying updates to email addresses and phone numbers .
*/
public final UserAttributeUpdateSettingsType userAttributeUpdateSettings() {
return userAttributeUpdateSettings;
}
/**
*
* The device-remembering configuration for a user pool. A null value indicates that you have deactivated device
* remembering in your user pool.
*
*
*
* When you provide a value for any DeviceConfiguration
field, you activate the Amazon Cognito
* device-remembering feature.
*
*
*
* @return The device-remembering configuration for a user pool. A null value indicates that you have deactivated
* device remembering in your user pool.
*
* When you provide a value for any DeviceConfiguration
field, you activate the Amazon Cognito
* device-remembering feature.
*
*/
public final DeviceConfigurationType deviceConfiguration() {
return deviceConfiguration;
}
/**
*
* The email configuration of your user pool. The email configuration type sets your preferred sending method,
* Amazon Web Services Region, and sender for messages from your user pool.
*
*
* @return The email configuration of your user pool. The email configuration type sets your preferred sending
* method, Amazon Web Services Region, and sender for messages from your user pool.
*/
public final EmailConfigurationType emailConfiguration() {
return emailConfiguration;
}
/**
*
* The SMS configuration with the settings that your Amazon Cognito user pool must use to send an SMS message from
* your Amazon Web Services account through Amazon Simple Notification Service. To send SMS messages with Amazon SNS
* in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and Access
* Management (IAM) role in your Amazon Web Services account.
*
*
* @return The SMS configuration with the settings that your Amazon Cognito user pool must use to send an SMS
* message from your Amazon Web Services account through Amazon Simple Notification Service. To send SMS
* messages with Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool
* uses an Identity and Access Management (IAM) role in your Amazon Web Services account.
*/
public final SmsConfigurationType smsConfiguration() {
return smsConfiguration;
}
/**
* For responses, this returns true if the service returned a value for the UserPoolTags property. This DOES NOT
* check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasUserPoolTags() {
return userPoolTags != null && !(userPoolTags instanceof SdkAutoConstructMap);
}
/**
*
* The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and manage
* user pools in different ways, such as by purpose, owner, environment, or other criteria.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasUserPoolTags} method.
*
*
* @return The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and
* manage user pools in different ways, such as by purpose, owner, environment, or other criteria.
*/
public final Map userPoolTags() {
return userPoolTags;
}
/**
*
* The configuration for AdminCreateUser
requests.
*
*
* @return The configuration for AdminCreateUser
requests.
*/
public final AdminCreateUserConfigType adminCreateUserConfig() {
return adminCreateUserConfig;
}
/**
* For responses, this returns true if the service returned a value for the Schema property. This DOES NOT check
* that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is
* useful because the SDK will never return a null collection or map, but you may need to differentiate between the
* service returning nothing (or null) and the service returning an empty collection or map. For requests, this
* returns true if a value for the property was specified in the request builder, and false if a value was not
* specified.
*/
public final boolean hasSchema() {
return schema != null && !(schema instanceof SdkAutoConstructList);
}
/**
*
* An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasSchema} method.
*
*
* @return An array of schema attributes for the new user pool. These attributes can be standard or custom
* attributes.
*/
public final List schema() {
return schema;
}
/**
*
* User pool add-ons. Contains settings for activation of advanced security features. To log user security
* information but take no action, set to AUDIT
. To configure automatic security responses to risky
* traffic to your user pool, set to ENFORCED
.
*
*
* For more information, see Adding advanced security to a user pool .
*
*
* @return User pool add-ons. Contains settings for activation of advanced security features. To log user security
* information but take no action, set to AUDIT
. To configure automatic security responses to
* risky traffic to your user pool, set to ENFORCED
.
*
* For more information, see Adding advanced security to a user pool .
*/
public final UserPoolAddOnsType userPoolAddOns() {
return userPoolAddOns;
}
/**
*
* Case sensitivity on the username input for the selected sign-in option. When case sensitivity is set to
* False
(case insensitive), users can sign in with any combination of capital and lowercase letters.
* For example, username
, USERNAME
, or UserName
, or for email,
* [email protected]
or [email protected]
. For most use cases, set case sensitivity to
* False
(case insensitive) as a best practice. When usernames and email addresses are case
* insensitive, Amazon Cognito treats any variation in case as the same user, and prevents a case variation from
* being assigned to the same attribute for a different user.
*
*
* This configuration is immutable after you set it. For more information, see UsernameConfigurationType .
*
*
* @return Case sensitivity on the username input for the selected sign-in option. When case sensitivity is set to
* False
(case insensitive), users can sign in with any combination of capital and lowercase
* letters. For example, username
, USERNAME
, or UserName
, or for
* email, [email protected]
or [email protected]
. For most use cases, set case
* sensitivity to False
(case insensitive) as a best practice. When usernames and email
* addresses are case insensitive, Amazon Cognito treats any variation in case as the same user, and
* prevents a case variation from being assigned to the same attribute for a different user.
*
* This configuration is immutable after you set it. For more information, see UsernameConfigurationType .
*/
public final UsernameConfigurationType usernameConfiguration() {
return usernameConfiguration;
}
/**
*
* The available verified method a user can use to recover their password when they call ForgotPassword
* . You can use this setting to define a preferred method when a user has more than one method available. With this
* setting, SMS doesn't qualify for a valid password recovery mechanism if the user also has SMS multi-factor
* authentication (MFA) activated. In the absence of this setting, Amazon Cognito uses the legacy behavior to
* determine the recovery method where SMS is preferred through email.
*
*
* @return The available verified method a user can use to recover their password when they call
* ForgotPassword
. You can use this setting to define a preferred method when a user has more
* than one method available. With this setting, SMS doesn't qualify for a valid password recovery mechanism
* if the user also has SMS multi-factor authentication (MFA) activated. In the absence of this setting,
* Amazon Cognito uses the legacy behavior to determine the recovery method where SMS is preferred through
* email.
*/
public final AccountRecoverySettingType accountRecoverySetting() {
return accountRecoverySetting;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(poolName());
hashCode = 31 * hashCode + Objects.hashCode(policies());
hashCode = 31 * hashCode + Objects.hashCode(deletionProtectionAsString());
hashCode = 31 * hashCode + Objects.hashCode(lambdaConfig());
hashCode = 31 * hashCode + Objects.hashCode(hasAutoVerifiedAttributes() ? autoVerifiedAttributesAsStrings() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasAliasAttributes() ? aliasAttributesAsStrings() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasUsernameAttributes() ? usernameAttributesAsStrings() : null);
hashCode = 31 * hashCode + Objects.hashCode(smsVerificationMessage());
hashCode = 31 * hashCode + Objects.hashCode(emailVerificationMessage());
hashCode = 31 * hashCode + Objects.hashCode(emailVerificationSubject());
hashCode = 31 * hashCode + Objects.hashCode(verificationMessageTemplate());
hashCode = 31 * hashCode + Objects.hashCode(smsAuthenticationMessage());
hashCode = 31 * hashCode + Objects.hashCode(mfaConfigurationAsString());
hashCode = 31 * hashCode + Objects.hashCode(userAttributeUpdateSettings());
hashCode = 31 * hashCode + Objects.hashCode(deviceConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(emailConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(smsConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(hasUserPoolTags() ? userPoolTags() : null);
hashCode = 31 * hashCode + Objects.hashCode(adminCreateUserConfig());
hashCode = 31 * hashCode + Objects.hashCode(hasSchema() ? schema() : null);
hashCode = 31 * hashCode + Objects.hashCode(userPoolAddOns());
hashCode = 31 * hashCode + Objects.hashCode(usernameConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(accountRecoverySetting());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof CreateUserPoolRequest)) {
return false;
}
CreateUserPoolRequest other = (CreateUserPoolRequest) obj;
return Objects.equals(poolName(), other.poolName()) && Objects.equals(policies(), other.policies())
&& Objects.equals(deletionProtectionAsString(), other.deletionProtectionAsString())
&& Objects.equals(lambdaConfig(), other.lambdaConfig())
&& hasAutoVerifiedAttributes() == other.hasAutoVerifiedAttributes()
&& Objects.equals(autoVerifiedAttributesAsStrings(), other.autoVerifiedAttributesAsStrings())
&& hasAliasAttributes() == other.hasAliasAttributes()
&& Objects.equals(aliasAttributesAsStrings(), other.aliasAttributesAsStrings())
&& hasUsernameAttributes() == other.hasUsernameAttributes()
&& Objects.equals(usernameAttributesAsStrings(), other.usernameAttributesAsStrings())
&& Objects.equals(smsVerificationMessage(), other.smsVerificationMessage())
&& Objects.equals(emailVerificationMessage(), other.emailVerificationMessage())
&& Objects.equals(emailVerificationSubject(), other.emailVerificationSubject())
&& Objects.equals(verificationMessageTemplate(), other.verificationMessageTemplate())
&& Objects.equals(smsAuthenticationMessage(), other.smsAuthenticationMessage())
&& Objects.equals(mfaConfigurationAsString(), other.mfaConfigurationAsString())
&& Objects.equals(userAttributeUpdateSettings(), other.userAttributeUpdateSettings())
&& Objects.equals(deviceConfiguration(), other.deviceConfiguration())
&& Objects.equals(emailConfiguration(), other.emailConfiguration())
&& Objects.equals(smsConfiguration(), other.smsConfiguration()) && hasUserPoolTags() == other.hasUserPoolTags()
&& Objects.equals(userPoolTags(), other.userPoolTags())
&& Objects.equals(adminCreateUserConfig(), other.adminCreateUserConfig()) && hasSchema() == other.hasSchema()
&& Objects.equals(schema(), other.schema()) && Objects.equals(userPoolAddOns(), other.userPoolAddOns())
&& Objects.equals(usernameConfiguration(), other.usernameConfiguration())
&& Objects.equals(accountRecoverySetting(), other.accountRecoverySetting());
}
/**
* 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.
*/
@Override
public final String toString() {
return ToString.builder("CreateUserPoolRequest").add("PoolName", poolName()).add("Policies", policies())
.add("DeletionProtection", deletionProtectionAsString()).add("LambdaConfig", lambdaConfig())
.add("AutoVerifiedAttributes", hasAutoVerifiedAttributes() ? autoVerifiedAttributesAsStrings() : null)
.add("AliasAttributes", hasAliasAttributes() ? aliasAttributesAsStrings() : null)
.add("UsernameAttributes", hasUsernameAttributes() ? usernameAttributesAsStrings() : null)
.add("SmsVerificationMessage", smsVerificationMessage())
.add("EmailVerificationMessage", emailVerificationMessage())
.add("EmailVerificationSubject", emailVerificationSubject())
.add("VerificationMessageTemplate", verificationMessageTemplate())
.add("SmsAuthenticationMessage", smsAuthenticationMessage()).add("MfaConfiguration", mfaConfigurationAsString())
.add("UserAttributeUpdateSettings", userAttributeUpdateSettings())
.add("DeviceConfiguration", deviceConfiguration()).add("EmailConfiguration", emailConfiguration())
.add("SmsConfiguration", smsConfiguration()).add("UserPoolTags", hasUserPoolTags() ? userPoolTags() : null)
.add("AdminCreateUserConfig", adminCreateUserConfig()).add("Schema", hasSchema() ? schema() : null)
.add("UserPoolAddOns", userPoolAddOns()).add("UsernameConfiguration", usernameConfiguration())
.add("AccountRecoverySetting", accountRecoverySetting()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "PoolName":
return Optional.ofNullable(clazz.cast(poolName()));
case "Policies":
return Optional.ofNullable(clazz.cast(policies()));
case "DeletionProtection":
return Optional.ofNullable(clazz.cast(deletionProtectionAsString()));
case "LambdaConfig":
return Optional.ofNullable(clazz.cast(lambdaConfig()));
case "AutoVerifiedAttributes":
return Optional.ofNullable(clazz.cast(autoVerifiedAttributesAsStrings()));
case "AliasAttributes":
return Optional.ofNullable(clazz.cast(aliasAttributesAsStrings()));
case "UsernameAttributes":
return Optional.ofNullable(clazz.cast(usernameAttributesAsStrings()));
case "SmsVerificationMessage":
return Optional.ofNullable(clazz.cast(smsVerificationMessage()));
case "EmailVerificationMessage":
return Optional.ofNullable(clazz.cast(emailVerificationMessage()));
case "EmailVerificationSubject":
return Optional.ofNullable(clazz.cast(emailVerificationSubject()));
case "VerificationMessageTemplate":
return Optional.ofNullable(clazz.cast(verificationMessageTemplate()));
case "SmsAuthenticationMessage":
return Optional.ofNullable(clazz.cast(smsAuthenticationMessage()));
case "MfaConfiguration":
return Optional.ofNullable(clazz.cast(mfaConfigurationAsString()));
case "UserAttributeUpdateSettings":
return Optional.ofNullable(clazz.cast(userAttributeUpdateSettings()));
case "DeviceConfiguration":
return Optional.ofNullable(clazz.cast(deviceConfiguration()));
case "EmailConfiguration":
return Optional.ofNullable(clazz.cast(emailConfiguration()));
case "SmsConfiguration":
return Optional.ofNullable(clazz.cast(smsConfiguration()));
case "UserPoolTags":
return Optional.ofNullable(clazz.cast(userPoolTags()));
case "AdminCreateUserConfig":
return Optional.ofNullable(clazz.cast(adminCreateUserConfig()));
case "Schema":
return Optional.ofNullable(clazz.cast(schema()));
case "UserPoolAddOns":
return Optional.ofNullable(clazz.cast(userPoolAddOns()));
case "UsernameConfiguration":
return Optional.ofNullable(clazz.cast(usernameConfiguration()));
case "AccountRecoverySetting":
return Optional.ofNullable(clazz.cast(accountRecoverySetting()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
@Override
public final Map> sdkFieldNameToField() {
return SDK_NAME_TO_FIELD;
}
private static Function getter(Function g) {
return obj -> g.apply((CreateUserPoolRequest) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends CognitoIdentityProviderRequest.Builder, SdkPojo,
CopyableBuilder {
/**
*
* A string used to name the user pool.
*
*
* @param poolName
* A string used to name the user pool.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder poolName(String poolName);
/**
*
* The policies associated with the new user pool.
*
*
* @param policies
* The policies associated with the new user pool.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder policies(UserPoolPolicyType policies);
/**
*
* The policies associated with the new user pool.
*
* This is a convenience method that creates an instance of the {@link UserPoolPolicyType.Builder} avoiding the
* need to create one manually via {@link UserPoolPolicyType#builder()}.
*
*
* When the {@link Consumer} completes, {@link UserPoolPolicyType.Builder#build()} is called immediately and its
* result is passed to {@link #policies(UserPoolPolicyType)}.
*
* @param policies
* a consumer that will call methods on {@link UserPoolPolicyType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #policies(UserPoolPolicyType)
*/
default Builder policies(Consumer policies) {
return policies(UserPoolPolicyType.builder().applyMutation(policies).build());
}
/**
*
* When active, DeletionProtection
prevents accidental deletion of your user pool. Before you can
* delete a user pool that you have protected against deletion, you must deactivate this feature.
*
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon Cognito
* returns an InvalidParameterException
error. To delete a protected user pool, send a new
* DeleteUserPool
request after you deactivate deletion protection in an
* UpdateUserPool
API request.
*
*
* @param deletionProtection
* When active, DeletionProtection
prevents accidental deletion of your user pool. Before
* you can delete a user pool that you have protected against deletion, you must deactivate this
* feature.
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon
* Cognito returns an InvalidParameterException
error. To delete a protected user pool, send
* a new DeleteUserPool
request after you deactivate deletion protection in an
* UpdateUserPool
API request.
* @see DeletionProtectionType
* @return Returns a reference to this object so that method calls can be chained together.
* @see DeletionProtectionType
*/
Builder deletionProtection(String deletionProtection);
/**
*
* When active, DeletionProtection
prevents accidental deletion of your user pool. Before you can
* delete a user pool that you have protected against deletion, you must deactivate this feature.
*
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon Cognito
* returns an InvalidParameterException
error. To delete a protected user pool, send a new
* DeleteUserPool
request after you deactivate deletion protection in an
* UpdateUserPool
API request.
*
*
* @param deletionProtection
* When active, DeletionProtection
prevents accidental deletion of your user pool. Before
* you can delete a user pool that you have protected against deletion, you must deactivate this
* feature.
*
* When you try to delete a protected user pool in a DeleteUserPool
API request, Amazon
* Cognito returns an InvalidParameterException
error. To delete a protected user pool, send
* a new DeleteUserPool
request after you deactivate deletion protection in an
* UpdateUserPool
API request.
* @see DeletionProtectionType
* @return Returns a reference to this object so that method calls can be chained together.
* @see DeletionProtectionType
*/
Builder deletionProtection(DeletionProtectionType deletionProtection);
/**
*
* The Lambda trigger configuration information for the new user pool.
*
*
*
* In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a
* function. So you must make an extra call to add permission for these event sources to invoke your Lambda
* function.
*
*
*
* For more information on using the Lambda API to add permission, see AddPermission .
*
*
* For adding permission using the CLI, see add-permission .
*
*
*
* @param lambdaConfig
* The Lambda trigger configuration information for the new user pool.
*
* In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a
* function. So you must make an extra call to add permission for these event sources to invoke your
* Lambda function.
*
*
*
* For more information on using the Lambda API to add permission, see AddPermission .
*
*
* For adding permission using the CLI, see add-permission
* .
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder lambdaConfig(LambdaConfigType lambdaConfig);
/**
*
* The Lambda trigger configuration information for the new user pool.
*
*
*
* In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a
* function. So you must make an extra call to add permission for these event sources to invoke your Lambda
* function.
*
*
*
* For more information on using the Lambda API to add permission, see AddPermission .
*
*
* For adding permission using the CLI, see add-permission .
*
* This is a convenience method that creates an instance of the {@link LambdaConfigType.Builder}
* avoiding the need to create one manually via {@link LambdaConfigType#builder()}.
*
*
* When the {@link Consumer} completes, {@link LambdaConfigType.Builder#build()} is called immediately and its
* result is passed to {@link #lambdaConfig(LambdaConfigType)}.
*
* @param lambdaConfig
* a consumer that will call methods on {@link LambdaConfigType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #lambdaConfig(LambdaConfigType)
*/
default Builder lambdaConfig(Consumer lambdaConfig) {
return lambdaConfig(LambdaConfigType.builder().applyMutation(lambdaConfig).build());
}
/**
*
* The attributes to be auto-verified. Possible values: email , phone_number .
*
*
* @param autoVerifiedAttributes
* The attributes to be auto-verified. Possible values: email , phone_number .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder autoVerifiedAttributesWithStrings(Collection autoVerifiedAttributes);
/**
*
* The attributes to be auto-verified. Possible values: email , phone_number .
*
*
* @param autoVerifiedAttributes
* The attributes to be auto-verified. Possible values: email , phone_number .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder autoVerifiedAttributesWithStrings(String... autoVerifiedAttributes);
/**
*
* The attributes to be auto-verified. Possible values: email , phone_number .
*
*
* @param autoVerifiedAttributes
* The attributes to be auto-verified. Possible values: email , phone_number .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder autoVerifiedAttributes(Collection autoVerifiedAttributes);
/**
*
* The attributes to be auto-verified. Possible values: email , phone_number .
*
*
* @param autoVerifiedAttributes
* The attributes to be auto-verified. Possible values: email , phone_number .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder autoVerifiedAttributes(VerifiedAttributeType... autoVerifiedAttributes);
/**
*
* Attributes supported as an alias for this user pool. Possible values: phone_number , email , or
* preferred_username .
*
*
* @param aliasAttributes
* Attributes supported as an alias for this user pool. Possible values: phone_number ,
* email , or preferred_username .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder aliasAttributesWithStrings(Collection aliasAttributes);
/**
*
* Attributes supported as an alias for this user pool. Possible values: phone_number , email , or
* preferred_username .
*
*
* @param aliasAttributes
* Attributes supported as an alias for this user pool. Possible values: phone_number ,
* email , or preferred_username .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder aliasAttributesWithStrings(String... aliasAttributes);
/**
*
* Attributes supported as an alias for this user pool. Possible values: phone_number , email , or
* preferred_username .
*
*
* @param aliasAttributes
* Attributes supported as an alias for this user pool. Possible values: phone_number ,
* email , or preferred_username .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder aliasAttributes(Collection aliasAttributes);
/**
*
* Attributes supported as an alias for this user pool. Possible values: phone_number , email , or
* preferred_username .
*
*
* @param aliasAttributes
* Attributes supported as an alias for this user pool. Possible values: phone_number ,
* email , or preferred_username .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder aliasAttributes(AliasAttributeType... aliasAttributes);
/**
*
* Specifies whether a user can use an email address or phone number as a username when they sign up.
*
*
* @param usernameAttributes
* Specifies whether a user can use an email address or phone number as a username when they sign up.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder usernameAttributesWithStrings(Collection usernameAttributes);
/**
*
* Specifies whether a user can use an email address or phone number as a username when they sign up.
*
*
* @param usernameAttributes
* Specifies whether a user can use an email address or phone number as a username when they sign up.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder usernameAttributesWithStrings(String... usernameAttributes);
/**
*
* Specifies whether a user can use an email address or phone number as a username when they sign up.
*
*
* @param usernameAttributes
* Specifies whether a user can use an email address or phone number as a username when they sign up.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder usernameAttributes(Collection usernameAttributes);
/**
*
* Specifies whether a user can use an email address or phone number as a username when they sign up.
*
*
* @param usernameAttributes
* Specifies whether a user can use an email address or phone number as a username when they sign up.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder usernameAttributes(UsernameAttributeType... usernameAttributes);
/**
*
* This parameter is no longer used. See VerificationMessageTemplateType .
*
*
* @param smsVerificationMessage
* This parameter is no longer used. See VerificationMessageTemplateType .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder smsVerificationMessage(String smsVerificationMessage);
/**
*
* This parameter is no longer used. See VerificationMessageTemplateType .
*
*
* @param emailVerificationMessage
* This parameter is no longer used. See VerificationMessageTemplateType .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder emailVerificationMessage(String emailVerificationMessage);
/**
*
* This parameter is no longer used. See VerificationMessageTemplateType .
*
*
* @param emailVerificationSubject
* This parameter is no longer used. See VerificationMessageTemplateType .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder emailVerificationSubject(String emailVerificationSubject);
/**
*
* The template for the verification message that the user sees when the app requests permission to access the
* user's information.
*
*
* @param verificationMessageTemplate
* The template for the verification message that the user sees when the app requests permission to
* access the user's information.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder verificationMessageTemplate(VerificationMessageTemplateType verificationMessageTemplate);
/**
*
* The template for the verification message that the user sees when the app requests permission to access the
* user's information.
*
* This is a convenience method that creates an instance of the {@link VerificationMessageTemplateType.Builder}
* avoiding the need to create one manually via {@link VerificationMessageTemplateType#builder()}.
*
*
* When the {@link Consumer} completes, {@link VerificationMessageTemplateType.Builder#build()} is called
* immediately and its result is passed to {@link #verificationMessageTemplate(VerificationMessageTemplateType)}.
*
* @param verificationMessageTemplate
* a consumer that will call methods on {@link VerificationMessageTemplateType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #verificationMessageTemplate(VerificationMessageTemplateType)
*/
default Builder verificationMessageTemplate(Consumer verificationMessageTemplate) {
return verificationMessageTemplate(VerificationMessageTemplateType.builder()
.applyMutation(verificationMessageTemplate).build());
}
/**
*
* A string representing the SMS authentication message.
*
*
* @param smsAuthenticationMessage
* A string representing the SMS authentication message.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder smsAuthenticationMessage(String smsAuthenticationMessage);
/**
*
* Specifies MFA configuration details.
*
*
* @param mfaConfiguration
* Specifies MFA configuration details.
* @see UserPoolMfaType
* @return Returns a reference to this object so that method calls can be chained together.
* @see UserPoolMfaType
*/
Builder mfaConfiguration(String mfaConfiguration);
/**
*
* Specifies MFA configuration details.
*
*
* @param mfaConfiguration
* Specifies MFA configuration details.
* @see UserPoolMfaType
* @return Returns a reference to this object so that method calls can be chained together.
* @see UserPoolMfaType
*/
Builder mfaConfiguration(UserPoolMfaType mfaConfiguration);
/**
*
* The settings for updates to user attributes. These settings include the property
* AttributesRequireVerificationBeforeUpdate
, a user-pool setting that tells Amazon Cognito how to
* handle changes to the value of your users' email address and phone number attributes. For more information,
* see Verifying updates to email addresses and phone numbers .
*
*
* @param userAttributeUpdateSettings
* The settings for updates to user attributes. These settings include the property
* AttributesRequireVerificationBeforeUpdate
, a user-pool setting that tells Amazon Cognito
* how to handle changes to the value of your users' email address and phone number attributes. For more
* information, see Verifying updates to email addresses and phone numbers .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder userAttributeUpdateSettings(UserAttributeUpdateSettingsType userAttributeUpdateSettings);
/**
*
* The settings for updates to user attributes. These settings include the property
* AttributesRequireVerificationBeforeUpdate
, a user-pool setting that tells Amazon Cognito how to
* handle changes to the value of your users' email address and phone number attributes. For more information,
* see Verifying updates to email addresses and phone numbers .
*
* This is a convenience method that creates an instance of the {@link UserAttributeUpdateSettingsType.Builder}
* avoiding the need to create one manually via {@link UserAttributeUpdateSettingsType#builder()}.
*
*
* When the {@link Consumer} completes, {@link UserAttributeUpdateSettingsType.Builder#build()} is called
* immediately and its result is passed to {@link #userAttributeUpdateSettings(UserAttributeUpdateSettingsType)}.
*
* @param userAttributeUpdateSettings
* a consumer that will call methods on {@link UserAttributeUpdateSettingsType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #userAttributeUpdateSettings(UserAttributeUpdateSettingsType)
*/
default Builder userAttributeUpdateSettings(Consumer userAttributeUpdateSettings) {
return userAttributeUpdateSettings(UserAttributeUpdateSettingsType.builder()
.applyMutation(userAttributeUpdateSettings).build());
}
/**
*
* The device-remembering configuration for a user pool. A null value indicates that you have deactivated device
* remembering in your user pool.
*
*
*
* When you provide a value for any DeviceConfiguration
field, you activate the Amazon Cognito
* device-remembering feature.
*
*
*
* @param deviceConfiguration
* The device-remembering configuration for a user pool. A null value indicates that you have deactivated
* device remembering in your user pool.
*
* When you provide a value for any DeviceConfiguration
field, you activate the Amazon
* Cognito device-remembering feature.
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder deviceConfiguration(DeviceConfigurationType deviceConfiguration);
/**
*
* The device-remembering configuration for a user pool. A null value indicates that you have deactivated device
* remembering in your user pool.
*
*
*
* When you provide a value for any DeviceConfiguration
field, you activate the Amazon Cognito
* device-remembering feature.
*
* This is a convenience method that creates an instance of the {@link DeviceConfigurationType.Builder}
* avoiding the need to create one manually via {@link DeviceConfigurationType#builder()}.
*
*
* When the {@link Consumer} completes, {@link DeviceConfigurationType.Builder#build()} is called immediately
* and its result is passed to {@link #deviceConfiguration(DeviceConfigurationType)}.
*
* @param deviceConfiguration
* a consumer that will call methods on {@link DeviceConfigurationType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #deviceConfiguration(DeviceConfigurationType)
*/
default Builder deviceConfiguration(Consumer deviceConfiguration) {
return deviceConfiguration(DeviceConfigurationType.builder().applyMutation(deviceConfiguration).build());
}
/**
*
* The email configuration of your user pool. The email configuration type sets your preferred sending method,
* Amazon Web Services Region, and sender for messages from your user pool.
*
*
* @param emailConfiguration
* The email configuration of your user pool. The email configuration type sets your preferred sending
* method, Amazon Web Services Region, and sender for messages from your user pool.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder emailConfiguration(EmailConfigurationType emailConfiguration);
/**
*
* The email configuration of your user pool. The email configuration type sets your preferred sending method,
* Amazon Web Services Region, and sender for messages from your user pool.
*
* This is a convenience method that creates an instance of the {@link EmailConfigurationType.Builder} avoiding
* the need to create one manually via {@link EmailConfigurationType#builder()}.
*
*
* When the {@link Consumer} completes, {@link EmailConfigurationType.Builder#build()} is called immediately and
* its result is passed to {@link #emailConfiguration(EmailConfigurationType)}.
*
* @param emailConfiguration
* a consumer that will call methods on {@link EmailConfigurationType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #emailConfiguration(EmailConfigurationType)
*/
default Builder emailConfiguration(Consumer emailConfiguration) {
return emailConfiguration(EmailConfigurationType.builder().applyMutation(emailConfiguration).build());
}
/**
*
* The SMS configuration with the settings that your Amazon Cognito user pool must use to send an SMS message
* from your Amazon Web Services account through Amazon Simple Notification Service. To send SMS messages with
* Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and
* Access Management (IAM) role in your Amazon Web Services account.
*
*
* @param smsConfiguration
* The SMS configuration with the settings that your Amazon Cognito user pool must use to send an SMS
* message from your Amazon Web Services account through Amazon Simple Notification Service. To send SMS
* messages with Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool
* uses an Identity and Access Management (IAM) role in your Amazon Web Services account.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder smsConfiguration(SmsConfigurationType smsConfiguration);
/**
*
* The SMS configuration with the settings that your Amazon Cognito user pool must use to send an SMS message
* from your Amazon Web Services account through Amazon Simple Notification Service. To send SMS messages with
* Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and
* Access Management (IAM) role in your Amazon Web Services account.
*
* This is a convenience method that creates an instance of the {@link SmsConfigurationType.Builder} avoiding
* the need to create one manually via {@link SmsConfigurationType#builder()}.
*
*
* When the {@link Consumer} completes, {@link SmsConfigurationType.Builder#build()} is called immediately and
* its result is passed to {@link #smsConfiguration(SmsConfigurationType)}.
*
* @param smsConfiguration
* a consumer that will call methods on {@link SmsConfigurationType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #smsConfiguration(SmsConfigurationType)
*/
default Builder smsConfiguration(Consumer smsConfiguration) {
return smsConfiguration(SmsConfigurationType.builder().applyMutation(smsConfiguration).build());
}
/**
*
* The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and
* manage user pools in different ways, such as by purpose, owner, environment, or other criteria.
*
*
* @param userPoolTags
* The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize
* and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder userPoolTags(Map userPoolTags);
/**
*
* The configuration for AdminCreateUser
requests.
*
*
* @param adminCreateUserConfig
* The configuration for AdminCreateUser
requests.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder adminCreateUserConfig(AdminCreateUserConfigType adminCreateUserConfig);
/**
*
* The configuration for AdminCreateUser
requests.
*
* This is a convenience method that creates an instance of the {@link AdminCreateUserConfigType.Builder}
* avoiding the need to create one manually via {@link AdminCreateUserConfigType#builder()}.
*
*
* When the {@link Consumer} completes, {@link AdminCreateUserConfigType.Builder#build()} is called immediately
* and its result is passed to {@link #adminCreateUserConfig(AdminCreateUserConfigType)}.
*
* @param adminCreateUserConfig
* a consumer that will call methods on {@link AdminCreateUserConfigType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #adminCreateUserConfig(AdminCreateUserConfigType)
*/
default Builder adminCreateUserConfig(Consumer adminCreateUserConfig) {
return adminCreateUserConfig(AdminCreateUserConfigType.builder().applyMutation(adminCreateUserConfig).build());
}
/**
*
* An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.
*
*
* @param schema
* An array of schema attributes for the new user pool. These attributes can be standard or custom
* attributes.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder schema(Collection schema);
/**
*
* An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.
*
*
* @param schema
* An array of schema attributes for the new user pool. These attributes can be standard or custom
* attributes.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder schema(SchemaAttributeType... schema);
/**
*
* An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.
*
* This is a convenience method that creates an instance of the
* {@link software.amazon.awssdk.services.cognitoidentityprovider.model.SchemaAttributeType.Builder} avoiding
* the need to create one manually via
* {@link software.amazon.awssdk.services.cognitoidentityprovider.model.SchemaAttributeType#builder()}.
*
*
* When the {@link Consumer} completes,
* {@link software.amazon.awssdk.services.cognitoidentityprovider.model.SchemaAttributeType.Builder#build()} is
* called immediately and its result is passed to {@link #schema(List)}.
*
* @param schema
* a consumer that will call methods on
* {@link software.amazon.awssdk.services.cognitoidentityprovider.model.SchemaAttributeType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #schema(java.util.Collection)
*/
Builder schema(Consumer... schema);
/**
*
* User pool add-ons. Contains settings for activation of advanced security features. To log user security
* information but take no action, set to AUDIT
. To configure automatic security responses to risky
* traffic to your user pool, set to ENFORCED
.
*
*
* For more information, see Adding advanced security to a user pool .
*
*
* @param userPoolAddOns
* User pool add-ons. Contains settings for activation of advanced security features. To log user
* security information but take no action, set to AUDIT
. To configure automatic security
* responses to risky traffic to your user pool, set to ENFORCED
.
*
* For more information, see Adding advanced security to a user pool .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder userPoolAddOns(UserPoolAddOnsType userPoolAddOns);
/**
*
* User pool add-ons. Contains settings for activation of advanced security features. To log user security
* information but take no action, set to AUDIT
. To configure automatic security responses to risky
* traffic to your user pool, set to ENFORCED
.
*
*
* For more information, see Adding advanced security to a user pool .
*
* This is a convenience method that creates an instance of the {@link UserPoolAddOnsType.Builder} avoiding the
* need to create one manually via {@link UserPoolAddOnsType#builder()}.
*
*
* When the {@link Consumer} completes, {@link UserPoolAddOnsType.Builder#build()} is called immediately and its
* result is passed to {@link #userPoolAddOns(UserPoolAddOnsType)}.
*
* @param userPoolAddOns
* a consumer that will call methods on {@link UserPoolAddOnsType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #userPoolAddOns(UserPoolAddOnsType)
*/
default Builder userPoolAddOns(Consumer userPoolAddOns) {
return userPoolAddOns(UserPoolAddOnsType.builder().applyMutation(userPoolAddOns).build());
}
/**
*
* Case sensitivity on the username input for the selected sign-in option. When case sensitivity is set to
* False
(case insensitive), users can sign in with any combination of capital and lowercase
* letters. For example, username
, USERNAME
, or UserName
, or for email,
* [email protected]
or [email protected]
. For most use cases, set case sensitivity to
* False
(case insensitive) as a best practice. When usernames and email addresses are case
* insensitive, Amazon Cognito treats any variation in case as the same user, and prevents a case variation from
* being assigned to the same attribute for a different user.
*
*
* This configuration is immutable after you set it. For more information, see UsernameConfigurationType .
*
*
* @param usernameConfiguration
* Case sensitivity on the username input for the selected sign-in option. When case sensitivity is set
* to False
(case insensitive), users can sign in with any combination of capital and
* lowercase letters. For example, username
, USERNAME
, or UserName
* , or for email, [email protected]
or [email protected]
. For most use cases,
* set case sensitivity to False
(case insensitive) as a best practice. When usernames and
* email addresses are case insensitive, Amazon Cognito treats any variation in case as the same user,
* and prevents a case variation from being assigned to the same attribute for a different user.
*
* This configuration is immutable after you set it. For more information, see UsernameConfigurationType .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder usernameConfiguration(UsernameConfigurationType usernameConfiguration);
/**
*
* Case sensitivity on the username input for the selected sign-in option. When case sensitivity is set to
* False
(case insensitive), users can sign in with any combination of capital and lowercase
* letters. For example, username
, USERNAME
, or UserName
, or for email,
* [email protected]
or [email protected]
. For most use cases, set case sensitivity to
* False
(case insensitive) as a best practice. When usernames and email addresses are case
* insensitive, Amazon Cognito treats any variation in case as the same user, and prevents a case variation from
* being assigned to the same attribute for a different user.
*
*
* This configuration is immutable after you set it. For more information, see UsernameConfigurationType .
*
* This is a convenience method that creates an instance of the {@link UsernameConfigurationType.Builder}
* avoiding the need to create one manually via {@link UsernameConfigurationType#builder()}.
*
*
* When the {@link Consumer} completes, {@link UsernameConfigurationType.Builder#build()} is called immediately
* and its result is passed to {@link #usernameConfiguration(UsernameConfigurationType)}.
*
* @param usernameConfiguration
* a consumer that will call methods on {@link UsernameConfigurationType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #usernameConfiguration(UsernameConfigurationType)
*/
default Builder usernameConfiguration(Consumer usernameConfiguration) {
return usernameConfiguration(UsernameConfigurationType.builder().applyMutation(usernameConfiguration).build());
}
/**
*
* The available verified method a user can use to recover their password when they call
* ForgotPassword
. You can use this setting to define a preferred method when a user has more than
* one method available. With this setting, SMS doesn't qualify for a valid password recovery mechanism if the
* user also has SMS multi-factor authentication (MFA) activated. In the absence of this setting, Amazon Cognito
* uses the legacy behavior to determine the recovery method where SMS is preferred through email.
*
*
* @param accountRecoverySetting
* The available verified method a user can use to recover their password when they call
* ForgotPassword
. You can use this setting to define a preferred method when a user has
* more than one method available. With this setting, SMS doesn't qualify for a valid password recovery
* mechanism if the user also has SMS multi-factor authentication (MFA) activated. In the absence of this
* setting, Amazon Cognito uses the legacy behavior to determine the recovery method where SMS is
* preferred through email.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder accountRecoverySetting(AccountRecoverySettingType accountRecoverySetting);
/**
*
* The available verified method a user can use to recover their password when they call
* ForgotPassword
. You can use this setting to define a preferred method when a user has more than
* one method available. With this setting, SMS doesn't qualify for a valid password recovery mechanism if the
* user also has SMS multi-factor authentication (MFA) activated. In the absence of this setting, Amazon Cognito
* uses the legacy behavior to determine the recovery method where SMS is preferred through email.
*
* This is a convenience method that creates an instance of the {@link AccountRecoverySettingType.Builder}
* avoiding the need to create one manually via {@link AccountRecoverySettingType#builder()}.
*
*
* When the {@link Consumer} completes, {@link AccountRecoverySettingType.Builder#build()} is called immediately
* and its result is passed to {@link #accountRecoverySetting(AccountRecoverySettingType)}.
*
* @param accountRecoverySetting
* a consumer that will call methods on {@link AccountRecoverySettingType.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #accountRecoverySetting(AccountRecoverySettingType)
*/
default Builder accountRecoverySetting(Consumer accountRecoverySetting) {
return accountRecoverySetting(AccountRecoverySettingType.builder().applyMutation(accountRecoverySetting).build());
}
@Override
Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration);
@Override
Builder overrideConfiguration(Consumer builderConsumer);
}
static final class BuilderImpl extends CognitoIdentityProviderRequest.BuilderImpl implements Builder {
private String poolName;
private UserPoolPolicyType policies;
private String deletionProtection;
private LambdaConfigType lambdaConfig;
private List autoVerifiedAttributes = DefaultSdkAutoConstructList.getInstance();
private List aliasAttributes = DefaultSdkAutoConstructList.getInstance();
private List usernameAttributes = DefaultSdkAutoConstructList.getInstance();
private String smsVerificationMessage;
private String emailVerificationMessage;
private String emailVerificationSubject;
private VerificationMessageTemplateType verificationMessageTemplate;
private String smsAuthenticationMessage;
private String mfaConfiguration;
private UserAttributeUpdateSettingsType userAttributeUpdateSettings;
private DeviceConfigurationType deviceConfiguration;
private EmailConfigurationType emailConfiguration;
private SmsConfigurationType smsConfiguration;
private Map userPoolTags = DefaultSdkAutoConstructMap.getInstance();
private AdminCreateUserConfigType adminCreateUserConfig;
private List schema = DefaultSdkAutoConstructList.getInstance();
private UserPoolAddOnsType userPoolAddOns;
private UsernameConfigurationType usernameConfiguration;
private AccountRecoverySettingType accountRecoverySetting;
private BuilderImpl() {
}
private BuilderImpl(CreateUserPoolRequest model) {
super(model);
poolName(model.poolName);
policies(model.policies);
deletionProtection(model.deletionProtection);
lambdaConfig(model.lambdaConfig);
autoVerifiedAttributesWithStrings(model.autoVerifiedAttributes);
aliasAttributesWithStrings(model.aliasAttributes);
usernameAttributesWithStrings(model.usernameAttributes);
smsVerificationMessage(model.smsVerificationMessage);
emailVerificationMessage(model.emailVerificationMessage);
emailVerificationSubject(model.emailVerificationSubject);
verificationMessageTemplate(model.verificationMessageTemplate);
smsAuthenticationMessage(model.smsAuthenticationMessage);
mfaConfiguration(model.mfaConfiguration);
userAttributeUpdateSettings(model.userAttributeUpdateSettings);
deviceConfiguration(model.deviceConfiguration);
emailConfiguration(model.emailConfiguration);
smsConfiguration(model.smsConfiguration);
userPoolTags(model.userPoolTags);
adminCreateUserConfig(model.adminCreateUserConfig);
schema(model.schema);
userPoolAddOns(model.userPoolAddOns);
usernameConfiguration(model.usernameConfiguration);
accountRecoverySetting(model.accountRecoverySetting);
}
public final String getPoolName() {
return poolName;
}
public final void setPoolName(String poolName) {
this.poolName = poolName;
}
@Override
public final Builder poolName(String poolName) {
this.poolName = poolName;
return this;
}
public final UserPoolPolicyType.Builder getPolicies() {
return policies != null ? policies.toBuilder() : null;
}
public final void setPolicies(UserPoolPolicyType.BuilderImpl policies) {
this.policies = policies != null ? policies.build() : null;
}
@Override
public final Builder policies(UserPoolPolicyType policies) {
this.policies = policies;
return this;
}
public final String getDeletionProtection() {
return deletionProtection;
}
public final void setDeletionProtection(String deletionProtection) {
this.deletionProtection = deletionProtection;
}
@Override
public final Builder deletionProtection(String deletionProtection) {
this.deletionProtection = deletionProtection;
return this;
}
@Override
public final Builder deletionProtection(DeletionProtectionType deletionProtection) {
this.deletionProtection(deletionProtection == null ? null : deletionProtection.toString());
return this;
}
public final LambdaConfigType.Builder getLambdaConfig() {
return lambdaConfig != null ? lambdaConfig.toBuilder() : null;
}
public final void setLambdaConfig(LambdaConfigType.BuilderImpl lambdaConfig) {
this.lambdaConfig = lambdaConfig != null ? lambdaConfig.build() : null;
}
@Override
public final Builder lambdaConfig(LambdaConfigType lambdaConfig) {
this.lambdaConfig = lambdaConfig;
return this;
}
public final Collection getAutoVerifiedAttributes() {
if (autoVerifiedAttributes instanceof SdkAutoConstructList) {
return null;
}
return autoVerifiedAttributes;
}
public final void setAutoVerifiedAttributes(Collection autoVerifiedAttributes) {
this.autoVerifiedAttributes = VerifiedAttributesListTypeCopier.copy(autoVerifiedAttributes);
}
@Override
public final Builder autoVerifiedAttributesWithStrings(Collection autoVerifiedAttributes) {
this.autoVerifiedAttributes = VerifiedAttributesListTypeCopier.copy(autoVerifiedAttributes);
return this;
}
@Override
@SafeVarargs
public final Builder autoVerifiedAttributesWithStrings(String... autoVerifiedAttributes) {
autoVerifiedAttributesWithStrings(Arrays.asList(autoVerifiedAttributes));
return this;
}
@Override
public final Builder autoVerifiedAttributes(Collection autoVerifiedAttributes) {
this.autoVerifiedAttributes = VerifiedAttributesListTypeCopier.copyEnumToString(autoVerifiedAttributes);
return this;
}
@Override
@SafeVarargs
public final Builder autoVerifiedAttributes(VerifiedAttributeType... autoVerifiedAttributes) {
autoVerifiedAttributes(Arrays.asList(autoVerifiedAttributes));
return this;
}
public final Collection getAliasAttributes() {
if (aliasAttributes instanceof SdkAutoConstructList) {
return null;
}
return aliasAttributes;
}
public final void setAliasAttributes(Collection aliasAttributes) {
this.aliasAttributes = AliasAttributesListTypeCopier.copy(aliasAttributes);
}
@Override
public final Builder aliasAttributesWithStrings(Collection aliasAttributes) {
this.aliasAttributes = AliasAttributesListTypeCopier.copy(aliasAttributes);
return this;
}
@Override
@SafeVarargs
public final Builder aliasAttributesWithStrings(String... aliasAttributes) {
aliasAttributesWithStrings(Arrays.asList(aliasAttributes));
return this;
}
@Override
public final Builder aliasAttributes(Collection aliasAttributes) {
this.aliasAttributes = AliasAttributesListTypeCopier.copyEnumToString(aliasAttributes);
return this;
}
@Override
@SafeVarargs
public final Builder aliasAttributes(AliasAttributeType... aliasAttributes) {
aliasAttributes(Arrays.asList(aliasAttributes));
return this;
}
public final Collection getUsernameAttributes() {
if (usernameAttributes instanceof SdkAutoConstructList) {
return null;
}
return usernameAttributes;
}
public final void setUsernameAttributes(Collection usernameAttributes) {
this.usernameAttributes = UsernameAttributesListTypeCopier.copy(usernameAttributes);
}
@Override
public final Builder usernameAttributesWithStrings(Collection usernameAttributes) {
this.usernameAttributes = UsernameAttributesListTypeCopier.copy(usernameAttributes);
return this;
}
@Override
@SafeVarargs
public final Builder usernameAttributesWithStrings(String... usernameAttributes) {
usernameAttributesWithStrings(Arrays.asList(usernameAttributes));
return this;
}
@Override
public final Builder usernameAttributes(Collection usernameAttributes) {
this.usernameAttributes = UsernameAttributesListTypeCopier.copyEnumToString(usernameAttributes);
return this;
}
@Override
@SafeVarargs
public final Builder usernameAttributes(UsernameAttributeType... usernameAttributes) {
usernameAttributes(Arrays.asList(usernameAttributes));
return this;
}
public final String getSmsVerificationMessage() {
return smsVerificationMessage;
}
public final void setSmsVerificationMessage(String smsVerificationMessage) {
this.smsVerificationMessage = smsVerificationMessage;
}
@Override
public final Builder smsVerificationMessage(String smsVerificationMessage) {
this.smsVerificationMessage = smsVerificationMessage;
return this;
}
public final String getEmailVerificationMessage() {
return emailVerificationMessage;
}
public final void setEmailVerificationMessage(String emailVerificationMessage) {
this.emailVerificationMessage = emailVerificationMessage;
}
@Override
public final Builder emailVerificationMessage(String emailVerificationMessage) {
this.emailVerificationMessage = emailVerificationMessage;
return this;
}
public final String getEmailVerificationSubject() {
return emailVerificationSubject;
}
public final void setEmailVerificationSubject(String emailVerificationSubject) {
this.emailVerificationSubject = emailVerificationSubject;
}
@Override
public final Builder emailVerificationSubject(String emailVerificationSubject) {
this.emailVerificationSubject = emailVerificationSubject;
return this;
}
public final VerificationMessageTemplateType.Builder getVerificationMessageTemplate() {
return verificationMessageTemplate != null ? verificationMessageTemplate.toBuilder() : null;
}
public final void setVerificationMessageTemplate(VerificationMessageTemplateType.BuilderImpl verificationMessageTemplate) {
this.verificationMessageTemplate = verificationMessageTemplate != null ? verificationMessageTemplate.build() : null;
}
@Override
public final Builder verificationMessageTemplate(VerificationMessageTemplateType verificationMessageTemplate) {
this.verificationMessageTemplate = verificationMessageTemplate;
return this;
}
public final String getSmsAuthenticationMessage() {
return smsAuthenticationMessage;
}
public final void setSmsAuthenticationMessage(String smsAuthenticationMessage) {
this.smsAuthenticationMessage = smsAuthenticationMessage;
}
@Override
public final Builder smsAuthenticationMessage(String smsAuthenticationMessage) {
this.smsAuthenticationMessage = smsAuthenticationMessage;
return this;
}
public final String getMfaConfiguration() {
return mfaConfiguration;
}
public final void setMfaConfiguration(String mfaConfiguration) {
this.mfaConfiguration = mfaConfiguration;
}
@Override
public final Builder mfaConfiguration(String mfaConfiguration) {
this.mfaConfiguration = mfaConfiguration;
return this;
}
@Override
public final Builder mfaConfiguration(UserPoolMfaType mfaConfiguration) {
this.mfaConfiguration(mfaConfiguration == null ? null : mfaConfiguration.toString());
return this;
}
public final UserAttributeUpdateSettingsType.Builder getUserAttributeUpdateSettings() {
return userAttributeUpdateSettings != null ? userAttributeUpdateSettings.toBuilder() : null;
}
public final void setUserAttributeUpdateSettings(UserAttributeUpdateSettingsType.BuilderImpl userAttributeUpdateSettings) {
this.userAttributeUpdateSettings = userAttributeUpdateSettings != null ? userAttributeUpdateSettings.build() : null;
}
@Override
public final Builder userAttributeUpdateSettings(UserAttributeUpdateSettingsType userAttributeUpdateSettings) {
this.userAttributeUpdateSettings = userAttributeUpdateSettings;
return this;
}
public final DeviceConfigurationType.Builder getDeviceConfiguration() {
return deviceConfiguration != null ? deviceConfiguration.toBuilder() : null;
}
public final void setDeviceConfiguration(DeviceConfigurationType.BuilderImpl deviceConfiguration) {
this.deviceConfiguration = deviceConfiguration != null ? deviceConfiguration.build() : null;
}
@Override
public final Builder deviceConfiguration(DeviceConfigurationType deviceConfiguration) {
this.deviceConfiguration = deviceConfiguration;
return this;
}
public final EmailConfigurationType.Builder getEmailConfiguration() {
return emailConfiguration != null ? emailConfiguration.toBuilder() : null;
}
public final void setEmailConfiguration(EmailConfigurationType.BuilderImpl emailConfiguration) {
this.emailConfiguration = emailConfiguration != null ? emailConfiguration.build() : null;
}
@Override
public final Builder emailConfiguration(EmailConfigurationType emailConfiguration) {
this.emailConfiguration = emailConfiguration;
return this;
}
public final SmsConfigurationType.Builder getSmsConfiguration() {
return smsConfiguration != null ? smsConfiguration.toBuilder() : null;
}
public final void setSmsConfiguration(SmsConfigurationType.BuilderImpl smsConfiguration) {
this.smsConfiguration = smsConfiguration != null ? smsConfiguration.build() : null;
}
@Override
public final Builder smsConfiguration(SmsConfigurationType smsConfiguration) {
this.smsConfiguration = smsConfiguration;
return this;
}
public final Map getUserPoolTags() {
if (userPoolTags instanceof SdkAutoConstructMap) {
return null;
}
return userPoolTags;
}
public final void setUserPoolTags(Map userPoolTags) {
this.userPoolTags = UserPoolTagsTypeCopier.copy(userPoolTags);
}
@Override
public final Builder userPoolTags(Map userPoolTags) {
this.userPoolTags = UserPoolTagsTypeCopier.copy(userPoolTags);
return this;
}
public final AdminCreateUserConfigType.Builder getAdminCreateUserConfig() {
return adminCreateUserConfig != null ? adminCreateUserConfig.toBuilder() : null;
}
public final void setAdminCreateUserConfig(AdminCreateUserConfigType.BuilderImpl adminCreateUserConfig) {
this.adminCreateUserConfig = adminCreateUserConfig != null ? adminCreateUserConfig.build() : null;
}
@Override
public final Builder adminCreateUserConfig(AdminCreateUserConfigType adminCreateUserConfig) {
this.adminCreateUserConfig = adminCreateUserConfig;
return this;
}
public final List getSchema() {
List result = SchemaAttributesListTypeCopier.copyToBuilder(this.schema);
if (result instanceof SdkAutoConstructList) {
return null;
}
return result;
}
public final void setSchema(Collection schema) {
this.schema = SchemaAttributesListTypeCopier.copyFromBuilder(schema);
}
@Override
public final Builder schema(Collection schema) {
this.schema = SchemaAttributesListTypeCopier.copy(schema);
return this;
}
@Override
@SafeVarargs
public final Builder schema(SchemaAttributeType... schema) {
schema(Arrays.asList(schema));
return this;
}
@Override
@SafeVarargs
public final Builder schema(Consumer... schema) {
schema(Stream.of(schema).map(c -> SchemaAttributeType.builder().applyMutation(c).build())
.collect(Collectors.toList()));
return this;
}
public final UserPoolAddOnsType.Builder getUserPoolAddOns() {
return userPoolAddOns != null ? userPoolAddOns.toBuilder() : null;
}
public final void setUserPoolAddOns(UserPoolAddOnsType.BuilderImpl userPoolAddOns) {
this.userPoolAddOns = userPoolAddOns != null ? userPoolAddOns.build() : null;
}
@Override
public final Builder userPoolAddOns(UserPoolAddOnsType userPoolAddOns) {
this.userPoolAddOns = userPoolAddOns;
return this;
}
public final UsernameConfigurationType.Builder getUsernameConfiguration() {
return usernameConfiguration != null ? usernameConfiguration.toBuilder() : null;
}
public final void setUsernameConfiguration(UsernameConfigurationType.BuilderImpl usernameConfiguration) {
this.usernameConfiguration = usernameConfiguration != null ? usernameConfiguration.build() : null;
}
@Override
public final Builder usernameConfiguration(UsernameConfigurationType usernameConfiguration) {
this.usernameConfiguration = usernameConfiguration;
return this;
}
public final AccountRecoverySettingType.Builder getAccountRecoverySetting() {
return accountRecoverySetting != null ? accountRecoverySetting.toBuilder() : null;
}
public final void setAccountRecoverySetting(AccountRecoverySettingType.BuilderImpl accountRecoverySetting) {
this.accountRecoverySetting = accountRecoverySetting != null ? accountRecoverySetting.build() : null;
}
@Override
public final Builder accountRecoverySetting(AccountRecoverySettingType accountRecoverySetting) {
this.accountRecoverySetting = accountRecoverySetting;
return this;
}
@Override
public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) {
super.overrideConfiguration(overrideConfiguration);
return this;
}
@Override
public Builder overrideConfiguration(Consumer builderConsumer) {
super.overrideConfiguration(builderConsumer);
return this;
}
@Override
public CreateUserPoolRequest build() {
return new CreateUserPoolRequest(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
@Override
public Map> sdkFieldNameToField() {
return SDK_NAME_TO_FIELD;
}
}
}