Giter Club home page Giter Club logo

Comments (10)

lgallard avatar lgallard commented on May 31, 2024

@Modestasthinkt try defining var.case_sensitive with the same value it tries to replace.

from terraform-aws-cognito-user-pool.

bentlema avatar bentlema commented on May 31, 2024

Even with the same value, terraform wants to force replacement because the entire username_configuration block is absent (it's optional and the resource was originally provisioned via the console). Would converting username_configuration to a dynamic block solve this?

Maybe something like this:

locals {
  username_configuration_attributes = length(var.username_configuration) == 0 ? {} : {
    case_sensitive = lookup(var.username_configuration, "case_sensitive", true)
  }
  username_configuration = length(local.username_configuration_attributes) == 0 ? [] : [local.username_configuration_attributes]
}

dynamic "username_configuration" {
  for_each = local.username_configuration
  content {
    case_sensitive = lookup(username_configuration.value, "case_sensitive")
  }
}

from terraform-aws-cognito-user-pool.

lgallard avatar lgallard commented on May 31, 2024

@Modestasthinkt @bentlema I couldn't reproduce the issue. I created a new user pool from the console and then imported with Terraform.

Can you give me more information?

  • AWS provider version?
  • Terraform version?

from terraform-aws-cognito-user-pool.

lgallard avatar lgallard commented on May 31, 2024

@bentlema I can add the suggested code, but username_configuration is just one bock definition.

from terraform-aws-cognito-user-pool.

bentlema avatar bentlema commented on May 31, 2024

In my case, I'm using: Terraform v0.12.29, provider.aws v2.70.0

About that code snippet: I was just looking for a way to omit the username_configuration block entirely and it seems like the dynamic block achieves that when given an empty list, but I didn't spend too much time on it...could be a better way I'm missing.

Also, I had imported a user pool that was created over a year ago. Let me see if it does the same thing with a new pool...

from terraform-aws-cognito-user-pool.

lgallard avatar lgallard commented on May 31, 2024

@eduzera I see...I'm adding your code to avoid defining username_configuration

from terraform-aws-cognito-user-pool.

bentlema avatar bentlema commented on May 31, 2024

Yeah, same here, I was unable to repo on a newly-created user pool via the console.

But, I did find a case where I could repo the issue:

  1. Create a new user pool via terraform using resource aws_cognito_user_pool directly and omitting the username_configuration block
  2. Build out a new root module using this module & import the pool created in the previous step
  3. Run a terraform plan, and you'll see that it wants to destroy/re-create due to the case_sensitive option

from terraform-aws-cognito-user-pool.

lgallard avatar lgallard commented on May 31, 2024

@bentlema you can try with this branch https://github.com/lgallard/terraform-aws-cognito-user-pool/tree/dynamic_username_configuration_block

If you omit the user_configuration variable it shouldn't create the block (I used you code and jus rename the local).

If it works for you, I merge it after updating the README and the examples.

from terraform-aws-cognito-user-pool.

bentlema avatar bentlema commented on May 31, 2024

Thanks @lgallard ! Tested it, and works great.

from terraform-aws-cognito-user-pool.

lgallard avatar lgallard commented on May 31, 2024

@Modestasthinkt @bentlema release 0.6.0 fixes this issue!

from terraform-aws-cognito-user-pool.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.