google_permissions/variables.tf (109 lines of code) (raw):
variable "app_code" {
description = "The application code for the permissions. See https://github.com/mozilla-services/inventory/blob/master/application_component_registry.csv."
type = string
default = ""
}
variable "entitlement_enabled" {
description = "Whether or not to enable entitlements."
type = bool
default = false
}
variable "entitlement_data" {
description = "The entitlement data for the project."
type = object({
enabled = bool
additional_roles = list(string)
additional_entitlements = list(object({
name = string
roles = list(string)
principals = list(string)
approval_workflow = optional(object({
principals = list(string)
}))
}))
})
default = {
enabled = false
additional_roles = []
additional_entitlements = []
}
}
variable "entitlement_slack_topic" {
description = "The name of the pubsub topic to use for slack notifications."
type = string
default = ""
}
variable "feed_id" {
description = "The ID of the feed to be created"
type = string
default = "grant_feed"
}
variable "google_folder_id" {
description = "The ID of the folder to create the project in."
type = string
}
/*
* Possible to only create non-prod or prod projects as well as creating both
* code later checks for this.
*/
// default for both of these is to pull these values from the remote state
variable "google_prod_project_id" {
description = "The ID of the prod project."
type = string
default = ""
}
variable "google_nonprod_project_id" {
description = "The ID of the nonprod project."
type = string
default = ""
}
/*
//
// ADDITIONAL ROLES - these are roles added in addition to the core roles.
//
*/
// roles that are folder-only in scope are in this list
variable "folder_roles" {
description = "List of roles to apply at the folder level. Also used as the roles in the entitlement."
type = list(string)
default = []
}
// roles that are intended for the production project are in this list
variable "prod_roles" {
description = "List of roles to apply to the prod project."
type = list(string)
default = []
}
// roles that are intended for the non-production project are in this list
variable "nonprod_roles" {
description = "List of roles to apply to the nonprod project."
type = list(string)
default = []
}
/*
// Optional - this sets a special flag that sets the role on a project as admin only. It is mutually
// exclusive with the other roles variables and with the core set of roles.
*/
variable "admin_only" {
default = false
description = "Whether or not to create a project with admin-only role."
type = bool
}
/*
// The following are sets of user ids to add to your project
*/
variable "admin_ids" {
default = []
description = "List of admin IDs to add to the project."
type = list(string)
}
variable "developer_ids" {
default = []
description = "List of developer IDs to add to the project."
type = list(string)
}
variable "viewer_ids" {
default = []
description = "List of viewer IDs to add to the project."
type = list(string)
}