106 lines
2.2 KiB
HCL
106 lines
2.2 KiB
HCL
variable "name" {
|
|
type = string
|
|
description = "Name of the gitlab group"
|
|
}
|
|
|
|
variable "description" {
|
|
type = string
|
|
description = "Description of the gitlab group"
|
|
}
|
|
|
|
variable "parent_group" {
|
|
type = string
|
|
description = "Gitlab parent group"
|
|
}
|
|
|
|
variable "visibility" {
|
|
type = string
|
|
default = "private"
|
|
description = "The group's visibility"
|
|
|
|
validation {
|
|
condition = contains([
|
|
"private",
|
|
"internal",
|
|
"public"
|
|
], var.visibility)
|
|
error_message = "Unsupported group visibility"
|
|
}
|
|
}
|
|
|
|
variable "default_branch" {
|
|
type = string
|
|
default = "main"
|
|
description = "The group's default branch"
|
|
}
|
|
|
|
variable "allowed_avatar_types_json" {
|
|
type = string
|
|
default = ""
|
|
description = "Path to allowed avatar types json"
|
|
}
|
|
|
|
|
|
variable "avatar" {
|
|
type = string
|
|
description = "Type of the icon for the group (default: from type)"
|
|
default = ""
|
|
|
|
validation {
|
|
condition = contains(local.allowed_avatar_types, var.avatar)
|
|
error_message = "Unsupported group type"
|
|
}
|
|
}
|
|
|
|
variable "labels" {
|
|
type = map(object({
|
|
description = string
|
|
color = string
|
|
}))
|
|
default = {}
|
|
}
|
|
|
|
variable "badges" {
|
|
type = map(object({
|
|
link_url = string
|
|
image_url = string
|
|
}))
|
|
default = {}
|
|
}
|
|
|
|
variable "variables" {
|
|
type = map(object({
|
|
value = string
|
|
description = optional(string)
|
|
protected = optional(bool)
|
|
masked = optional(bool)
|
|
environment_scope = optional(string)
|
|
}))
|
|
default = {}
|
|
}
|
|
|
|
variable "permissions" {
|
|
type = map(object({
|
|
permission = string
|
|
}))
|
|
|
|
validation {
|
|
condition = alltrue([for k, v in var.permissions :
|
|
v.permission == "owner" ||
|
|
v.permission == "maintainer" ||
|
|
v.permission == "developer" ||
|
|
v.permission == "reporter" ||
|
|
v.permission == "guest"
|
|
])
|
|
error_message = "Each permission must be one of the following values: owner, maintainer, developer, reporter, guest"
|
|
}
|
|
description = "Group permission mapping"
|
|
default = {}
|
|
}
|
|
|
|
variable "avatars_dir" {
|
|
description = "Avatars directory png files"
|
|
type = string
|
|
default = ""
|
|
}
|