title: AWS Cognito - How to create pool allowing sign up with email address, using CloudFormation?
body: <p>I am attempting to create a UserPool using CloudFormation syntax, but I am unable to find which property I need to set in order to create the pool with email address sign up. How do I specify this?</p>
  
  <p><a href="https://i.stack.imgur.com/AMuNS.png" rel="noreferrer"><img src="https://i.stack.imgur.com/AMuNS.png" alt="enter image description here"></a></p>
  
  <p>As you can see in the screenshot, by default the pool is created with Usernames.</p>
  
  <p>Here's my current pool config;</p>
  
  <pre><code>MyPool:
    Type: "AWS::Cognito::UserPool"
    Properties:
      Schema:
        - Name: sub
          StringAttributeConstraints:
            MinLength: '1'
            MaxLength: '2048'
          DeveloperOnlyAttribute: false
          Required: true
          AttributeDataType: String
          Mutable: false
        - Name: name
          StringAttributeConstraints:
            MinLength: '0'
            MaxLength: '2048'
          DeveloperOnlyAttribute: false
          Required: false
          AttributeDataType: String
          Mutable: true
        - Name: updated_at
          NumberAttributeConstraints:
            MinValue: '0'
          DeveloperOnlyAttribute: false
          Required: false
          AttributeDataType: Number
          Mutable: true
      UserPoolName: ${self:provider.environment.PARTNER_POOL}
      EmailVerificationMessage: 'Please click the link below to verify your email address.
          {####} '
      EmailVerificationSubject: Your verification link
      SmsAuthenticationMessage: 'Your authentication code is {####}. '
      DeviceConfiguration:
        ChallengeRequiredOnNewDevice: false
        DeviceOnlyRememberedOnUserPrompt: false
      AdminCreateUserConfig:
        InviteMessageTemplate:
          EmailMessage: 'Your username is {username} and temporary password is {####}. '
          EmailSubject: Your temporary password
          SMSMessage: 'Your username is {username} and temporary password is {####}. '
        UnusedAccountValidityDays: 7
        AllowAdminCreateUserOnly: false
      EmailConfiguration: {}
      AutoVerifiedAttributes:
        - email
      Policies:
        PasswordPolicy:
          RequireLowercase: false
          RequireSymbols: false
          RequireNumbers: true
          MinimumLength: 8
          RequireUppercase: false
      AliasAttributes:
        - email
  </code></pre>