// Copyright 2022 Amazon.com and its affiliates; all rights reserved.
// SPDX-License-Identifier: MIT No Attribution
terraform {
  required_providers {
    aws = {
      source                = "hashicorp/aws"
      configuration_aliases = [aws]
    }
  }
}
resource "aws_cognito_user_pool" "user_pool" {
  name = "${var.APP}-${var.ENV}-${var.USER_POOL_NAME}"
  username_configuration {
    case_sensitive = false
  }
  admin_create_user_config {
    allow_admin_create_user_only = false
    invite_message_template {
      email_subject = "${var.APP_TITLE} User Invitation"
      email_message = "  
   
Hello,
 
Welcome to ${var.APP_TITLE}. Kindly find the credentials for the account created for you.
 
User Email: {username}
Password: {####}
Please visit the login page, and enter the user email and password provided to login. 
${var.APP_TITLE} Team "
      sms_message   = "Hello,\r\nWelcome to ${var.APP_TITLE}.\r\nUser Email: {username}\r\nTemporary Password: {####}\r\n${var.APP_TITLE} Team"
    }
  }
  password_policy {
    minimum_length                   = 8
    require_lowercase                = true
    require_uppercase                = true
    require_numbers                  = false
    require_symbols                  = false
    temporary_password_validity_days = 1
  }
  username_attributes      = ["email"]
  auto_verified_attributes = ["email"]
  verification_message_template {
    default_email_option = "CONFIRM_WITH_CODE"
    email_subject        = "${var.APP_TITLE} User Email Verification"
    email_message        = "     
Hello,
 
Welcome to ${var.APP_TITLE}. You are kindly requested to verify your email using the code: {####}. Please visit login page, click on verify button, enter your email id and the code provided and click verify.  
${var.APP_TITLE} Team "
  }
  mfa_configuration = "OFF"
  schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
    name                     = "email"
    required                 = false
    string_attribute_constraints {}
  }
}
resource "aws_iam_role" "group_role" {
  name = "${var.APP}-${var.ENV}-${var.REGION}-cognito-user-group-role"
  assume_role_policy = <