193 lines
4.7 KiB
HCL

###################
# GLOBAL VARIABLES
###################
variable "project_id" {
description = "App's project ID"
type = string
default = "changeme"
}
###################
# APP VARIABLES
###################
variable "app_name" {
description = "Name of the application"
type = string
default = "changeme"
}
variable "app_desc" {
description = "Application's description"
type = string
default = ""
}
variable "app_tags" {
description = "Application's tags"
type = map(string)
default = {}
}
variable "env" {
description = "App's environment (dev/stg/prd)"
type = string
default = "dev"
}
variable "policy_permissions" {
description = "Policy permissions for app"
type = list(string)
default = []
}
###################
# BUCKETS VARIABLE
###################
variable "buckets_list" {
description = "List of the application's buckets"
type = list(object({
bucket_name = string
bucket_region = optional(string)
bucket_versioning = optional(bool)
bucket_tags = optional(map(string))
bucket_policy_actions = optional(list(string))
bucket_lifecycle_rules = optional(list(object({
id = string
enabled = bool
prefix = optional(string)
expiration_days = optional(number)
transition_days = optional(number)
transition_sc = optional(string)
tags = optional(map(string))
})))
other_app_access = optional(list(string))
other_app_policy_actions= optional(list(string))
}))
}
# 09/01/2024 - Pas possible de mettre des group_id comme principal
# cf https://feature-request.scaleway.com/posts/714/bucket-policy-with-group_id
variable "admins_user_id" {
description = "List of s3 admin user's ID"
type = list(string)
default = []
}
variable "readonly_users_id" {
description = "List of readonly user's ID"
type = list(string)
default = []
}
###################
# SQS VARIABLES
###################
variable "sqs_queue_list" {
description = "List of the SQS queues"
type = list(object({
sqs_queue_name = string
sqs_fifo_queue = optional(bool)
sqs_message_max_age = optional(string)
sqs_message_max_size= optional(string)
}))
}
variable "sqs_can_manage" {
description = "Can SQS credentials manage the queue"
type = bool
default = false
}
variable "sqs_can_receive" {
description = "Can SQS credentials receive message from the queue"
type = bool
default = true
}
variable "sqs_can_publish" {
description = "Can SQS credentials publish message to the queue"
type = bool
default = true
}
variable "sqs_fifo_queue" {
description = "Is the queue in FIFO mode ?"
type = bool
default = false
}
variable "sqs_message_max_age" {
description = "Max age of message before being deleted in seconds"
type = number
default = 345600
}
variable "sqs_message_max_size" {
description = "Max size of message accepted in octet"
type = number
default = 262144
}
variable "admin_creds_access_key" {
description = "SQS Admin access key"
type = string
default = ""
}
variable "admin_creds_secret_key" {
description = "SQS Admin secret key"
type = string
default = ""
}
###################
# SNS VARIABLES
###################
variable "sns_topic_list" {
description = "List of the SNS topics"
type = list(object({
sns_topic_name = string
sns_fifo_topic = optional(bool)
}))
}
variable "sns_can_manage" {
description = "Can SNS credentials manage the topic"
type = bool
default = false
}
variable "sns_can_receive" {
description = "Can SNS credentials receive message from the topic"
type = bool
default = true
}
variable "sns_can_publish" {
description = "Can SNS credentials publish message to the topic"
type = bool
default = true
}
variable "sns_fifo_topic" {
description = "Is the topic in FIFO mode ? (name must end with .fifo)"
type = bool
default = false
}
variable "sns_admin_creds_access_key" {
description = "SNS Admin access key"
type = string
default = ""
}
variable "sns_admin_creds_secret_key" {
description = "SNS Admin secret key"
type = string
default = ""
}