All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.cognitoidentityprovider.model.SignUpRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Cognito Identity Provider Service module holds the client classes that are used for communicating with Amazon Cognito Identity Provider Service.

There is a newer version: 2.30.1
Show newest version
/*
 * 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.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 register a user. *

*/ @Generated("software.amazon.awssdk:codegen") public final class SignUpRequest extends CognitoIdentityProviderRequest implements ToCopyableBuilder { private static final SdkField CLIENT_ID_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("ClientId").getter(getter(SignUpRequest::clientId)).setter(setter(Builder::clientId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClientId").build()).build(); private static final SdkField SECRET_HASH_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("SecretHash").getter(getter(SignUpRequest::secretHash)).setter(setter(Builder::secretHash)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SecretHash").build()).build(); private static final SdkField USERNAME_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("Username").getter(getter(SignUpRequest::username)).setter(setter(Builder::username)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Username").build()).build(); private static final SdkField PASSWORD_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("Password").getter(getter(SignUpRequest::password)).setter(setter(Builder::password)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Password").build()).build(); private static final SdkField> USER_ATTRIBUTES_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("UserAttributes") .getter(getter(SignUpRequest::userAttributes)) .setter(setter(Builder::userAttributes)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UserAttributes").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.SDK_POJO) .constructor(AttributeType::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final SdkField> VALIDATION_DATA_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("ValidationData") .getter(getter(SignUpRequest::validationData)) .setter(setter(Builder::validationData)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ValidationData").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.SDK_POJO) .constructor(AttributeType::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final SdkField ANALYTICS_METADATA_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("AnalyticsMetadata") .getter(getter(SignUpRequest::analyticsMetadata)).setter(setter(Builder::analyticsMetadata)) .constructor(AnalyticsMetadataType::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AnalyticsMetadata").build()).build(); private static final SdkField USER_CONTEXT_DATA_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("UserContextData") .getter(getter(SignUpRequest::userContextData)).setter(setter(Builder::userContextData)) .constructor(UserContextDataType::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UserContextData").build()).build(); private static final SdkField> CLIENT_METADATA_FIELD = SdkField .> builder(MarshallingType.MAP) .memberName("ClientMetadata") .getter(getter(SignUpRequest::clientMetadata)) .setter(setter(Builder::clientMetadata)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClientMetadata").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 List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CLIENT_ID_FIELD, SECRET_HASH_FIELD, USERNAME_FIELD, PASSWORD_FIELD, USER_ATTRIBUTES_FIELD, VALIDATION_DATA_FIELD, ANALYTICS_METADATA_FIELD, USER_CONTEXT_DATA_FIELD, CLIENT_METADATA_FIELD)); private final String clientId; private final String secretHash; private final String username; private final String password; private final List userAttributes; private final List validationData; private final AnalyticsMetadataType analyticsMetadata; private final UserContextDataType userContextData; private final Map clientMetadata; private SignUpRequest(BuilderImpl builder) { super(builder); this.clientId = builder.clientId; this.secretHash = builder.secretHash; this.username = builder.username; this.password = builder.password; this.userAttributes = builder.userAttributes; this.validationData = builder.validationData; this.analyticsMetadata = builder.analyticsMetadata; this.userContextData = builder.userContextData; this.clientMetadata = builder.clientMetadata; } /** *

* The ID of the client associated with the user pool. *

* * @return The ID of the client associated with the user pool. */ public final String clientId() { return clientId; } /** *

* A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and * username plus the client ID in the message. *

* * @return A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and * username plus the client ID in the message. */ public final String secretHash() { return secretHash; } /** *

* The user name of the user you want to register. *

* * @return The user name of the user you want to register. */ public final String username() { return username; } /** *

* The password of the user you want to register. *

* * @return The password of the user you want to register. */ public final String password() { return password; } /** * For responses, this returns true if the service returned a value for the UserAttributes 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 hasUserAttributes() { return userAttributes != null && !(userAttributes instanceof SdkAutoConstructList); } /** *

* An array of name-value pairs representing user attributes. *

*

* For custom attributes, you must prepend the custom: prefix to the attribute name. *

*

* 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 #hasUserAttributes} method. *

* * @return An array of name-value pairs representing user attributes.

*

* For custom attributes, you must prepend the custom: prefix to the attribute name. */ public final List userAttributes() { return userAttributes; } /** * For responses, this returns true if the service returned a value for the ValidationData 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 hasValidationData() { return validationData != null && !(validationData instanceof SdkAutoConstructList); } /** *

* The validation data in the request to register a user. *

*

* 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 #hasValidationData} method. *

* * @return The validation data in the request to register a user. */ public final List validationData() { return validationData; } /** *

* The Amazon Pinpoint analytics metadata that contributes to your metrics for SignUp calls. *

* * @return The Amazon Pinpoint analytics metadata that contributes to your metrics for SignUp calls. */ public final AnalyticsMetadataType analyticsMetadata() { return analyticsMetadata; } /** *

* Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito * advanced security evaluates the risk of an authentication event based on the context that your app generates and * passes to Amazon Cognito when it makes API requests. *

* * @return Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon * Cognito advanced security evaluates the risk of an authentication event based on the context that your * app generates and passes to Amazon Cognito when it makes API requests. */ public final UserContextDataType userContextData() { return userContextData; } /** * For responses, this returns true if the service returned a value for the ClientMetadata 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 hasClientMetadata() { return clientMetadata != null && !(clientMetadata instanceof SdkAutoConstructMap); } /** *

* A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers. *

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the SignUp API * action, Amazon Cognito invokes any functions that are assigned to the following triggers: pre sign-up, * custom message, and post confirmation. When Amazon Cognito invokes any of these functions, it * passes a JSON payload, which the function receives as input. This payload contains a clientMetadata * attribute, which provides the data that you assigned to the ClientMetadata parameter in your SignUp request. In * your function code in Lambda, you can process the clientMetadata value to enhance your workflow for * your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user pool * to support custom workflows. If your user pool configuration doesn't include triggers, the ClientMetadata * parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*
*

* 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 #hasClientMetadata} method. *

* * @return A map of custom key-value pairs that you can provide as input for any custom workflows that this action * triggers.

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the SignUp * API action, Amazon Cognito invokes any functions that are assigned to the following triggers: pre * sign-up, custom message, and post confirmation. When Amazon Cognito invokes any of * these functions, it passes a JSON payload, which the function receives as input. This payload contains a * clientMetadata attribute, which provides the data that you assigned to the ClientMetadata * parameter in your SignUp request. In your function code in Lambda, you can process the * clientMetadata value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a * user pool to support custom workflows. If your user pool configuration doesn't include triggers, the * ClientMetadata parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*/ public final Map clientMetadata() { return clientMetadata; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(clientId()); hashCode = 31 * hashCode + Objects.hashCode(secretHash()); hashCode = 31 * hashCode + Objects.hashCode(username()); hashCode = 31 * hashCode + Objects.hashCode(password()); hashCode = 31 * hashCode + Objects.hashCode(hasUserAttributes() ? userAttributes() : null); hashCode = 31 * hashCode + Objects.hashCode(hasValidationData() ? validationData() : null); hashCode = 31 * hashCode + Objects.hashCode(analyticsMetadata()); hashCode = 31 * hashCode + Objects.hashCode(userContextData()); hashCode = 31 * hashCode + Objects.hashCode(hasClientMetadata() ? clientMetadata() : null); 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 SignUpRequest)) { return false; } SignUpRequest other = (SignUpRequest) obj; return Objects.equals(clientId(), other.clientId()) && Objects.equals(secretHash(), other.secretHash()) && Objects.equals(username(), other.username()) && Objects.equals(password(), other.password()) && hasUserAttributes() == other.hasUserAttributes() && Objects.equals(userAttributes(), other.userAttributes()) && hasValidationData() == other.hasValidationData() && Objects.equals(validationData(), other.validationData()) && Objects.equals(analyticsMetadata(), other.analyticsMetadata()) && Objects.equals(userContextData(), other.userContextData()) && hasClientMetadata() == other.hasClientMetadata() && Objects.equals(clientMetadata(), other.clientMetadata()); } /** * 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("SignUpRequest").add("ClientId", clientId() == null ? null : "*** Sensitive Data Redacted ***") .add("SecretHash", secretHash() == null ? null : "*** Sensitive Data Redacted ***") .add("Username", username() == null ? null : "*** Sensitive Data Redacted ***") .add("Password", password() == null ? null : "*** Sensitive Data Redacted ***") .add("UserAttributes", hasUserAttributes() ? userAttributes() : null) .add("ValidationData", hasValidationData() ? validationData() : null) .add("AnalyticsMetadata", analyticsMetadata()).add("UserContextData", userContextData()) .add("ClientMetadata", hasClientMetadata() ? clientMetadata() : null).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "ClientId": return Optional.ofNullable(clazz.cast(clientId())); case "SecretHash": return Optional.ofNullable(clazz.cast(secretHash())); case "Username": return Optional.ofNullable(clazz.cast(username())); case "Password": return Optional.ofNullable(clazz.cast(password())); case "UserAttributes": return Optional.ofNullable(clazz.cast(userAttributes())); case "ValidationData": return Optional.ofNullable(clazz.cast(validationData())); case "AnalyticsMetadata": return Optional.ofNullable(clazz.cast(analyticsMetadata())); case "UserContextData": return Optional.ofNullable(clazz.cast(userContextData())); case "ClientMetadata": return Optional.ofNullable(clazz.cast(clientMetadata())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((SignUpRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends CognitoIdentityProviderRequest.Builder, SdkPojo, CopyableBuilder { /** *

* The ID of the client associated with the user pool. *

* * @param clientId * The ID of the client associated with the user pool. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clientId(String clientId); /** *

* A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and * username plus the client ID in the message. *

* * @param secretHash * A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client * and username plus the client ID in the message. * @return Returns a reference to this object so that method calls can be chained together. */ Builder secretHash(String secretHash); /** *

* The user name of the user you want to register. *

* * @param username * The user name of the user you want to register. * @return Returns a reference to this object so that method calls can be chained together. */ Builder username(String username); /** *

* The password of the user you want to register. *

* * @param password * The password of the user you want to register. * @return Returns a reference to this object so that method calls can be chained together. */ Builder password(String password); /** *

* An array of name-value pairs representing user attributes. *

*

* For custom attributes, you must prepend the custom: prefix to the attribute name. *

* * @param userAttributes * An array of name-value pairs representing user attributes.

*

* For custom attributes, you must prepend the custom: prefix to the attribute name. * @return Returns a reference to this object so that method calls can be chained together. */ Builder userAttributes(Collection userAttributes); /** *

* An array of name-value pairs representing user attributes. *

*

* For custom attributes, you must prepend the custom: prefix to the attribute name. *

* * @param userAttributes * An array of name-value pairs representing user attributes.

*

* For custom attributes, you must prepend the custom: prefix to the attribute name. * @return Returns a reference to this object so that method calls can be chained together. */ Builder userAttributes(AttributeType... userAttributes); /** *

* An array of name-value pairs representing user attributes. *

*

* For custom attributes, you must prepend the custom: prefix to the attribute name. *

* This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType.Builder} avoiding the need * to create one manually via * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType#builder()}. * *

* When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType.Builder#build()} is called * immediately and its result is passed to {@link #userAttributes(List)}. * * @param userAttributes * a consumer that will call methods on * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #userAttributes(java.util.Collection) */ Builder userAttributes(Consumer... userAttributes); /** *

* The validation data in the request to register a user. *

* * @param validationData * The validation data in the request to register a user. * @return Returns a reference to this object so that method calls can be chained together. */ Builder validationData(Collection validationData); /** *

* The validation data in the request to register a user. *

* * @param validationData * The validation data in the request to register a user. * @return Returns a reference to this object so that method calls can be chained together. */ Builder validationData(AttributeType... validationData); /** *

* The validation data in the request to register a user. *

* This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType.Builder} avoiding the need * to create one manually via * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType#builder()}. * *

* When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType.Builder#build()} is called * immediately and its result is passed to {@link #validationData(List)}. * * @param validationData * a consumer that will call methods on * {@link software.amazon.awssdk.services.cognitoidentityprovider.model.AttributeType.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #validationData(java.util.Collection) */ Builder validationData(Consumer... validationData); /** *

* The Amazon Pinpoint analytics metadata that contributes to your metrics for SignUp calls. *

* * @param analyticsMetadata * The Amazon Pinpoint analytics metadata that contributes to your metrics for SignUp calls. * @return Returns a reference to this object so that method calls can be chained together. */ Builder analyticsMetadata(AnalyticsMetadataType analyticsMetadata); /** *

* The Amazon Pinpoint analytics metadata that contributes to your metrics for SignUp calls. *

* This is a convenience method that creates an instance of the {@link AnalyticsMetadataType.Builder} avoiding * the need to create one manually via {@link AnalyticsMetadataType#builder()}. * *

* When the {@link Consumer} completes, {@link AnalyticsMetadataType.Builder#build()} is called immediately and * its result is passed to {@link #analyticsMetadata(AnalyticsMetadataType)}. * * @param analyticsMetadata * a consumer that will call methods on {@link AnalyticsMetadataType.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #analyticsMetadata(AnalyticsMetadataType) */ default Builder analyticsMetadata(Consumer analyticsMetadata) { return analyticsMetadata(AnalyticsMetadataType.builder().applyMutation(analyticsMetadata).build()); } /** *

* Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon * Cognito advanced security evaluates the risk of an authentication event based on the context that your app * generates and passes to Amazon Cognito when it makes API requests. *

* * @param userContextData * Contextual data about your user session, such as the device fingerprint, IP address, or location. * Amazon Cognito advanced security evaluates the risk of an authentication event based on the context * that your app generates and passes to Amazon Cognito when it makes API requests. * @return Returns a reference to this object so that method calls can be chained together. */ Builder userContextData(UserContextDataType userContextData); /** *

* Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon * Cognito advanced security evaluates the risk of an authentication event based on the context that your app * generates and passes to Amazon Cognito when it makes API requests. *

* This is a convenience method that creates an instance of the {@link UserContextDataType.Builder} avoiding the * need to create one manually via {@link UserContextDataType#builder()}. * *

* When the {@link Consumer} completes, {@link UserContextDataType.Builder#build()} is called immediately and * its result is passed to {@link #userContextData(UserContextDataType)}. * * @param userContextData * a consumer that will call methods on {@link UserContextDataType.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #userContextData(UserContextDataType) */ default Builder userContextData(Consumer userContextData) { return userContextData(UserContextDataType.builder().applyMutation(userContextData).build()); } /** *

* A map of custom key-value pairs that you can provide as input for any custom workflows that this action * triggers. *

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the SignUp API * action, Amazon Cognito invokes any functions that are assigned to the following triggers: pre sign-up, * custom message, and post confirmation. When Amazon Cognito invokes any of these functions, it * passes a JSON payload, which the function receives as input. This payload contains a * clientMetadata attribute, which provides the data that you assigned to the ClientMetadata * parameter in your SignUp request. In your function code in Lambda, you can process the * clientMetadata value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a user * pool to support custom workflows. If your user pool configuration doesn't include triggers, the * ClientMetadata parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
*
* * @param clientMetadata * A map of custom key-value pairs that you can provide as input for any custom workflows that this * action triggers.

*

* You create custom workflows by assigning Lambda functions to user pool triggers. When you use the * SignUp API action, Amazon Cognito invokes any functions that are assigned to the following triggers: * pre sign-up, custom message, and post confirmation. When Amazon Cognito invokes * any of these functions, it passes a JSON payload, which the function receives as input. This payload * contains a clientMetadata attribute, which provides the data that you assigned to the * ClientMetadata parameter in your SignUp request. In your function code in Lambda, you can process the * clientMetadata value to enhance your workflow for your specific needs. *

*

* For more information, see Customizing user pool Workflows with Lambda Triggers in the Amazon Cognito Developer * Guide. *

* *

* When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: *

*
    *
  • *

    * Store the ClientMetadata value. This data is available only to Lambda triggers that are assigned to a * user pool to support custom workflows. If your user pool configuration doesn't include triggers, the * ClientMetadata parameter serves no purpose. *

    *
  • *
  • *

    * Validate the ClientMetadata value. *

    *
  • *
  • *

    * Encrypt the ClientMetadata value. Don't use Amazon Cognito to provide sensitive information. *

    *
  • *
* @return Returns a reference to this object so that method calls can be chained together. */ Builder clientMetadata(Map clientMetadata); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends CognitoIdentityProviderRequest.BuilderImpl implements Builder { private String clientId; private String secretHash; private String username; private String password; private List userAttributes = DefaultSdkAutoConstructList.getInstance(); private List validationData = DefaultSdkAutoConstructList.getInstance(); private AnalyticsMetadataType analyticsMetadata; private UserContextDataType userContextData; private Map clientMetadata = DefaultSdkAutoConstructMap.getInstance(); private BuilderImpl() { } private BuilderImpl(SignUpRequest model) { super(model); clientId(model.clientId); secretHash(model.secretHash); username(model.username); password(model.password); userAttributes(model.userAttributes); validationData(model.validationData); analyticsMetadata(model.analyticsMetadata); userContextData(model.userContextData); clientMetadata(model.clientMetadata); } public final String getClientId() { return clientId; } public final void setClientId(String clientId) { this.clientId = clientId; } @Override public final Builder clientId(String clientId) { this.clientId = clientId; return this; } public final String getSecretHash() { return secretHash; } public final void setSecretHash(String secretHash) { this.secretHash = secretHash; } @Override public final Builder secretHash(String secretHash) { this.secretHash = secretHash; return this; } public final String getUsername() { return username; } public final void setUsername(String username) { this.username = username; } @Override public final Builder username(String username) { this.username = username; return this; } public final String getPassword() { return password; } public final void setPassword(String password) { this.password = password; } @Override public final Builder password(String password) { this.password = password; return this; } public final List getUserAttributes() { List result = AttributeListTypeCopier.copyToBuilder(this.userAttributes); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setUserAttributes(Collection userAttributes) { this.userAttributes = AttributeListTypeCopier.copyFromBuilder(userAttributes); } @Override public final Builder userAttributes(Collection userAttributes) { this.userAttributes = AttributeListTypeCopier.copy(userAttributes); return this; } @Override @SafeVarargs public final Builder userAttributes(AttributeType... userAttributes) { userAttributes(Arrays.asList(userAttributes)); return this; } @Override @SafeVarargs public final Builder userAttributes(Consumer... userAttributes) { userAttributes(Stream.of(userAttributes).map(c -> AttributeType.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final List getValidationData() { List result = AttributeListTypeCopier.copyToBuilder(this.validationData); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setValidationData(Collection validationData) { this.validationData = AttributeListTypeCopier.copyFromBuilder(validationData); } @Override public final Builder validationData(Collection validationData) { this.validationData = AttributeListTypeCopier.copy(validationData); return this; } @Override @SafeVarargs public final Builder validationData(AttributeType... validationData) { validationData(Arrays.asList(validationData)); return this; } @Override @SafeVarargs public final Builder validationData(Consumer... validationData) { validationData(Stream.of(validationData).map(c -> AttributeType.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final AnalyticsMetadataType.Builder getAnalyticsMetadata() { return analyticsMetadata != null ? analyticsMetadata.toBuilder() : null; } public final void setAnalyticsMetadata(AnalyticsMetadataType.BuilderImpl analyticsMetadata) { this.analyticsMetadata = analyticsMetadata != null ? analyticsMetadata.build() : null; } @Override public final Builder analyticsMetadata(AnalyticsMetadataType analyticsMetadata) { this.analyticsMetadata = analyticsMetadata; return this; } public final UserContextDataType.Builder getUserContextData() { return userContextData != null ? userContextData.toBuilder() : null; } public final void setUserContextData(UserContextDataType.BuilderImpl userContextData) { this.userContextData = userContextData != null ? userContextData.build() : null; } @Override public final Builder userContextData(UserContextDataType userContextData) { this.userContextData = userContextData; return this; } public final Map getClientMetadata() { if (clientMetadata instanceof SdkAutoConstructMap) { return null; } return clientMetadata; } public final void setClientMetadata(Map clientMetadata) { this.clientMetadata = ClientMetadataTypeCopier.copy(clientMetadata); } @Override public final Builder clientMetadata(Map clientMetadata) { this.clientMetadata = ClientMetadataTypeCopier.copy(clientMetadata); 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 SignUpRequest build() { return new SignUpRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy