import { AttributeTypeProps } from './userpooluser/AttributeTypeProps';
import { Value } from '../../cloudformation/Value';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  The <code>AWS::Cognito::UserPoolUser</code> resource creates an Amazon Cognito user pool user.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html">the AWS Docs</a>
*/
export type UserPoolUser = AwsResource<'AWS::Cognito::UserPoolUser', UserPoolUserProperties>;
export declare function userPoolUser(userPoolUserProps: UserPoolUserProperties): UserPoolUser;
/**
  The <code>AWS::Cognito::UserPoolUser</code> resource creates an Amazon Cognito user pool user.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html">the AWS Docs</a>
*/
export interface UserPoolUserProperties {
    /** <code>ValidationData</code>  <a name="cfn-cognito-userpooluser-validationdata"></a>
  The user’s validation data. This is an array of name-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered. For example, you might choose to allow or disallow user sign-up based on the user’s domain.<br />
  To configure custom validation, you must create a Pre Sign-up AWS Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation process.<br />
  The user’s validation data isn’t persisted.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    validationData?: AttributeTypeProps[];
    /** <code>UserPoolId</code>  <a name="cfn-cognito-userpooluser-userpoolid"></a>
  The user pool ID for the user pool where the user will be created.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>55</code><br />
  
  Pattern: <code>[\w-]+_[0-9a-zA-Z]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    userPoolId: Value<string>;
    /** <p> */
    username?: Value<string>;
    /** <code>MessageAction</code>  <a name="cfn-cognito-userpooluser-messageaction"></a>
  Set to <code>RESEND</code> to resend the invitation message to a user that already exists and reset the expiration limit on the user’s account. Set to <code>SUPPRESS</code> to suppress sending the message. You can specify only one value.<br />
  
  Required: No<br />
  
  Allowed values: <code>RESEND | SUPPRESS</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    messageAction?: Value<'RESEND' | 'SUPPRESS'>;
    /** <code>ClientMetadata</code>  <a name="cfn-cognito-userpooluser-clientmetadata"></a>
  A map of custom key-value pairs that you can provide as input for the custom workflow that is invoked by the
  pre sign-up: rigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata property. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs.<br />
  For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the
  Amazon Cognito Developer Guide: br />
  Take the following limitations into consideration when you use the ClientMetadata parameter: */
    clientMetadata?: Value<{
        [key: string]: Value<string>;
    }>;
    /** <code>DesiredDeliveryMediums</code>  <a name="cfn-cognito-userpooluser-desireddeliverymediums"></a>
  Specify <code>&quot;EMAIL&quot;</code> if email will be used to send the welcome message. Specify <code>&quot;SMS&quot;</code> if the phone number will be used. The default value is <code>&quot;SMS&quot;</code>. You can specify more than one value.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    desiredDeliveryMediums?: Value<Value<string>[]>;
    /** <code>ForceAliasCreation</code>  <a name="cfn-cognito-userpooluser-forcealiascreation"></a>
  This parameter is used only if the <code>phone_number_verified</code> or <code>email_verified</code> attribute is set to <code>True</code>. Otherwise, it is ignored.<br />
  If this parameter is set to <code>True</code> and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user. The previous user will no longer be able to log in using that alias.<br />
  If this parameter is set to <code>False</code>, the API throws an <code>AliasExistsException</code> error if the alias already exists. The default value is <code>False</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    forceAliasCreation?: Value<boolean>;
    /** <p> */
    userAttributes?: AttributeTypeProps[];
}
