terraform как описать тип переменной с изменением ключей в объекте - PullRequest
1 голос
/ 03 августа 2020

У меня постоянно меняется список объектов как переменных, и я хотел знать, как правильно описать его тип

variable "lifecycle_rules" {
  type = set(object({
#    set(object({
#      action = map(string)
#      condition = map(string)
#    }))
  }))
  default = [
    {
    first = [
      {
        condition = {
          age = "1"
        }
        action = {
          type = "Delete"
        }
      },
      {
        condition = {
          age = "2"
        }
        action = {
          type = "Delete"
        }
      }
    ]},
    {
     second = [
      {
        condition = {
          age = "3"
        }
        action = {
          type = "Delete"
        }
      },
      {
        condition = {
          age = "4"
        }
        action = {
          type = "Delete"
        }
      }
    ]
  }
  ]
}

Здесь должна быть строка с чем-то вроде этой string = set(object({... первая и вторая всегда меняется, поэтому key значение должно быть строкой, но не может его установить - другие вопросы, как написать тип для значения по умолчанию ниже?

1 Ответ

1 голос
/ 03 августа 2020

Вы почти у цели. Я думаю, что правильный:

  type = set(
      map(
        set(
          object({condition = map(string), 
                  action    = map(string)})
           )
       )
     )

В map вы не указываете атрибуты, так как они могут быть разными. В самом внутреннем у вас есть object, поскольку condition и action постоянны.

...