variable "aws_region" {
  default     = "us-east-1"
  description = "AWS region"
}

variable "environment" {
  description = "Available values:  dev, qa, prod."
  default     = "prod"
}

variable "service_name" {
  default = "workstation"
}

variable "application_family" {
  default = "php-monolith"
}

# Cloudfront settings
variable "cloudfront_minimum_protocol_version" {
  description = "Minimum SSL protocol"
  default     = "TLSv1.2_2021"
}

variable "cloudfront_logging_bucket" {
  description = "Bucket to use for cloudfront logging"
  default     = "prod-orcd-cloudfront-logs.s3.amazonaws.com"
}

variable "domain_name" {
  type    = string
  default = "prodawal.com"
}

variable "real_domain_name" {
  description = "Name of domain"
  default     = "awal.com"
}

variable "brand" {
  type        = string
  description = "Name of brand, e.g. orcd, awal, royaltyshare"
  default     = "awal"
}

# Order is important here, as each entry will be given a behavior precedence.
# Make sure specific paths come before wildcard matches if they need to reach different origins
variable "ordered_cache_behaviors" {
  type = list(object({
    path_pattern                    = string
    allowed_methods                 = list(string)
    target_origin_id                = string
    viewer_request_function_enabled = bool
  }))
  description = "List of objects containing path, origin, and method mappings"
  default = [
    {
      path_pattern                    = "api/*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "grass_origin",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "grass/*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "grass_origin",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "accounting*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "s3_origin_group",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "account*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "analytics/audience",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "s3_origin_group",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "analytics/comparison",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "s3_origin_group",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "analytics/engagement",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "s3_origin_group",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "analytics/reporting/physical*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "s3_origin_group",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "analytics*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "alw/accounting*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "s3_origin_group",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "alw*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "artist-links*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "s3_origin_group",
      viewer_request_function_enabled = true,
    },
    {
      path_pattern                    = "artist*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "conflict*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "grasssession",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "javascript/releasebuilder*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "jsession/*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "legal*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "login*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "logout*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "multiplereleases*",
      allowed_methods                 = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "releasebuilder/deliveryreport*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "scripts/*",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "*.csv",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "*.xlsx",
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
    {
      path_pattern                    = "*.xls", # Also includes /orchard_meta_template_v1.24.xls
      allowed_methods                 = ["GET", "HEAD", "OPTIONS"],
      target_origin_id                = "php_origin",
      viewer_request_function_enabled = false,
    },
  ]
}
