|  | --- | 
|  | # ---------------------------------------------------------------------------- | 
|  | # | 
|  | #     ***     AUTO GENERATED CODE    ***    Type: MMv1     *** | 
|  | # | 
|  | # ---------------------------------------------------------------------------- | 
|  | # | 
|  | #     This file is automatically generated by Magic Modules and manual | 
|  | #     changes will be clobbered when the file is regenerated. | 
|  | # | 
|  | #     Please read more about how to change this file in | 
|  | #     .github/CONTRIBUTING.md. | 
|  | # | 
|  | # ---------------------------------------------------------------------------- | 
|  | subcategory: "Compute Engine" | 
|  | description: |- | 
|  | A Region Backend Service defines a regionally-scoped group of virtual | 
|  | machines that will serve traffic for load balancing. | 
|  | --- | 
|  |  | 
|  | # google\_compute\_region\_backend\_service | 
|  |  | 
|  | A Region Backend Service defines a regionally-scoped group of virtual | 
|  | machines that will serve traffic for load balancing. | 
|  |  | 
|  |  | 
|  | To get more information about RegionBackendService, see: | 
|  |  | 
|  | * [API documentation](https://cloud.google.com/compute/docs/reference/latest/regionBackendServices) | 
|  | * How-to Guides | 
|  | * [Internal TCP/UDP Load Balancing](https://cloud.google.com/compute/docs/load-balancing/internal/) | 
|  |  | 
|  | ~> **Warning:** All arguments including the following potentially sensitive | 
|  | values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`. | 
|  | [Read more about sensitive data in state](https://www.terraform.io/language/state/sensitive-data). | 
|  |  | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_basic&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service Basic | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | name                            = "region-service" | 
|  | region                          = "us-central1" | 
|  | health_checks                   = [google_compute_health_check.default.id] | 
|  | connection_draining_timeout_sec = 10 | 
|  | session_affinity                = "CLIENT_IP" | 
|  | } | 
|  |  | 
|  | resource "google_compute_health_check" "default" { | 
|  | name               = "rbs-health-check" | 
|  | check_interval_sec = 1 | 
|  | timeout_sec        = 1 | 
|  |  | 
|  | tcp_health_check { | 
|  | port = "80" | 
|  | } | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_external_iap&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service External Iap | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | name                  = "tf-test-region-service-external" | 
|  | region                = "us-central1" | 
|  | protocol              = "HTTP" | 
|  | load_balancing_scheme = "EXTERNAL" | 
|  | iap { | 
|  | oauth2_client_id     = "abc" | 
|  | oauth2_client_secret = "xyz" | 
|  | } | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_cache&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service Cache | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | provider = google-beta | 
|  |  | 
|  | name                            = "region-service" | 
|  | region                          = "us-central1" | 
|  | health_checks                   = [google_compute_region_health_check.default.id] | 
|  | enable_cdn  = true | 
|  | cdn_policy { | 
|  | cache_mode = "CACHE_ALL_STATIC" | 
|  | default_ttl = 3600 | 
|  | client_ttl  = 7200 | 
|  | max_ttl     = 10800 | 
|  | negative_caching = true | 
|  | signed_url_cache_max_age_sec = 7200 | 
|  | } | 
|  |  | 
|  | load_balancing_scheme = "EXTERNAL" | 
|  | protocol              = "HTTP" | 
|  |  | 
|  | } | 
|  |  | 
|  | resource "google_compute_region_health_check" "default" { | 
|  | provider = google-beta | 
|  |  | 
|  | name               = "rbs-health-check" | 
|  | region             = "us-central1" | 
|  |  | 
|  | http_health_check { | 
|  | port = 80 | 
|  | } | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_ilb_round_robin&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service Ilb Round Robin | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | region = "us-central1" | 
|  | name = "region-service" | 
|  | health_checks = [google_compute_health_check.health_check.id] | 
|  | protocol = "HTTP" | 
|  | load_balancing_scheme = "INTERNAL_MANAGED" | 
|  | locality_lb_policy = "ROUND_ROBIN" | 
|  | } | 
|  |  | 
|  | resource "google_compute_health_check" "health_check" { | 
|  | name               = "rbs-health-check" | 
|  | http_health_check { | 
|  | port = 80 | 
|  | } | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_external&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service External | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | provider              = google-beta | 
|  | region                = "us-central1" | 
|  | name                  = "region-service" | 
|  | health_checks         = [google_compute_region_health_check.health_check.id] | 
|  | protocol              = "TCP" | 
|  | load_balancing_scheme = "EXTERNAL" | 
|  | } | 
|  |  | 
|  | resource "google_compute_region_health_check" "health_check" { | 
|  | provider           = google-beta | 
|  | name               = "rbs-health-check" | 
|  | region             = "us-central1" | 
|  |  | 
|  | tcp_health_check { | 
|  | port = 80 | 
|  | } | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_external_weighted&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service External Weighted | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | region                = "us-central1" | 
|  | name                  = "region-service" | 
|  | health_checks         = [google_compute_region_health_check.health_check.id] | 
|  | protocol              = "TCP" | 
|  | load_balancing_scheme = "EXTERNAL" | 
|  | locality_lb_policy    = "WEIGHTED_MAGLEV" | 
|  | } | 
|  |  | 
|  | resource "google_compute_region_health_check" "health_check" { | 
|  | name               = "rbs-health-check" | 
|  | region             = "us-central1" | 
|  |  | 
|  | http_health_check { | 
|  | port = 80 | 
|  | } | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_ilb_ring_hash&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service Ilb Ring Hash | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | region = "us-central1" | 
|  | name = "region-service" | 
|  | health_checks = [google_compute_health_check.health_check.id] | 
|  | load_balancing_scheme = "INTERNAL_MANAGED" | 
|  | locality_lb_policy = "RING_HASH" | 
|  | session_affinity = "HTTP_COOKIE" | 
|  | protocol = "HTTP" | 
|  | circuit_breakers { | 
|  | max_connections = 10 | 
|  | } | 
|  | consistent_hash { | 
|  | http_cookie { | 
|  | ttl { | 
|  | seconds = 11 | 
|  | nanos = 1111 | 
|  | } | 
|  | name = "mycookie" | 
|  | } | 
|  | } | 
|  | outlier_detection { | 
|  | consecutive_errors = 2 | 
|  | } | 
|  | } | 
|  |  | 
|  | resource "google_compute_health_check" "health_check" { | 
|  | name               = "rbs-health-check" | 
|  | http_health_check { | 
|  | port = 80 | 
|  | } | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_balancing_mode&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service Balancing Mode | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | load_balancing_scheme = "INTERNAL_MANAGED" | 
|  |  | 
|  | backend { | 
|  | group          = google_compute_region_instance_group_manager.rigm.instance_group | 
|  | balancing_mode = "UTILIZATION" | 
|  | capacity_scaler = 1.0 | 
|  | } | 
|  |  | 
|  | region      = "us-central1" | 
|  | name        = "region-service" | 
|  | protocol    = "HTTP" | 
|  | timeout_sec = 10 | 
|  |  | 
|  | health_checks = [google_compute_region_health_check.default.id] | 
|  | } | 
|  |  | 
|  | data "google_compute_image" "debian_image" { | 
|  | family   = "debian-11" | 
|  | project  = "debian-cloud" | 
|  | } | 
|  |  | 
|  | resource "google_compute_region_instance_group_manager" "rigm" { | 
|  | region   = "us-central1" | 
|  | name     = "rbs-rigm" | 
|  | version { | 
|  | instance_template = google_compute_instance_template.instance_template.id | 
|  | name              = "primary" | 
|  | } | 
|  | base_instance_name = "internal-glb" | 
|  | target_size        = 1 | 
|  | } | 
|  |  | 
|  | resource "google_compute_instance_template" "instance_template" { | 
|  | name         = "template-region-service" | 
|  | machine_type = "e2-medium" | 
|  |  | 
|  | network_interface { | 
|  | network    = google_compute_network.default.id | 
|  | subnetwork = google_compute_subnetwork.default.id | 
|  | } | 
|  |  | 
|  | disk { | 
|  | source_image = data.google_compute_image.debian_image.self_link | 
|  | auto_delete  = true | 
|  | boot         = true | 
|  | } | 
|  |  | 
|  | tags = ["allow-ssh", "load-balanced-backend"] | 
|  | } | 
|  |  | 
|  | resource "google_compute_region_health_check" "default" { | 
|  | region = "us-central1" | 
|  | name   = "rbs-health-check" | 
|  | http_health_check { | 
|  | port_specification = "USE_SERVING_PORT" | 
|  | } | 
|  | } | 
|  |  | 
|  | resource "google_compute_network" "default" { | 
|  | name                    = "rbs-net" | 
|  | auto_create_subnetworks = false | 
|  | routing_mode            = "REGIONAL" | 
|  | } | 
|  |  | 
|  | resource "google_compute_subnetwork" "default" { | 
|  | name          = "rbs-net-default" | 
|  | ip_cidr_range = "10.1.2.0/24" | 
|  | region        = "us-central1" | 
|  | network       = google_compute_network.default.id | 
|  | } | 
|  | ``` | 
|  | <div class = "oics-button" style="float: right; margin: 0 0 -15px"> | 
|  | <a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=region_backend_service_connection_tracking&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank"> | 
|  | <img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;"> | 
|  | </a> | 
|  | </div> | 
|  | ## Example Usage - Region Backend Service Connection Tracking | 
|  |  | 
|  |  | 
|  | ```hcl | 
|  | resource "google_compute_region_backend_service" "default" { | 
|  | provider                        = google-beta | 
|  | name                            = "region-service" | 
|  | region                          = "us-central1" | 
|  | health_checks                   = [google_compute_region_health_check.health_check.id] | 
|  | connection_draining_timeout_sec = 10 | 
|  | session_affinity                = "CLIENT_IP" | 
|  | protocol                        = "TCP" | 
|  | load_balancing_scheme           = "EXTERNAL" | 
|  | connection_tracking_policy { | 
|  | tracking_mode                                = "PER_SESSION" | 
|  | connection_persistence_on_unhealthy_backends = "NEVER_PERSIST" | 
|  | idle_timeout_sec                             = 60 | 
|  | enable_strong_affinity                       = true | 
|  | } | 
|  | } | 
|  |  | 
|  | resource "google_compute_region_health_check" "health_check" { | 
|  | provider           = google-beta | 
|  | name               = "rbs-health-check" | 
|  | region             = "us-central1" | 
|  |  | 
|  | tcp_health_check { | 
|  | port = 22 | 
|  | } | 
|  | } | 
|  | ``` | 
|  |  | 
|  | ## Argument Reference | 
|  |  | 
|  | The following arguments are supported: | 
|  |  | 
|  |  | 
|  | * `name` - | 
|  | (Required) | 
|  | Name of the resource. Provided by the client when the resource is | 
|  | created. The name must be 1-63 characters long, and comply with | 
|  | RFC1035. Specifically, the name must be 1-63 characters long and match | 
|  | the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the | 
|  | first character must be a lowercase letter, and all following | 
|  | characters must be a dash, lowercase letter, or digit, except the last | 
|  | character, which cannot be a dash. | 
|  |  | 
|  |  | 
|  | - - - | 
|  |  | 
|  |  | 
|  | * `affinity_cookie_ttl_sec` - | 
|  | (Optional) | 
|  | Lifetime of cookies in seconds if session_affinity is | 
|  | GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts | 
|  | only until the end of the browser session (or equivalent). The | 
|  | maximum allowed value for TTL is one day. | 
|  | When the load balancing scheme is INTERNAL, this field is not used. | 
|  |  | 
|  | * `backend` - | 
|  | (Optional) | 
|  | The set of backends that serve this RegionBackendService. | 
|  | Structure is [documented below](#nested_backend). | 
|  |  | 
|  | * `circuit_breakers` - | 
|  | (Optional) | 
|  | Settings controlling the volume of connections to a backend service. This field | 
|  | is applicable only when the `load_balancing_scheme` is set to INTERNAL_MANAGED | 
|  | and the `protocol` is set to HTTP, HTTPS, or HTTP2. | 
|  | Structure is [documented below](#nested_circuit_breakers). | 
|  |  | 
|  | * `consistent_hash` - | 
|  | (Optional) | 
|  | Consistent Hash-based load balancing can be used to provide soft session | 
|  | affinity based on HTTP headers, cookies or other properties. This load balancing | 
|  | policy is applicable only for HTTP connections. The affinity to a particular | 
|  | destination host will be lost when one or more hosts are added/removed from the | 
|  | destination service. This field specifies parameters that control consistent | 
|  | hashing. | 
|  | This field only applies when all of the following are true - | 
|  | * `load_balancing_scheme` is set to INTERNAL_MANAGED | 
|  | * `protocol` is set to HTTP, HTTPS, or HTTP2 | 
|  | * `locality_lb_policy` is set to MAGLEV or RING_HASH | 
|  | Structure is [documented below](#nested_consistent_hash). | 
|  |  | 
|  | * `cdn_policy` - | 
|  | (Optional) | 
|  | Cloud CDN configuration for this BackendService. | 
|  | Structure is [documented below](#nested_cdn_policy). | 
|  |  | 
|  | * `connection_draining_timeout_sec` - | 
|  | (Optional) | 
|  | Time for which instance will be drained (not accept new | 
|  | connections, but still work to finish started). | 
|  |  | 
|  | * `description` - | 
|  | (Optional) | 
|  | An optional description of this resource. | 
|  |  | 
|  | * `failover_policy` - | 
|  | (Optional) | 
|  | Policy for failovers. | 
|  | Structure is [documented below](#nested_failover_policy). | 
|  |  | 
|  | * `enable_cdn` - | 
|  | (Optional) | 
|  | If true, enable Cloud CDN for this RegionBackendService. | 
|  |  | 
|  | * `health_checks` - | 
|  | (Optional) | 
|  | The set of URLs to HealthCheck resources for health checking | 
|  | this RegionBackendService. Currently at most one health | 
|  | check can be specified. | 
|  | A health check must be specified unless the backend service uses an internet | 
|  | or serverless NEG as a backend. | 
|  |  | 
|  | * `iap` - | 
|  | (Optional) | 
|  | Settings for enabling Cloud Identity Aware Proxy | 
|  | Structure is [documented below](#nested_iap). | 
|  |  | 
|  | * `load_balancing_scheme` - | 
|  | (Optional) | 
|  | Indicates what kind of load balancing this regional backend service | 
|  | will be used for. A backend service created for one type of load | 
|  | balancing cannot be used with the other(s). For more information, refer to | 
|  | [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service). | 
|  | Default value is `INTERNAL`. | 
|  | Possible values are: `EXTERNAL`, `EXTERNAL_MANAGED`, `INTERNAL`, `INTERNAL_MANAGED`. | 
|  |  | 
|  | * `locality_lb_policy` - | 
|  | (Optional) | 
|  | The load balancing algorithm used within the scope of the locality. | 
|  | The possible values are: | 
|  | * `ROUND_ROBIN`: This is a simple policy in which each healthy backend | 
|  | is selected in round robin order. | 
|  | * `LEAST_REQUEST`: An O(1) algorithm which selects two random healthy | 
|  | hosts and picks the host which has fewer active requests. | 
|  | * `RING_HASH`: The ring/modulo hash load balancer implements consistent | 
|  | hashing to backends. The algorithm has the property that the | 
|  | addition/removal of a host from a set of N hosts only affects | 
|  | 1/N of the requests. | 
|  | * `RANDOM`: The load balancer selects a random healthy host. | 
|  | * `ORIGINAL_DESTINATION`: Backend host is selected based on the client | 
|  | connection metadata, i.e., connections are opened | 
|  | to the same address as the destination address of | 
|  | the incoming connection before the connection | 
|  | was redirected to the load balancer. | 
|  | * `MAGLEV`: used as a drop in replacement for the ring hash load balancer. | 
|  | Maglev is not as stable as ring hash but has faster table lookup | 
|  | build times and host selection times. For more information about | 
|  | Maglev, refer to https://ai.google/research/pubs/pub44824 | 
|  | * `WEIGHTED_MAGLEV`: Per-instance weighted Load Balancing via health check | 
|  | reported weights. If set, the Backend Service must | 
|  | configure a non legacy HTTP-based Health Check, and | 
|  | health check replies are expected to contain | 
|  | non-standard HTTP response header field | 
|  | X-Load-Balancing-Endpoint-Weight to specify the | 
|  | per-instance weights. If set, Load Balancing is weight | 
|  | based on the per-instance weights reported in the last | 
|  | processed health check replies, as long as every | 
|  | instance either reported a valid weight or had | 
|  | UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains | 
|  | equal-weight. | 
|  |  | 
|  | This field is applicable to either: | 
|  | * A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, | 
|  | and loadBalancingScheme set to INTERNAL_MANAGED. | 
|  | * A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. | 
|  | * A regional backend service with loadBalancingScheme set to EXTERNAL (External Network | 
|  | Load Balancing). Only MAGLEV and WEIGHTED_MAGLEV values are possible for External | 
|  | Network Load Balancing. The default is MAGLEV. | 
|  |  | 
|  | If session_affinity is not NONE, and this field is not set to MAGLEV, WEIGHTED_MAGLEV, | 
|  | or RING_HASH, session affinity settings will not take effect. | 
|  | Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced | 
|  | by a URL map that is bound to target gRPC proxy that has validate_for_proxyless | 
|  | field set to true. | 
|  | Possible values are: `ROUND_ROBIN`, `LEAST_REQUEST`, `RING_HASH`, `RANDOM`, `ORIGINAL_DESTINATION`, `MAGLEV`, `WEIGHTED_MAGLEV`. | 
|  |  | 
|  | * `outlier_detection` - | 
|  | (Optional) | 
|  | Settings controlling eviction of unhealthy hosts from the load balancing pool. | 
|  | This field is applicable only when the `load_balancing_scheme` is set | 
|  | to INTERNAL_MANAGED and the `protocol` is set to HTTP, HTTPS, or HTTP2. | 
|  | Structure is [documented below](#nested_outlier_detection). | 
|  |  | 
|  | * `port_name` - | 
|  | (Optional) | 
|  | A named port on a backend instance group representing the port for | 
|  | communication to the backend VMs in that group. Required when the | 
|  | loadBalancingScheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED | 
|  | and the backends are instance groups. The named port must be defined on each | 
|  | backend instance group. This parameter has no meaning if the backends are NEGs. API sets a | 
|  | default of "http" if not given. | 
|  | Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing). | 
|  |  | 
|  | * `protocol` - | 
|  | (Optional) | 
|  | The protocol this RegionBackendService uses to communicate with backends. | 
|  | The default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer | 
|  | types and may result in errors if used with the GA API. | 
|  | Possible values are: `HTTP`, `HTTPS`, `HTTP2`, `SSL`, `TCP`, `UDP`, `GRPC`, `UNSPECIFIED`. | 
|  |  | 
|  | * `security_policy` - | 
|  | (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) | 
|  | The security policy associated with this backend service. | 
|  |  | 
|  | * `session_affinity` - | 
|  | (Optional) | 
|  | Type of session affinity to use. The default is NONE. Session affinity is | 
|  | not applicable if the protocol is UDP. | 
|  | Possible values are: `NONE`, `CLIENT_IP`, `CLIENT_IP_PORT_PROTO`, `CLIENT_IP_PROTO`, `GENERATED_COOKIE`, `HEADER_FIELD`, `HTTP_COOKIE`, `CLIENT_IP_NO_DESTINATION`. | 
|  |  | 
|  | * `connection_tracking_policy` - | 
|  | (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) | 
|  | Connection Tracking configuration for this BackendService. | 
|  | This is available only for Layer 4 Internal Load Balancing and | 
|  | Network Load Balancing. | 
|  | Structure is [documented below](#nested_connection_tracking_policy). | 
|  |  | 
|  | * `timeout_sec` - | 
|  | (Optional) | 
|  | How many seconds to wait for the backend before considering it a | 
|  | failed request. Default is 30 seconds. Valid range is [1, 86400]. | 
|  |  | 
|  | * `log_config` - | 
|  | (Optional) | 
|  | This field denotes the logging options for the load balancer traffic served by this backend service. | 
|  | If logging is enabled, logs will be exported to Stackdriver. | 
|  | Structure is [documented below](#nested_log_config). | 
|  |  | 
|  | * `network` - | 
|  | (Optional) | 
|  | The URL of the network to which this backend service belongs. | 
|  | This field can only be specified when the load balancing scheme is set to INTERNAL. | 
|  |  | 
|  | * `subsetting` - | 
|  | (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) | 
|  | Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing and Internal HTTP(S) load balancing. | 
|  | Structure is [documented below](#nested_subsetting). | 
|  |  | 
|  | * `region` - | 
|  | (Optional) | 
|  | The Region in which the created backend service should reside. | 
|  | If it is not provided, the provider region is used. | 
|  |  | 
|  | * `project` - (Optional) The ID of the project in which the resource belongs. | 
|  | If it is not provided, the provider project is used. | 
|  |  | 
|  |  | 
|  | <a name="nested_backend"></a>The `backend` block supports: | 
|  |  | 
|  | * `balancing_mode` - | 
|  | (Optional) | 
|  | Specifies the balancing mode for this backend. | 
|  | See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode) | 
|  | for an explanation of load balancing modes. | 
|  | Default value is `CONNECTION`. | 
|  | Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`. | 
|  |  | 
|  | * `capacity_scaler` - | 
|  | (Optional) | 
|  | A multiplier applied to the group's maximum servicing capacity | 
|  | (based on UTILIZATION, RATE or CONNECTION). | 
|  | ~>**NOTE**: This field cannot be set for | 
|  | INTERNAL region backend services (default loadBalancingScheme), | 
|  | but is required for non-INTERNAL backend service. The total | 
|  | capacity_scaler for all backends must be non-zero. | 
|  | A setting of 0 means the group is completely drained, offering | 
|  | 0% of its available Capacity. Valid range is [0.0,1.0]. | 
|  |  | 
|  | * `description` - | 
|  | (Optional) | 
|  | An optional description of this resource. | 
|  | Provide this property when you create the resource. | 
|  |  | 
|  | * `failover` - | 
|  | (Optional) | 
|  | This field designates whether this is a failover backend. More | 
|  | than one failover backend can be configured for a given RegionBackendService. | 
|  |  | 
|  | * `group` - | 
|  | (Required) | 
|  | The fully-qualified URL of an Instance Group or Network Endpoint | 
|  | Group resource. In case of instance group this defines the list | 
|  | of instances that serve traffic. Member virtual machine | 
|  | instances from each instance group must live in the same zone as | 
|  | the instance group itself. No two backends in a backend service | 
|  | are allowed to use same Instance Group resource. | 
|  | For Network Endpoint Groups this defines list of endpoints. All | 
|  | endpoints of Network Endpoint Group must be hosted on instances | 
|  | located in the same zone as the Network Endpoint Group. | 
|  | Backend services cannot mix Instance Group and | 
|  | Network Endpoint Group backends. | 
|  | When the `load_balancing_scheme` is INTERNAL, only instance groups | 
|  | are supported. | 
|  | Note that you must specify an Instance Group or Network Endpoint | 
|  | Group resource using the fully-qualified URL, rather than a | 
|  | partial URL. | 
|  |  | 
|  | * `max_connections` - | 
|  | (Optional) | 
|  | The max number of simultaneous connections for the group. Can | 
|  | be used with either CONNECTION or UTILIZATION balancing modes. | 
|  | Cannot be set for INTERNAL backend services. | 
|  | For CONNECTION mode, either maxConnections or one | 
|  | of maxConnectionsPerInstance or maxConnectionsPerEndpoint, | 
|  | as appropriate for group type, must be set. | 
|  |  | 
|  | * `max_connections_per_instance` - | 
|  | (Optional) | 
|  | The max number of simultaneous connections that a single | 
|  | backend instance can handle. Cannot be set for INTERNAL backend | 
|  | services. | 
|  | This is used to calculate the capacity of the group. | 
|  | Can be used in either CONNECTION or UTILIZATION balancing modes. | 
|  | For CONNECTION mode, either maxConnections or | 
|  | maxConnectionsPerInstance must be set. | 
|  |  | 
|  | * `max_connections_per_endpoint` - | 
|  | (Optional) | 
|  | The max number of simultaneous connections that a single backend | 
|  | network endpoint can handle. Cannot be set | 
|  | for INTERNAL backend services. | 
|  | This is used to calculate the capacity of the group. Can be | 
|  | used in either CONNECTION or UTILIZATION balancing modes. For | 
|  | CONNECTION mode, either maxConnections or | 
|  | maxConnectionsPerEndpoint must be set. | 
|  |  | 
|  | * `max_rate` - | 
|  | (Optional) | 
|  | The max requests per second (RPS) of the group. Cannot be set | 
|  | for INTERNAL backend services. | 
|  | Can be used with either RATE or UTILIZATION balancing modes, | 
|  | but required if RATE mode. Either maxRate or one | 
|  | of maxRatePerInstance or maxRatePerEndpoint, as appropriate for | 
|  | group type, must be set. | 
|  |  | 
|  | * `max_rate_per_instance` - | 
|  | (Optional) | 
|  | The max requests per second (RPS) that a single backend | 
|  | instance can handle. This is used to calculate the capacity of | 
|  | the group. Can be used in either balancing mode. For RATE mode, | 
|  | either maxRate or maxRatePerInstance must be set. Cannot be set | 
|  | for INTERNAL backend services. | 
|  |  | 
|  | * `max_rate_per_endpoint` - | 
|  | (Optional) | 
|  | The max requests per second (RPS) that a single backend network | 
|  | endpoint can handle. This is used to calculate the capacity of | 
|  | the group. Can be used in either balancing mode. For RATE mode, | 
|  | either maxRate or maxRatePerEndpoint must be set. Cannot be set | 
|  | for INTERNAL backend services. | 
|  |  | 
|  | * `max_utilization` - | 
|  | (Optional) | 
|  | Used when balancingMode is UTILIZATION. This ratio defines the | 
|  | CPU utilization target for the group. Valid range is [0.0, 1.0]. | 
|  | Cannot be set for INTERNAL backend services. | 
|  |  | 
|  | <a name="nested_circuit_breakers"></a>The `circuit_breakers` block supports: | 
|  |  | 
|  | * `connect_timeout` - | 
|  | (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) | 
|  | The timeout for new network connections to hosts. | 
|  | Structure is [documented below](#nested_connect_timeout). | 
|  |  | 
|  | * `max_requests_per_connection` - | 
|  | (Optional) | 
|  | Maximum requests for a single backend connection. This parameter | 
|  | is respected by both the HTTP/1.1 and HTTP/2 implementations. If | 
|  | not specified, there is no limit. Setting this parameter to 1 | 
|  | will effectively disable keep alive. | 
|  |  | 
|  | * `max_connections` - | 
|  | (Optional) | 
|  | The maximum number of connections to the backend cluster. | 
|  | Defaults to 1024. | 
|  |  | 
|  | * `max_pending_requests` - | 
|  | (Optional) | 
|  | The maximum number of pending requests to the backend cluster. | 
|  | Defaults to 1024. | 
|  |  | 
|  | * `max_requests` - | 
|  | (Optional) | 
|  | The maximum number of parallel requests to the backend cluster. | 
|  | Defaults to 1024. | 
|  |  | 
|  | * `max_retries` - | 
|  | (Optional) | 
|  | The maximum number of parallel retries to the backend cluster. | 
|  | Defaults to 3. | 
|  |  | 
|  |  | 
|  | <a name="nested_connect_timeout"></a>The `connect_timeout` block supports: | 
|  |  | 
|  | * `seconds` - | 
|  | (Required) | 
|  | Span of time at a resolution of a second. | 
|  | Must be from 0 to 315,576,000,000 inclusive. | 
|  |  | 
|  | * `nanos` - | 
|  | (Optional) | 
|  | Span of time that's a fraction of a second at nanosecond | 
|  | resolution. Durations less than one second are represented | 
|  | with a 0 seconds field and a positive nanos field. Must | 
|  | be from 0 to 999,999,999 inclusive. | 
|  |  | 
|  | <a name="nested_consistent_hash"></a>The `consistent_hash` block supports: | 
|  |  | 
|  | * `http_cookie` - | 
|  | (Optional) | 
|  | Hash is based on HTTP Cookie. This field describes a HTTP cookie | 
|  | that will be used as the hash key for the consistent hash load | 
|  | balancer. If the cookie is not present, it will be generated. | 
|  | This field is applicable if the sessionAffinity is set to HTTP_COOKIE. | 
|  | Structure is [documented below](#nested_http_cookie). | 
|  |  | 
|  | * `http_header_name` - | 
|  | (Optional) | 
|  | The hash based on the value of the specified header field. | 
|  | This field is applicable if the sessionAffinity is set to HEADER_FIELD. | 
|  |  | 
|  | * `minimum_ring_size` - | 
|  | (Optional) | 
|  | The minimum number of virtual nodes to use for the hash ring. | 
|  | Larger ring sizes result in more granular load | 
|  | distributions. If the number of hosts in the load balancing pool | 
|  | is larger than the ring size, each host will be assigned a single | 
|  | virtual node. | 
|  | Defaults to 1024. | 
|  |  | 
|  |  | 
|  | <a name="nested_http_cookie"></a>The `http_cookie` block supports: | 
|  |  | 
|  | * `ttl` - | 
|  | (Optional) | 
|  | Lifetime of the cookie. | 
|  | Structure is [documented below](#nested_ttl). | 
|  |  | 
|  | * `name` - | 
|  | (Optional) | 
|  | Name of the cookie. | 
|  |  | 
|  | * `path` - | 
|  | (Optional) | 
|  | Path to set for the cookie. | 
|  |  | 
|  |  | 
|  | <a name="nested_ttl"></a>The `ttl` block supports: | 
|  |  | 
|  | * `seconds` - | 
|  | (Required) | 
|  | Span of time at a resolution of a second. | 
|  | Must be from 0 to 315,576,000,000 inclusive. | 
|  |  | 
|  | * `nanos` - | 
|  | (Optional) | 
|  | Span of time that's a fraction of a second at nanosecond | 
|  | resolution. Durations less than one second are represented | 
|  | with a 0 seconds field and a positive nanos field. Must | 
|  | be from 0 to 999,999,999 inclusive. | 
|  |  | 
|  | <a name="nested_cdn_policy"></a>The `cdn_policy` block supports: | 
|  |  | 
|  | * `cache_key_policy` - | 
|  | (Optional) | 
|  | The CacheKeyPolicy for this CdnPolicy. | 
|  | Structure is [documented below](#nested_cache_key_policy). | 
|  |  | 
|  | * `signed_url_cache_max_age_sec` - | 
|  | (Optional) | 
|  | Maximum number of seconds the response to a signed URL request | 
|  | will be considered fresh, defaults to 1hr (3600s). After this | 
|  | time period, the response will be revalidated before | 
|  | being served. | 
|  | When serving responses to signed URL requests, Cloud CDN will | 
|  | internally behave as though all responses from this backend had a | 
|  | "Cache-Control: public, max-age=[TTL]" header, regardless of any | 
|  | existing Cache-Control header. The actual headers served in | 
|  | responses will not be altered. | 
|  |  | 
|  | * `default_ttl` - | 
|  | (Optional) | 
|  | Specifies the default TTL for cached content served by this origin for responses | 
|  | that do not have an existing valid TTL (max-age or s-max-age). | 
|  |  | 
|  | * `max_ttl` - | 
|  | (Optional) | 
|  | Specifies the maximum allowed TTL for cached content served by this origin. | 
|  |  | 
|  | * `client_ttl` - | 
|  | (Optional) | 
|  | Specifies the maximum allowed TTL for cached content served by this origin. | 
|  |  | 
|  | * `negative_caching` - | 
|  | (Optional) | 
|  | Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. | 
|  |  | 
|  | * `negative_caching_policy` - | 
|  | (Optional) | 
|  | Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy. | 
|  | Omitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs. | 
|  | Structure is [documented below](#nested_negative_caching_policy). | 
|  |  | 
|  | * `cache_mode` - | 
|  | (Optional) | 
|  | Specifies the cache setting for all responses from this backend. | 
|  | The possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC | 
|  | Possible values are: `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `CACHE_ALL_STATIC`. | 
|  |  | 
|  | * `serve_while_stale` - | 
|  | (Optional) | 
|  | Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. | 
|  |  | 
|  |  | 
|  | <a name="nested_cache_key_policy"></a>The `cache_key_policy` block supports: | 
|  |  | 
|  | * `include_host` - | 
|  | (Optional) | 
|  | If true requests to different hosts will be cached separately. | 
|  |  | 
|  | * `include_protocol` - | 
|  | (Optional) | 
|  | If true, http and https requests will be cached separately. | 
|  |  | 
|  | * `include_query_string` - | 
|  | (Optional) | 
|  | If true, include query string parameters in the cache key | 
|  | according to query_string_whitelist and | 
|  | query_string_blacklist. If neither is set, the entire query | 
|  | string will be included. | 
|  | If false, the query string will be excluded from the cache | 
|  | key entirely. | 
|  |  | 
|  | * `query_string_blacklist` - | 
|  | (Optional) | 
|  | Names of query string parameters to exclude in cache keys. | 
|  | All other parameters will be included. Either specify | 
|  | query_string_whitelist or query_string_blacklist, not both. | 
|  | '&' and '=' will be percent encoded and not treated as | 
|  | delimiters. | 
|  |  | 
|  | * `query_string_whitelist` - | 
|  | (Optional) | 
|  | Names of query string parameters to include in cache keys. | 
|  | All other parameters will be excluded. Either specify | 
|  | query_string_whitelist or query_string_blacklist, not both. | 
|  | '&' and '=' will be percent encoded and not treated as | 
|  | delimiters. | 
|  |  | 
|  | * `include_named_cookies` - | 
|  | (Optional) | 
|  | Names of cookies to include in cache keys. | 
|  |  | 
|  | <a name="nested_negative_caching_policy"></a>The `negative_caching_policy` block supports: | 
|  |  | 
|  | * `code` - | 
|  | (Optional) | 
|  | The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501 | 
|  | can be specified as values, and you cannot specify a status code more than once. | 
|  |  | 
|  | * `ttl` - | 
|  | (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) | 
|  | The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s | 
|  | (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. | 
|  |  | 
|  | <a name="nested_failover_policy"></a>The `failover_policy` block supports: | 
|  |  | 
|  | * `disable_connection_drain_on_failover` - | 
|  | (Optional) | 
|  | On failover or failback, this field indicates whether connection drain | 
|  | will be honored. Setting this to true has the following effect: connections | 
|  | to the old active pool are not drained. Connections to the new active pool | 
|  | use the timeout of 10 min (currently fixed). Setting to false has the | 
|  | following effect: both old and new connections will have a drain timeout | 
|  | of 10 min. | 
|  | This can be set to true only if the protocol is TCP. | 
|  | The default is false. | 
|  |  | 
|  | * `drop_traffic_if_unhealthy` - | 
|  | (Optional) | 
|  | This option is used only when no healthy VMs are detected in the primary | 
|  | and backup instance groups. When set to true, traffic is dropped. When | 
|  | set to false, new connections are sent across all VMs in the primary group. | 
|  | The default is false. | 
|  |  | 
|  | * `failover_ratio` - | 
|  | (Optional) | 
|  | The value of the field must be in [0, 1]. If the ratio of the healthy | 
|  | VMs in the primary backend is at or below this number, traffic arriving | 
|  | at the load-balanced IP will be directed to the failover backend. | 
|  | In case where 'failoverRatio' is not set or all the VMs in the backup | 
|  | backend are unhealthy, the traffic will be directed back to the primary | 
|  | backend in the "force" mode, where traffic will be spread to the healthy | 
|  | VMs with the best effort, or to all VMs when no VM is healthy. | 
|  | This field is only used with l4 load balancing. | 
|  |  | 
|  | <a name="nested_iap"></a>The `iap` block supports: | 
|  |  | 
|  | * `oauth2_client_id` - | 
|  | (Required) | 
|  | OAuth2 Client ID for IAP | 
|  |  | 
|  | * `oauth2_client_secret` - | 
|  | (Required) | 
|  | OAuth2 Client Secret for IAP | 
|  | **Note**: This property is sensitive and will not be displayed in the plan. | 
|  |  | 
|  | * `oauth2_client_secret_sha256` - | 
|  | (Output) | 
|  | OAuth2 Client Secret SHA-256 for IAP | 
|  | **Note**: This property is sensitive and will not be displayed in the plan. | 
|  |  | 
|  | <a name="nested_outlier_detection"></a>The `outlier_detection` block supports: | 
|  |  | 
|  | * `base_ejection_time` - | 
|  | (Optional) | 
|  | The base time that a host is ejected for. The real time is equal to the base | 
|  | time multiplied by the number of times the host has been ejected. Defaults to | 
|  | 30000ms or 30s. | 
|  | Structure is [documented below](#nested_base_ejection_time). | 
|  |  | 
|  | * `consecutive_errors` - | 
|  | (Optional) | 
|  | Number of errors before a host is ejected from the connection pool. When the | 
|  | backend host is accessed over HTTP, a 5xx return code qualifies as an error. | 
|  | Defaults to 5. | 
|  |  | 
|  | * `consecutive_gateway_failure` - | 
|  | (Optional) | 
|  | The number of consecutive gateway failures (502, 503, 504 status or connection | 
|  | errors that are mapped to one of those status codes) before a consecutive | 
|  | gateway failure ejection occurs. Defaults to 5. | 
|  |  | 
|  | * `enforcing_consecutive_errors` - | 
|  | (Optional) | 
|  | The percentage chance that a host will be actually ejected when an outlier | 
|  | status is detected through consecutive 5xx. This setting can be used to disable | 
|  | ejection or to ramp it up slowly. Defaults to 100. | 
|  |  | 
|  | * `enforcing_consecutive_gateway_failure` - | 
|  | (Optional) | 
|  | The percentage chance that a host will be actually ejected when an outlier | 
|  | status is detected through consecutive gateway failures. This setting can be | 
|  | used to disable ejection or to ramp it up slowly. Defaults to 0. | 
|  |  | 
|  | * `enforcing_success_rate` - | 
|  | (Optional) | 
|  | The percentage chance that a host will be actually ejected when an outlier | 
|  | status is detected through success rate statistics. This setting can be used to | 
|  | disable ejection or to ramp it up slowly. Defaults to 100. | 
|  |  | 
|  | * `interval` - | 
|  | (Optional) | 
|  | Time interval between ejection sweep analysis. This can result in both new | 
|  | ejections as well as hosts being returned to service. Defaults to 10 seconds. | 
|  | Structure is [documented below](#nested_interval). | 
|  |  | 
|  | * `max_ejection_percent` - | 
|  | (Optional) | 
|  | Maximum percentage of hosts in the load balancing pool for the backend service | 
|  | that can be ejected. Defaults to 10%. | 
|  |  | 
|  | * `success_rate_minimum_hosts` - | 
|  | (Optional) | 
|  | The number of hosts in a cluster that must have enough request volume to detect | 
|  | success rate outliers. If the number of hosts is less than this setting, outlier | 
|  | detection via success rate statistics is not performed for any host in the | 
|  | cluster. Defaults to 5. | 
|  |  | 
|  | * `success_rate_request_volume` - | 
|  | (Optional) | 
|  | The minimum number of total requests that must be collected in one interval (as | 
|  | defined by the interval duration above) to include this host in success rate | 
|  | based outlier detection. If the volume is lower than this setting, outlier | 
|  | detection via success rate statistics is not performed for that host. Defaults | 
|  | to 100. | 
|  |  | 
|  | * `success_rate_stdev_factor` - | 
|  | (Optional) | 
|  | This factor is used to determine the ejection threshold for success rate outlier | 
|  | ejection. The ejection threshold is the difference between the mean success | 
|  | rate, and the product of this factor and the standard deviation of the mean | 
|  | success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided | 
|  | by a thousand to get a double. That is, if the desired factor is 1.9, the | 
|  | runtime value should be 1900. Defaults to 1900. | 
|  |  | 
|  |  | 
|  | <a name="nested_base_ejection_time"></a>The `base_ejection_time` block supports: | 
|  |  | 
|  | * `seconds` - | 
|  | (Required) | 
|  | Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 | 
|  | inclusive. | 
|  |  | 
|  | * `nanos` - | 
|  | (Optional) | 
|  | Span of time that's a fraction of a second at nanosecond resolution. Durations | 
|  | less than one second are represented with a 0 `seconds` field and a positive | 
|  | `nanos` field. Must be from 0 to 999,999,999 inclusive. | 
|  |  | 
|  | <a name="nested_interval"></a>The `interval` block supports: | 
|  |  | 
|  | * `seconds` - | 
|  | (Required) | 
|  | Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 | 
|  | inclusive. | 
|  |  | 
|  | * `nanos` - | 
|  | (Optional) | 
|  | Span of time that's a fraction of a second at nanosecond resolution. Durations | 
|  | less than one second are represented with a 0 `seconds` field and a positive | 
|  | `nanos` field. Must be from 0 to 999,999,999 inclusive. | 
|  |  | 
|  | <a name="nested_connection_tracking_policy"></a>The `connection_tracking_policy` block supports: | 
|  |  | 
|  | * `idle_timeout_sec` - | 
|  | (Optional) | 
|  | Specifies how long to keep a Connection Tracking entry while there is | 
|  | no matching traffic (in seconds). | 
|  | For L4 ILB the minimum(default) is 10 minutes and maximum is 16 hours. | 
|  | For NLB the minimum(default) is 60 seconds and the maximum is 16 hours. | 
|  |  | 
|  | * `tracking_mode` - | 
|  | (Optional) | 
|  | Specifies the key used for connection tracking. There are two options: | 
|  | `PER_CONNECTION`: The Connection Tracking is performed as per the | 
|  | Connection Key (default Hash Method) for the specific protocol. | 
|  | `PER_SESSION`: The Connection Tracking is performed as per the | 
|  | configured Session Affinity. It matches the configured Session Affinity. | 
|  | Default value is `PER_CONNECTION`. | 
|  | Possible values are: `PER_CONNECTION`, `PER_SESSION`. | 
|  |  | 
|  | * `connection_persistence_on_unhealthy_backends` - | 
|  | (Optional) | 
|  | Specifies connection persistence when backends are unhealthy. | 
|  | If set to `DEFAULT_FOR_PROTOCOL`, the existing connections persist on | 
|  | unhealthy backends only for connection-oriented protocols (TCP and SCTP) | 
|  | and only if the Tracking Mode is PER_CONNECTION (default tracking mode) | 
|  | or the Session Affinity is configured for 5-tuple. They do not persist | 
|  | for UDP. | 
|  | If set to `NEVER_PERSIST`, after a backend becomes unhealthy, the existing | 
|  | connections on the unhealthy backend are never persisted on the unhealthy | 
|  | backend. They are always diverted to newly selected healthy backends | 
|  | (unless all backends are unhealthy). | 
|  | If set to `ALWAYS_PERSIST`, existing connections always persist on | 
|  | unhealthy backends regardless of protocol and session affinity. It is | 
|  | generally not recommended to use this mode overriding the default. | 
|  | Default value is `DEFAULT_FOR_PROTOCOL`. | 
|  | Possible values are: `DEFAULT_FOR_PROTOCOL`, `NEVER_PERSIST`, `ALWAYS_PERSIST`. | 
|  |  | 
|  | * `enable_strong_affinity` - | 
|  | (Optional) | 
|  | Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly. | 
|  |  | 
|  | <a name="nested_log_config"></a>The `log_config` block supports: | 
|  |  | 
|  | * `enable` - | 
|  | (Optional) | 
|  | Whether to enable logging for the load balancer traffic served by this backend service. | 
|  |  | 
|  | * `sample_rate` - | 
|  | (Optional) | 
|  | This field can only be specified if logging is enabled for this backend service. The value of | 
|  | the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer | 
|  | where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. | 
|  | The default value is 1.0. | 
|  |  | 
|  | <a name="nested_subsetting"></a>The `subsetting` block supports: | 
|  |  | 
|  | * `policy` - | 
|  | (Required) | 
|  | The algorithm used for subsetting. | 
|  | Possible values are: `CONSISTENT_HASH_SUBSETTING`. | 
|  |  | 
|  | ## Attributes Reference | 
|  |  | 
|  | In addition to the arguments listed above, the following computed attributes are exported: | 
|  |  | 
|  | * `id` - an identifier for the resource with format `projects/{{project}}/regions/{{region}}/backendServices/{{name}}` | 
|  |  | 
|  | * `creation_timestamp` - | 
|  | Creation timestamp in RFC3339 text format. | 
|  |  | 
|  | * `fingerprint` - | 
|  | Fingerprint of this resource. A hash of the contents stored in this | 
|  | object. This field is used in optimistic locking. | 
|  | * `self_link` - The URI of the created resource. | 
|  |  | 
|  |  | 
|  | ## Timeouts | 
|  |  | 
|  | This resource provides the following | 
|  | [Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options: | 
|  |  | 
|  | - `create` - Default is 20 minutes. | 
|  | - `update` - Default is 20 minutes. | 
|  | - `delete` - Default is 20 minutes. | 
|  |  | 
|  | ## Import | 
|  |  | 
|  |  | 
|  | RegionBackendService can be imported using any of these accepted formats: | 
|  |  | 
|  | * `projects/{{project}}/regions/{{region}}/backendServices/{{name}}` | 
|  | * `{{project}}/{{region}}/{{name}}` | 
|  | * `{{region}}/{{name}}` | 
|  | * `{{name}}` | 
|  |  | 
|  |  | 
|  | In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import RegionBackendService using one of the formats above. For example: | 
|  |  | 
|  | ```tf | 
|  | import { | 
|  | id = "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" | 
|  | to = google_compute_region_backend_service.default | 
|  | } | 
|  | ``` | 
|  |  | 
|  | When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), RegionBackendService can be imported using one of the formats above. For example: | 
|  |  | 
|  | ``` | 
|  | $ terraform import google_compute_region_backend_service.default projects/{{project}}/regions/{{region}}/backendServices/{{name}} | 
|  | $ terraform import google_compute_region_backend_service.default {{project}}/{{region}}/{{name}} | 
|  | $ terraform import google_compute_region_backend_service.default {{region}}/{{name}} | 
|  | $ terraform import google_compute_region_backend_service.default {{name}} | 
|  | ``` | 
|  |  | 
|  | ## User Project Overrides | 
|  |  | 
|  | This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override). |