variables.tf 2.77 KB
Newer Older
Kenny Moore's avatar
Kenny Moore committed
1
2
3
4
variable "billing_account_id" {
  type = string
  description = "Customer Billing Account ID - REPLACE SOON with billing subaccount resource"
}
Adam Robinson's avatar
Adam Robinson committed
5
 variable "requestor" {
Adam Robinson's avatar
Adam Robinson committed
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  type = string
  description = "The person that made the initial request for the GCP Customer Folder"
}

variable "mcomm_group_email" {
  type = string
  description = "The MCommunity Group to be given permission to the GCP Customer Folder"
}

variable "shortcode" {
  type = string
  description = "The default shortcode to associate with the billing subaccount"
}

variable "billing_contact" {
  type = string
  description = "A contact to use for billing questions about the GCP Billing Subaccount"
}

Adam Robinson's avatar
Adam Robinson committed
25
26
27
28
29
30
31
32
33
variable "environment" {
  type = string
  description = "The environment the customer folder will be created in.  Defaults to \"prod\""
  default = "prod"

    validation {
    condition     = var.environment == "dev" || var.environment == "test" || var.environment == "prod"
    error_message = "The environment value must be one of \"dev\",\"test\", or \"prod\"."
  }
Adam Robinson's avatar
Adam Robinson committed
34
35
36
37
}
	
variable "division" {
  type = string
Adam Robinson's avatar
Adam Robinson committed
38
39
40
41
42
43
  description = "Must be one of \"campus\",\"its\", \"michigan_medicine\", or \"hipaa\""

  validation {
    condition     = var.division == "campus" || var.division == "its" || var.division == "michigan_medicine" || var.division == "hipaa"
    error_message = "The division value must be one of \"campus\",\"its\", \"michigan_medicine\", or \"hipaa\"."
  }
Adam Robinson's avatar
Adam Robinson committed
44
45
46
47
48
49
50
51
52
53
54
55
}

variable "customer_bucket_project_id" {
    type = string
    description = "The project that will contain customer Terraform state buckets"
}

variable "customer_service_account_project_id" {
    type = string
    description = "The project that will contain customer Terraform service accounts"
}

Adam Robinson's avatar
Adam Robinson committed
56
57
58
59
variable "provisioning_service_account_email" {
    type = string
    description = "The email of the service account used to provision customers"
}
60
61
62
63

variable "folder_display_name" {
    type        = string
    description = "Override the display name of customer folder. Not customer facing, should be set as close to the customer's mcomm group email as possible."
64
    default     = ""
65
66

   validation {
67
    condition     = var.folder_display_name != "" ? length(var.folder_display_name) <= 30 : true
68
69
70
71
72
73
74
75
76
    error_message = "The folder_display_name must be less than or equal to 30 characters in length."
  }

  validation {
    condition     = can(regex("^[[:alnum:]][\\w\\s-]*[[:alnum:]]$")) || var.folder_display_name == ""
    error_message = "The folder_display_name must start and end with a letter or number and contain only letters, numbers, '_', ' ', and '-'."
  }
}

77
78
79
80
81
variable "customer_is_shared_vpc_admin" {
    type        = bool
    description = "Should the customer be given Shared VPC Admin permission to the customer folder. Defaults to false."
    default     = false
}