| --- |
| # ---------------------------------------------------------------------------- |
| # |
| # *** 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: |- |
| UrlMaps are used to route requests to a backend service based on rules |
| that you define for the host and path of an incoming URL. |
| --- |
| |
| # google\_compute\_url\_map |
| |
| UrlMaps are used to route requests to a backend service based on rules |
| that you define for the host and path of an incoming URL. |
| |
| |
| To get more information about UrlMap, see: |
| |
| * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/urlMaps) |
| |
| <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=url_map_bucket_and_service&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 - Url Map Bucket And Service |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "a description" |
| |
| default_service = google_compute_backend_bucket.static.id |
| |
| host_rule { |
| hosts = ["mysite.com"] |
| path_matcher = "mysite" |
| } |
| |
| host_rule { |
| hosts = ["myothersite.com"] |
| path_matcher = "otherpaths" |
| } |
| |
| path_matcher { |
| name = "mysite" |
| default_service = google_compute_backend_bucket.static.id |
| |
| path_rule { |
| paths = ["/home"] |
| service = google_compute_backend_bucket.static.id |
| } |
| |
| path_rule { |
| paths = ["/login"] |
| service = google_compute_backend_service.login.id |
| } |
| |
| path_rule { |
| paths = ["/static"] |
| service = google_compute_backend_bucket.static.id |
| } |
| } |
| |
| path_matcher { |
| name = "otherpaths" |
| default_service = google_compute_backend_bucket.static.id |
| } |
| |
| test { |
| service = google_compute_backend_bucket.static.id |
| host = "example.com" |
| path = "/home" |
| } |
| } |
| |
| resource "google_compute_backend_service" "login" { |
| name = "login" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_http_health_check" "default" { |
| name = "health-check" |
| request_path = "/" |
| check_interval_sec = 1 |
| timeout_sec = 1 |
| } |
| |
| resource "google_compute_backend_bucket" "static" { |
| name = "static-asset-backend-bucket" |
| bucket_name = google_storage_bucket.static.name |
| enable_cdn = true |
| } |
| |
| resource "google_storage_bucket" "static" { |
| name = "static-asset-bucket" |
| location = "US" |
| } |
| ``` |
| <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=url_map_traffic_director_route&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 - Url Map Traffic Director Route |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "a description" |
| default_service = google_compute_backend_service.home.id |
| |
| host_rule { |
| hosts = ["mysite.com"] |
| path_matcher = "allpaths" |
| } |
| |
| path_matcher { |
| name = "allpaths" |
| default_service = google_compute_backend_service.home.id |
| |
| route_rules { |
| priority = 1 |
| header_action { |
| request_headers_to_remove = ["RemoveMe2"] |
| request_headers_to_add { |
| header_name = "AddSomethingElse" |
| header_value = "MyOtherValue" |
| replace = true |
| } |
| response_headers_to_remove = ["RemoveMe3"] |
| response_headers_to_add { |
| header_name = "AddMe" |
| header_value = "MyValue" |
| replace = false |
| } |
| } |
| match_rules { |
| full_path_match = "a full path" |
| header_matches { |
| header_name = "someheader" |
| exact_match = "match this exactly" |
| invert_match = true |
| } |
| ignore_case = true |
| metadata_filters { |
| filter_match_criteria = "MATCH_ANY" |
| filter_labels { |
| name = "PLANET" |
| value = "MARS" |
| } |
| } |
| query_parameter_matches { |
| name = "a query parameter" |
| present_match = true |
| } |
| } |
| url_redirect { |
| host_redirect = "A host" |
| https_redirect = false |
| path_redirect = "some/path" |
| redirect_response_code = "TEMPORARY_REDIRECT" |
| strip_query = true |
| } |
| } |
| } |
| |
| test { |
| service = google_compute_backend_service.home.id |
| host = "hi.com" |
| path = "/home" |
| } |
| } |
| |
| resource "google_compute_backend_service" "home" { |
| name = "home" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_health_check.default.id] |
| load_balancing_scheme = "INTERNAL_SELF_MANAGED" |
| } |
| |
| resource "google_compute_health_check" "default" { |
| name = "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=url_map_traffic_director_route_partial&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 - Url Map Traffic Director Route Partial |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "a description" |
| default_service = google_compute_backend_service.home.id |
| |
| host_rule { |
| hosts = ["mysite.com"] |
| path_matcher = "allpaths" |
| } |
| |
| path_matcher { |
| name = "allpaths" |
| default_service = google_compute_backend_service.home.id |
| |
| route_rules { |
| priority = 1 |
| match_rules { |
| prefix_match = "/someprefix" |
| header_matches { |
| header_name = "someheader" |
| exact_match = "match this exactly" |
| invert_match = true |
| } |
| } |
| url_redirect { |
| path_redirect = "some/path" |
| redirect_response_code = "TEMPORARY_REDIRECT" |
| } |
| } |
| } |
| |
| test { |
| service = google_compute_backend_service.home.id |
| host = "hi.com" |
| path = "/home" |
| } |
| } |
| |
| resource "google_compute_backend_service" "home" { |
| name = "home" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_health_check.default.id] |
| load_balancing_scheme = "INTERNAL_SELF_MANAGED" |
| } |
| |
| resource "google_compute_health_check" "default" { |
| name = "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=url_map_traffic_director_path&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 - Url Map Traffic Director Path |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "a description" |
| default_service = google_compute_backend_service.home.id |
| |
| host_rule { |
| hosts = ["mysite.com"] |
| path_matcher = "allpaths" |
| } |
| |
| path_matcher { |
| name = "allpaths" |
| default_service = google_compute_backend_service.home.id |
| |
| path_rule { |
| paths = ["/home"] |
| route_action { |
| cors_policy { |
| allow_credentials = true |
| allow_headers = ["Allowed content"] |
| allow_methods = ["GET"] |
| allow_origin_regexes = ["abc.*"] |
| allow_origins = ["Allowed origin"] |
| expose_headers = ["Exposed header"] |
| max_age = 30 |
| disabled = false |
| } |
| fault_injection_policy { |
| abort { |
| http_status = 234 |
| percentage = 5.6 |
| } |
| delay { |
| fixed_delay { |
| seconds = 0 |
| nanos = 50000 |
| } |
| percentage = 7.8 |
| } |
| } |
| request_mirror_policy { |
| backend_service = google_compute_backend_service.home.id |
| } |
| retry_policy { |
| num_retries = 4 |
| per_try_timeout { |
| seconds = 30 |
| } |
| retry_conditions = ["5xx", "deadline-exceeded"] |
| } |
| timeout { |
| seconds = 20 |
| nanos = 750000000 |
| } |
| url_rewrite { |
| host_rewrite = "dev.example.com" |
| path_prefix_rewrite = "/v1/api/" |
| } |
| weighted_backend_services { |
| backend_service = google_compute_backend_service.home.id |
| weight = 400 |
| header_action { |
| request_headers_to_remove = ["RemoveMe"] |
| request_headers_to_add { |
| header_name = "AddMe" |
| header_value = "MyValue" |
| replace = true |
| } |
| response_headers_to_remove = ["RemoveMe"] |
| response_headers_to_add { |
| header_name = "AddMe" |
| header_value = "MyValue" |
| replace = false |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| test { |
| service = google_compute_backend_service.home.id |
| host = "hi.com" |
| path = "/home" |
| } |
| } |
| |
| resource "google_compute_backend_service" "home" { |
| name = "home" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_health_check.default.id] |
| load_balancing_scheme = "INTERNAL_SELF_MANAGED" |
| } |
| |
| resource "google_compute_health_check" "default" { |
| name = "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=url_map_traffic_director_path_partial&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 - Url Map Traffic Director Path Partial |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "a description" |
| default_service = google_compute_backend_service.home.id |
| |
| host_rule { |
| hosts = ["mysite.com"] |
| path_matcher = "allpaths" |
| } |
| |
| path_matcher { |
| name = "allpaths" |
| default_service = google_compute_backend_service.home.id |
| |
| path_rule { |
| paths = ["/home"] |
| route_action { |
| cors_policy { |
| allow_credentials = true |
| allow_headers = ["Allowed content"] |
| allow_methods = ["GET"] |
| allow_origin_regexes = ["abc.*"] |
| allow_origins = ["Allowed origin"] |
| expose_headers = ["Exposed header"] |
| max_age = 30 |
| disabled = false |
| } |
| weighted_backend_services { |
| backend_service = google_compute_backend_service.home.id |
| weight = 400 |
| header_action { |
| request_headers_to_remove = ["RemoveMe"] |
| request_headers_to_add { |
| header_name = "AddMe" |
| header_value = "MyValue" |
| replace = true |
| } |
| response_headers_to_remove = ["RemoveMe"] |
| response_headers_to_add { |
| header_name = "AddMe" |
| header_value = "MyValue" |
| replace = false |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| test { |
| service = google_compute_backend_service.home.id |
| host = "hi.com" |
| path = "/home" |
| } |
| } |
| |
| resource "google_compute_backend_service" "home" { |
| name = "home" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_health_check.default.id] |
| load_balancing_scheme = "INTERNAL_SELF_MANAGED" |
| } |
| |
| resource "google_compute_health_check" "default" { |
| name = "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=url_map_header_based_routing&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 - Url Map Header Based Routing |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "header-based routing example" |
| default_service = google_compute_backend_service.default.id |
| |
| host_rule { |
| hosts = ["*"] |
| path_matcher = "allpaths" |
| } |
| |
| path_matcher { |
| name = "allpaths" |
| default_service = google_compute_backend_service.default.id |
| |
| route_rules { |
| priority = 1 |
| service = google_compute_backend_service.service-a.id |
| match_rules { |
| prefix_match = "/" |
| ignore_case = true |
| header_matches { |
| header_name = "abtest" |
| exact_match = "a" |
| } |
| } |
| } |
| route_rules { |
| priority = 2 |
| service = google_compute_backend_service.service-b.id |
| match_rules { |
| ignore_case = true |
| prefix_match = "/" |
| header_matches { |
| header_name = "abtest" |
| exact_match = "b" |
| } |
| } |
| } |
| } |
| } |
| |
| resource "google_compute_backend_service" "default" { |
| name = "default" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_backend_service" "service-a" { |
| name = "service-a" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_backend_service" "service-b" { |
| name = "service-b" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_http_health_check" "default" { |
| name = "health-check" |
| request_path = "/" |
| check_interval_sec = 1 |
| timeout_sec = 1 |
| } |
| ``` |
| <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=url_map_parameter_based_routing&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 - Url Map Parameter Based Routing |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "parameter-based routing example" |
| default_service = google_compute_backend_service.default.id |
| |
| host_rule { |
| hosts = ["*"] |
| path_matcher = "allpaths" |
| } |
| |
| path_matcher { |
| name = "allpaths" |
| default_service = google_compute_backend_service.default.id |
| |
| route_rules { |
| priority = 1 |
| service = google_compute_backend_service.service-a.id |
| match_rules { |
| prefix_match = "/" |
| ignore_case = true |
| query_parameter_matches { |
| name = "abtest" |
| exact_match = "a" |
| } |
| } |
| } |
| route_rules { |
| priority = 2 |
| service = google_compute_backend_service.service-b.id |
| match_rules { |
| ignore_case = true |
| prefix_match = "/" |
| query_parameter_matches { |
| name = "abtest" |
| exact_match = "b" |
| } |
| } |
| } |
| } |
| } |
| |
| resource "google_compute_backend_service" "default" { |
| name = "default" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_backend_service" "service-a" { |
| name = "service-a" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_backend_service" "service-b" { |
| name = "service-b" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_http_health_check" "default" { |
| name = "health-check" |
| request_path = "/" |
| check_interval_sec = 1 |
| timeout_sec = 1 |
| } |
| ``` |
| <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=url_map_path_template_match&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 - Url Map Path Template Match |
| |
| |
| ```hcl |
| resource "google_compute_url_map" "urlmap" { |
| name = "urlmap" |
| description = "a description" |
| |
| default_service = google_compute_backend_bucket.static.id |
| |
| host_rule { |
| hosts = ["mysite.com"] |
| path_matcher = "mysite" |
| } |
| |
| path_matcher { |
| name = "mysite" |
| default_service = google_compute_backend_bucket.static.id |
| |
| route_rules { |
| match_rules { |
| path_template_match = "/xyzwebservices/v2/xyz/users/{username=*}/carts/{cartid=**}" |
| } |
| service = google_compute_backend_service.cart-backend.id |
| priority = 1 |
| route_action { |
| url_rewrite { |
| path_template_rewrite = "/{username}-{cartid}/" |
| } |
| } |
| } |
| |
| route_rules { |
| match_rules { |
| path_template_match = "/xyzwebservices/v2/xyz/users/*/accountinfo/*" |
| } |
| service = google_compute_backend_service.user-backend.id |
| priority = 2 |
| } |
| } |
| } |
| |
| resource "google_compute_backend_service" "cart-backend" { |
| name = "cart-service" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| load_balancing_scheme = "EXTERNAL_MANAGED" |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_backend_service" "user-backend" { |
| name = "user-service" |
| port_name = "http" |
| protocol = "HTTP" |
| timeout_sec = 10 |
| load_balancing_scheme = "EXTERNAL_MANAGED" |
| |
| health_checks = [google_compute_http_health_check.default.id] |
| } |
| |
| resource "google_compute_http_health_check" "default" { |
| name = "health-check" |
| request_path = "/" |
| check_interval_sec = 1 |
| timeout_sec = 1 |
| } |
| |
| resource "google_compute_backend_bucket" "static" { |
| name = "static-asset-backend-bucket" |
| bucket_name = google_storage_bucket.static.name |
| enable_cdn = true |
| } |
| |
| resource "google_storage_bucket" "static" { |
| name = "static-asset-bucket" |
| location = "US" |
| } |
| ``` |
| |
| ## 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. |
| |
| |
| - - - |
| |
| |
| * `default_service` - |
| (Optional) |
| The backend service or backend bucket to use when none of the given rules match. |
| |
| * `description` - |
| (Optional) |
| An optional description of this resource. Provide this property when you create |
| the resource. |
| |
| * `header_action` - |
| (Optional) |
| Specifies changes to request and response headers that need to take effect for |
| the selected backendService. The headerAction specified here take effect after |
| headerAction specified under pathMatcher. |
| Structure is [documented below](#nested_header_action). |
| |
| * `host_rule` - |
| (Optional) |
| The list of HostRules to use against the URL. |
| Structure is [documented below](#nested_host_rule). |
| |
| * `path_matcher` - |
| (Optional) |
| The list of named PathMatchers to use against the URL. |
| Structure is [documented below](#nested_path_matcher). |
| |
| * `test` - |
| (Optional) |
| The list of expected URL mapping tests. Request to update this UrlMap will |
| succeed only if all of the test cases pass. You can specify a maximum of 100 |
| tests per UrlMap. |
| Structure is [documented below](#nested_test). |
| |
| * `default_url_redirect` - |
| (Optional) |
| When none of the specified hostRules match, the request is redirected to a URL specified |
| by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or |
| defaultRouteAction must not be set. |
| Structure is [documented below](#nested_default_url_redirect). |
| |
| * `default_route_action` - |
| (Optional) |
| defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions |
| like URL rewrites, header transformations, etc. prior to forwarding the request to the selected backend. |
| If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService |
| is set, defaultRouteAction cannot contain any weightedBackendServices. |
| Only one of defaultRouteAction or defaultUrlRedirect must be set. |
| Structure is [documented below](#nested_default_route_action). |
| |
| * `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_header_action"></a>The `header_action` block supports: |
| |
| * `request_headers_to_add` - |
| (Optional) |
| Headers to add to a matching request prior to forwarding the request to the |
| backendService. |
| Structure is [documented below](#nested_request_headers_to_add). |
| |
| * `request_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the request |
| prior to forwarding the request to the backendService. |
| |
| * `response_headers_to_add` - |
| (Optional) |
| Headers to add the response prior to sending the response back to the client. |
| Structure is [documented below](#nested_response_headers_to_add). |
| |
| * `response_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the response |
| prior to sending the response back to the client. |
| |
| |
| <a name="nested_request_headers_to_add"></a>The `request_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_response_headers_to_add"></a>The `response_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_host_rule"></a>The `host_rule` block supports: |
| |
| * `description` - |
| (Optional) |
| An optional description of this resource. Provide this property when you create |
| the resource. |
| |
| * `hosts` - |
| (Required) |
| The list of host patterns to match. They must be valid hostnames, except * will |
| match any string of ([a-z0-9-.]*). In that case, * must be the first character |
| and must be followed in the pattern by either - or .. |
| |
| * `path_matcher` - |
| (Required) |
| The name of the PathMatcher to use to match the path portion of the URL if the |
| hostRule matches the URL's host portion. |
| |
| <a name="nested_path_matcher"></a>The `path_matcher` block supports: |
| |
| * `default_service` - |
| (Optional) |
| The backend service or backend bucket to use when none of the given paths match. |
| |
| * `description` - |
| (Optional) |
| An optional description of this resource. Provide this property when you create |
| the resource. |
| |
| * `header_action` - |
| (Optional) |
| Specifies changes to request and response headers that need to take effect for |
| the selected backendService. HeaderAction specified here are applied after the |
| matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap |
| Structure is [documented below](#nested_header_action). |
| |
| * `name` - |
| (Required) |
| The name to which this PathMatcher is referred by the HostRule. |
| |
| * `path_rule` - |
| (Optional) |
| The list of path rules. Use this list instead of routeRules when routing based |
| on simple path matching is all that's required. The order by which path rules |
| are specified does not matter. Matches are always done on the longest-path-first |
| basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* |
| irrespective of the order in which those paths appear in this list. Within a |
| given pathMatcher, only one of pathRules or routeRules must be set. |
| Structure is [documented below](#nested_path_rule). |
| |
| * `route_rules` - |
| (Optional) |
| The list of ordered HTTP route rules. Use this list instead of pathRules when |
| advanced route matching and routing actions are desired. The order of specifying |
| routeRules matters: the first rule that matches will cause its specified routing |
| action to take effect. Within a given pathMatcher, only one of pathRules or |
| routeRules must be set. routeRules are not supported in UrlMaps intended for |
| External load balancers. |
| Structure is [documented below](#nested_route_rules). |
| |
| * `default_url_redirect` - |
| (Optional) |
| When none of the specified hostRules match, the request is redirected to a URL specified |
| by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or |
| defaultRouteAction must not be set. |
| Structure is [documented below](#nested_default_url_redirect). |
| |
| * `default_route_action` - |
| (Optional) |
| defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs |
| advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request |
| to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. |
| Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. |
| Only one of defaultRouteAction or defaultUrlRedirect must be set. |
| Structure is [documented below](#nested_default_route_action). |
| |
| |
| <a name="nested_header_action"></a>The `header_action` block supports: |
| |
| * `request_headers_to_add` - |
| (Optional) |
| Headers to add to a matching request prior to forwarding the request to the |
| backendService. |
| Structure is [documented below](#nested_request_headers_to_add). |
| |
| * `request_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the request |
| prior to forwarding the request to the backendService. |
| |
| * `response_headers_to_add` - |
| (Optional) |
| Headers to add the response prior to sending the response back to the client. |
| Structure is [documented below](#nested_response_headers_to_add). |
| |
| * `response_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the response |
| prior to sending the response back to the client. |
| |
| |
| <a name="nested_request_headers_to_add"></a>The `request_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_response_headers_to_add"></a>The `response_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_path_rule"></a>The `path_rule` block supports: |
| |
| * `service` - |
| (Optional) |
| The backend service or backend bucket to use if any of the given paths match. |
| |
| * `paths` - |
| (Required) |
| The list of path patterns to match. Each must start with / and the only place a |
| \* is allowed is at the end following a /. The string fed to the path matcher |
| does not include any text after the first ? or #, and those chars are not |
| allowed here. |
| |
| * `route_action` - |
| (Optional) |
| In response to a matching path, the load balancer performs advanced routing |
| actions like URL rewrites, header transformations, etc. prior to forwarding the |
| request to the selected backend. If routeAction specifies any |
| weightedBackendServices, service must not be set. Conversely if service is set, |
| routeAction cannot contain any weightedBackendServices. Only one of routeAction |
| or urlRedirect must be set. |
| Structure is [documented below](#nested_route_action). |
| |
| * `url_redirect` - |
| (Optional) |
| When a path pattern is matched, the request is redirected to a URL specified |
| by urlRedirect. If urlRedirect is specified, service or routeAction must not |
| be set. |
| Structure is [documented below](#nested_url_redirect). |
| |
| |
| <a name="nested_route_action"></a>The `route_action` block supports: |
| |
| * `cors_policy` - |
| (Optional) |
| The specification for allowing client side cross-origin requests. Please see W3C |
| Recommendation for Cross Origin Resource Sharing |
| Structure is [documented below](#nested_cors_policy). |
| |
| * `fault_injection_policy` - |
| (Optional) |
| The specification for fault injection introduced into traffic to test the |
| resiliency of clients to backend service failure. As part of fault injection, |
| when clients send requests to a backend service, delays can be introduced by |
| Loadbalancer on a percentage of requests before sending those request to the |
| backend service. Similarly requests from clients can be aborted by the |
| Loadbalancer for a percentage of requests. timeout and retry_policy will be |
| ignored by clients that are configured with a fault_injection_policy. |
| Structure is [documented below](#nested_fault_injection_policy). |
| |
| * `request_mirror_policy` - |
| (Optional) |
| Specifies the policy on how requests intended for the route's backends are |
| shadowed to a separate mirrored backend service. Loadbalancer does not wait for |
| responses from the shadow service. Prior to sending traffic to the shadow |
| service, the host / authority header is suffixed with -shadow. |
| Structure is [documented below](#nested_request_mirror_policy). |
| |
| * `retry_policy` - |
| (Optional) |
| Specifies the retry policy associated with this route. |
| Structure is [documented below](#nested_retry_policy). |
| |
| * `timeout` - |
| (Optional) |
| Specifies the timeout for the selected route. Timeout is computed from the time |
| the request is has been fully processed (i.e. end-of-stream) up until the |
| response has been completely processed. Timeout includes all retries. If not |
| specified, the default value is 15 seconds. |
| Structure is [documented below](#nested_timeout). |
| |
| * `url_rewrite` - |
| (Optional) |
| The spec to modify the URL of the request, prior to forwarding the request to |
| the matched service |
| Structure is [documented below](#nested_url_rewrite). |
| |
| * `weighted_backend_services` - |
| (Optional) |
| A list of weighted backend services to send traffic to when a route match |
| occurs. The weights determine the fraction of traffic that flows to their |
| corresponding backend service. If all traffic needs to go to a single backend |
| service, there must be one weightedBackendService with weight set to a non 0 |
| number. Once a backendService is identified and before forwarding the request to |
| the backend service, advanced routing actions like Url rewrites and header |
| transformations are applied depending on additional settings specified in this |
| HttpRouteAction. |
| Structure is [documented below](#nested_weighted_backend_services). |
| |
| |
| <a name="nested_cors_policy"></a>The `cors_policy` block supports: |
| |
| * `allow_credentials` - |
| (Optional) |
| In response to a preflight request, setting this to true indicates that the |
| actual request can include user credentials. This translates to the Access- |
| Control-Allow-Credentials header. Defaults to false. |
| |
| * `allow_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Headers header. |
| |
| * `allow_methods` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Methods header. |
| |
| * `allow_origin_regexes` - |
| (Optional) |
| Specifies the regular expression patterns that match allowed origins. For |
| regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript |
| An origin is allowed if it matches either allow_origins or allow_origin_regex. |
| |
| * `allow_origins` - |
| (Optional) |
| Specifies the list of origins that will be allowed to do CORS requests. An |
| origin is allowed if it matches either allow_origins or allow_origin_regex. |
| |
| * `disabled` - |
| (Required) |
| If true, specifies the CORS policy is disabled. |
| |
| * `expose_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Expose-Headers header. |
| |
| * `max_age` - |
| (Optional) |
| Specifies how long the results of a preflight request can be cached. This |
| translates to the content for the Access-Control-Max-Age header. |
| |
| <a name="nested_fault_injection_policy"></a>The `fault_injection_policy` block supports: |
| |
| * `abort` - |
| (Optional) |
| The specification for how client requests are aborted as part of fault |
| injection. |
| Structure is [documented below](#nested_abort). |
| |
| * `delay` - |
| (Optional) |
| The specification for how client requests are delayed as part of fault |
| injection, before being sent to a backend service. |
| Structure is [documented below](#nested_delay). |
| |
| |
| <a name="nested_abort"></a>The `abort` block supports: |
| |
| * `http_status` - |
| (Required) |
| The HTTP status code used to abort the request. The value must be between 200 |
| and 599 inclusive. |
| |
| * `percentage` - |
| (Required) |
| The percentage of traffic (connections/operations/requests) which will be |
| aborted as part of fault injection. The value must be between 0.0 and 100.0 |
| inclusive. |
| |
| <a name="nested_delay"></a>The `delay` block supports: |
| |
| * `fixed_delay` - |
| (Required) |
| Specifies the value of the fixed delay interval. |
| Structure is [documented below](#nested_fixed_delay). |
| |
| * `percentage` - |
| (Required) |
| The percentage of traffic (connections/operations/requests) on which delay will |
| be introduced as part of fault injection. The value must be between 0.0 and |
| 100.0 inclusive. |
| |
| |
| <a name="nested_fixed_delay"></a>The `fixed_delay` block supports: |
| |
| * `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. |
| |
| * `seconds` - |
| (Required) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 |
| inclusive. |
| |
| <a name="nested_request_mirror_policy"></a>The `request_mirror_policy` block supports: |
| |
| * `backend_service` - |
| (Required) |
| The BackendService resource being mirrored to. |
| |
| <a name="nested_retry_policy"></a>The `retry_policy` block supports: |
| |
| * `num_retries` - |
| (Optional) |
| Specifies the allowed number retries. This number must be > 0. |
| |
| * `per_try_timeout` - |
| (Optional) |
| Specifies a non-zero timeout per retry attempt. |
| Structure is [documented below](#nested_per_try_timeout). |
| |
| * `retry_conditions` - |
| (Optional) |
| Specifies one or more conditions when this retry rule applies. Valid values are: |
| * 5xx: Loadbalancer will attempt a retry if the backend service responds with |
| any 5xx response code, or if the backend service does not respond at all, |
| example: disconnects, reset, read timeout, connection failure, and refused |
| streams. |
| * gateway-error: Similar to 5xx, but only applies to response codes |
| 502, 503 or 504. |
| * connect-failure: Loadbalancer will retry on failures |
| connecting to backend services, for example due to connection timeouts. |
| * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. |
| Currently the only retriable error supported is 409. |
| * refused-stream: Loadbalancer will retry if the backend service resets the stream with a |
| REFUSED_STREAM error code. This reset type indicates that it is safe to retry. |
| * cancelled: Loadbalancer will retry if the gRPC status code in the response |
| header is set to cancelled |
| * deadline-exceeded: Loadbalancer will retry if the |
| gRPC status code in the response header is set to deadline-exceeded |
| * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response |
| header is set to resource-exhausted |
| * unavailable: Loadbalancer will retry if |
| the gRPC status code in the response header is set to unavailable |
| |
| |
| <a name="nested_per_try_timeout"></a>The `per_try_timeout` block supports: |
| |
| * `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. |
| |
| * `seconds` - |
| (Required) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 |
| inclusive. |
| |
| <a name="nested_timeout"></a>The `timeout` block supports: |
| |
| * `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. |
| |
| * `seconds` - |
| (Required) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 |
| inclusive. |
| |
| <a name="nested_url_rewrite"></a>The `url_rewrite` block supports: |
| |
| * `host_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected service, the request's host |
| header is replaced with contents of hostRewrite. The value must be between 1 and |
| 255 characters. |
| |
| * `path_prefix_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected backend service, the matching |
| portion of the request's path is replaced by pathPrefixRewrite. The value must |
| be between 1 and 1024 characters. |
| |
| <a name="nested_weighted_backend_services"></a>The `weighted_backend_services` block supports: |
| |
| * `backend_service` - |
| (Required) |
| The default BackendService resource. Before |
| forwarding the request to backendService, the loadbalancer applies any relevant |
| headerActions specified as part of this backendServiceWeight. |
| |
| * `header_action` - |
| (Optional) |
| Specifies changes to request and response headers that need to take effect for |
| the selected backendService. headerAction specified here take effect before |
| headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. |
| Structure is [documented below](#nested_header_action). |
| |
| * `weight` - |
| (Required) |
| Specifies the fraction of traffic sent to backendService, computed as weight / |
| (sum of all weightedBackendService weights in routeAction) . The selection of a |
| backend service is determined only for new traffic. Once a user's request has |
| been directed to a backendService, subsequent requests will be sent to the same |
| backendService as determined by the BackendService's session affinity policy. |
| The value must be between 0 and 1000 |
| |
| |
| <a name="nested_header_action"></a>The `header_action` block supports: |
| |
| * `request_headers_to_add` - |
| (Optional) |
| Headers to add to a matching request prior to forwarding the request to the |
| backendService. |
| Structure is [documented below](#nested_request_headers_to_add). |
| |
| * `request_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the request |
| prior to forwarding the request to the backendService. |
| |
| * `response_headers_to_add` - |
| (Optional) |
| Headers to add the response prior to sending the response back to the client. |
| Structure is [documented below](#nested_response_headers_to_add). |
| |
| * `response_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the response |
| prior to sending the response back to the client. |
| |
| |
| <a name="nested_request_headers_to_add"></a>The `request_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_response_headers_to_add"></a>The `response_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_url_redirect"></a>The `url_redirect` block supports: |
| |
| * `host_redirect` - |
| (Optional) |
| The host that will be used in the redirect response instead of the one |
| that was supplied in the request. The value must be between 1 and 255 |
| characters. |
| |
| * `https_redirect` - |
| (Optional) |
| If set to true, the URL scheme in the redirected request is set to https. |
| If set to false, the URL scheme of the redirected request will remain the |
| same as that of the request. This must only be set for UrlMaps used in |
| TargetHttpProxys. Setting this true for TargetHttpsProxy is not |
| permitted. The default is set to false. |
| |
| * `path_redirect` - |
| (Optional) |
| The path that will be used in the redirect response instead of the one |
| that was supplied in the request. pathRedirect cannot be supplied |
| together with prefixRedirect. Supply one alone or neither. If neither is |
| supplied, the path of the original request will be used for the redirect. |
| The value must be between 1 and 1024 characters. |
| |
| * `prefix_redirect` - |
| (Optional) |
| The prefix that replaces the prefixMatch specified in the |
| HttpRouteRuleMatch, retaining the remaining portion of the URL before |
| redirecting the request. prefixRedirect cannot be supplied together with |
| pathRedirect. Supply one alone or neither. If neither is supplied, the |
| path of the original request will be used for the redirect. The value |
| must be between 1 and 1024 characters. |
| |
| * `redirect_response_code` - |
| (Optional) |
| The HTTP Status code to use for this RedirectAction. Supported values are: |
| * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. |
| * FOUND, which corresponds to 302. |
| * SEE_OTHER which corresponds to 303. |
| * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method |
| will be retained. |
| * PERMANENT_REDIRECT, which corresponds to 308. In this case, |
| the request method will be retained. |
| |
| * `strip_query` - |
| (Required) |
| If set to true, any accompanying query portion of the original URL is |
| removed prior to redirecting the request. If set to false, the query |
| portion of the original URL is retained. |
| This field is required to ensure an empty block is not set. The normal default value is false. |
| |
| <a name="nested_route_rules"></a>The `route_rules` block supports: |
| |
| * `priority` - |
| (Required) |
| For routeRules within a given pathMatcher, priority determines the order |
| in which load balancer will interpret routeRules. RouteRules are evaluated |
| in order of priority, from the lowest to highest number. The priority of |
| a rule decreases as its number increases (1, 2, 3, N+1). The first rule |
| that matches the request is applied. |
| You cannot configure two or more routeRules with the same priority. |
| Priority for each rule must be set to a number between 0 and |
| 2147483647 inclusive. |
| Priority numbers can have gaps, which enable you to add or remove rules |
| in the future without affecting the rest of the rules. For example, |
| 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which |
| you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the |
| future without any impact on existing rules. |
| |
| * `service` - |
| (Optional) |
| The backend service resource to which traffic is |
| directed if this rule is matched. If routeAction is additionally specified, |
| advanced routing actions like URL Rewrites, etc. take effect prior to sending |
| the request to the backend. However, if service is specified, routeAction cannot |
| contain any weightedBackendService s. Conversely, if routeAction specifies any |
| weightedBackendServices, service must not be specified. Only one of urlRedirect, |
| service or routeAction.weightedBackendService must be set. |
| |
| * `header_action` - |
| (Optional) |
| Specifies changes to request and response headers that need to take effect for |
| the selected backendService. The headerAction specified here are applied before |
| the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r |
| outeAction.weightedBackendService.backendServiceWeightAction[].headerAction |
| Structure is [documented below](#nested_header_action). |
| |
| * `match_rules` - |
| (Optional) |
| The rules for determining a match. |
| Structure is [documented below](#nested_match_rules). |
| |
| * `route_action` - |
| (Optional) |
| In response to a matching matchRule, the load balancer performs advanced routing |
| actions like URL rewrites, header transformations, etc. prior to forwarding the |
| request to the selected backend. If routeAction specifies any |
| weightedBackendServices, service must not be set. Conversely if service is set, |
| routeAction cannot contain any weightedBackendServices. Only one of routeAction |
| or urlRedirect must be set. |
| Structure is [documented below](#nested_route_action). |
| |
| * `url_redirect` - |
| (Optional) |
| When this rule is matched, the request is redirected to a URL specified by |
| urlRedirect. If urlRedirect is specified, service or routeAction must not be |
| set. |
| Structure is [documented below](#nested_url_redirect). |
| |
| |
| <a name="nested_header_action"></a>The `header_action` block supports: |
| |
| * `request_headers_to_add` - |
| (Optional) |
| Headers to add to a matching request prior to forwarding the request to the |
| backendService. |
| Structure is [documented below](#nested_request_headers_to_add). |
| |
| * `request_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the request |
| prior to forwarding the request to the backendService. |
| |
| * `response_headers_to_add` - |
| (Optional) |
| Headers to add the response prior to sending the response back to the client. |
| Structure is [documented below](#nested_response_headers_to_add). |
| |
| * `response_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the response |
| prior to sending the response back to the client. |
| |
| |
| <a name="nested_request_headers_to_add"></a>The `request_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_response_headers_to_add"></a>The `response_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_match_rules"></a>The `match_rules` block supports: |
| |
| * `full_path_match` - |
| (Optional) |
| For satisfying the matchRule condition, the path of the request must exactly |
| match the value specified in fullPathMatch after removing any query parameters |
| and anchor that may be part of the original URL. FullPathMatch must be between 1 |
| and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must |
| be specified. |
| |
| * `header_matches` - |
| (Optional) |
| Specifies a list of header match criteria, all of which must match corresponding |
| headers in the request. |
| Structure is [documented below](#nested_header_matches). |
| |
| * `ignore_case` - |
| (Optional) |
| Specifies that prefixMatch and fullPathMatch matches are case sensitive. |
| Defaults to false. |
| |
| * `metadata_filters` - |
| (Optional) |
| Opaque filter criteria used by Loadbalancer to restrict routing configuration to |
| a limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS |
| clients present node metadata. If a match takes place, the relevant routing |
| configuration is made available to those proxies. For each metadataFilter in |
| this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the |
| filterLabels must match the corresponding label provided in the metadata. If its |
| filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match |
| with corresponding labels in the provided metadata. metadataFilters specified |
| here can be overrides those specified in ForwardingRule that refers to this |
| UrlMap. metadataFilters only applies to Loadbalancers that have their |
| loadBalancingScheme set to INTERNAL_SELF_MANAGED. |
| Structure is [documented below](#nested_metadata_filters). |
| |
| * `prefix_match` - |
| (Optional) |
| For satisfying the matchRule condition, the request's path must begin with the |
| specified prefixMatch. prefixMatch must begin with a /. The value must be |
| between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or |
| regexMatch must be specified. |
| |
| * `query_parameter_matches` - |
| (Optional) |
| Specifies a list of query parameter match criteria, all of which must match |
| corresponding query parameters in the request. |
| Structure is [documented below](#nested_query_parameter_matches). |
| |
| * `regex_match` - |
| (Optional) |
| For satisfying the matchRule condition, the path of the request must satisfy the |
| regular expression specified in regexMatch after removing any query parameters |
| and anchor supplied with the original URL. For regular expression grammar please |
| see en.cppreference.com/w/cpp/regex/ecmascript Only one of prefixMatch, |
| fullPathMatch or regexMatch must be specified. |
| |
| * `path_template_match` - |
| (Optional) |
| For satisfying the matchRule condition, the path of the request |
| must match the wildcard pattern specified in pathTemplateMatch |
| after removing any query parameters and anchor that may be part |
| of the original URL. |
| pathTemplateMatch must be between 1 and 255 characters |
| (inclusive). The pattern specified by pathTemplateMatch may |
| have at most 5 wildcard operators and at most 5 variable |
| captures in total. |
| |
| |
| <a name="nested_header_matches"></a>The `header_matches` block supports: |
| |
| * `exact_match` - |
| (Optional) |
| The value should exactly match contents of exactMatch. Only one of exactMatch, |
| prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. |
| |
| * `header_name` - |
| (Required) |
| The name of the HTTP header to match. For matching against the HTTP request's |
| authority, use a headerMatch with the header name ":authority". For matching a |
| request's method, use the headerName ":method". |
| |
| * `invert_match` - |
| (Optional) |
| If set to false, the headerMatch is considered a match if the match criteria |
| above are met. If set to true, the headerMatch is considered a match if the |
| match criteria above are NOT met. Defaults to false. |
| |
| * `prefix_match` - |
| (Optional) |
| The value of the header must start with the contents of prefixMatch. Only one of |
| exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch |
| must be set. |
| |
| * `present_match` - |
| (Optional) |
| A header with the contents of headerName must exist. The match takes place |
| whether or not the request's header has a value or not. Only one of exactMatch, |
| prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. |
| |
| * `range_match` - |
| (Optional) |
| The header value must be an integer and its value must be in the range specified |
| in rangeMatch. If the header does not contain an integer, number or is empty, |
| the match fails. For example for a range [-5, 0] - -3 will match. - 0 will |
| not match. - 0.25 will not match. - -3someString will not match. Only one of |
| exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch |
| must be set. |
| Structure is [documented below](#nested_range_match). |
| |
| * `regex_match` - |
| (Optional) |
| The value of the header must match the regular expression specified in |
| regexMatch. For regular expression grammar, please see: |
| en.cppreference.com/w/cpp/regex/ecmascript For matching against a port |
| specified in the HTTP request, use a headerMatch with headerName set to PORT and |
| a regular expression that satisfies the RFC2616 Host header's port specifier. |
| Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or |
| rangeMatch must be set. |
| |
| * `suffix_match` - |
| (Optional) |
| The value of the header must end with the contents of suffixMatch. Only one of |
| exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch |
| must be set. |
| |
| |
| <a name="nested_range_match"></a>The `range_match` block supports: |
| |
| * `range_end` - |
| (Required) |
| The end of the range (exclusive). |
| |
| * `range_start` - |
| (Required) |
| The start of the range (inclusive). |
| |
| <a name="nested_metadata_filters"></a>The `metadata_filters` block supports: |
| |
| * `filter_labels` - |
| (Required) |
| The list of label value pairs that must match labels in the provided metadata |
| based on filterMatchCriteria This list must not be empty and can have at the |
| most 64 entries. |
| Structure is [documented below](#nested_filter_labels). |
| |
| * `filter_match_criteria` - |
| (Required) |
| Specifies how individual filterLabel matches within the list of filterLabels |
| contribute towards the overall metadataFilter match. Supported values are: |
| - MATCH_ANY: At least one of the filterLabels must have a matching label in the |
| provided metadata. |
| - MATCH_ALL: All filterLabels must have matching labels in |
| the provided metadata. |
| Possible values are: `MATCH_ALL`, `MATCH_ANY`. |
| |
| |
| <a name="nested_filter_labels"></a>The `filter_labels` block supports: |
| |
| * `name` - |
| (Required) |
| Name of metadata label. The name can have a maximum length of 1024 characters |
| and must be at least 1 character long. |
| |
| * `value` - |
| (Required) |
| The value of the label must match the specified value. value can have a maximum |
| length of 1024 characters. |
| |
| <a name="nested_query_parameter_matches"></a>The `query_parameter_matches` block supports: |
| |
| * `exact_match` - |
| (Optional) |
| The queryParameterMatch matches if the value of the parameter exactly matches |
| the contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch |
| must be set. |
| |
| * `name` - |
| (Required) |
| The name of the query parameter to match. The query parameter must exist in the |
| request, in the absence of which the request match fails. |
| |
| * `present_match` - |
| (Optional) |
| Specifies that the queryParameterMatch matches if the request contains the query |
| parameter, irrespective of whether the parameter has a value or not. Only one of |
| presentMatch, exactMatch and regexMatch must be set. |
| |
| * `regex_match` - |
| (Optional) |
| The queryParameterMatch matches if the value of the parameter matches the |
| regular expression specified by regexMatch. For the regular expression grammar, |
| please see en.cppreference.com/w/cpp/regex/ecmascript Only one of presentMatch, |
| exactMatch and regexMatch must be set. |
| |
| <a name="nested_route_action"></a>The `route_action` block supports: |
| |
| * `cors_policy` - |
| (Optional) |
| The specification for allowing client side cross-origin requests. Please see W3C |
| Recommendation for Cross Origin Resource Sharing |
| Structure is [documented below](#nested_cors_policy). |
| |
| * `fault_injection_policy` - |
| (Optional) |
| The specification for fault injection introduced into traffic to test the |
| resiliency of clients to backend service failure. As part of fault injection, |
| when clients send requests to a backend service, delays can be introduced by |
| Loadbalancer on a percentage of requests before sending those request to the |
| backend service. Similarly requests from clients can be aborted by the |
| Loadbalancer for a percentage of requests. timeout and retry_policy will be |
| ignored by clients that are configured with a fault_injection_policy. |
| Structure is [documented below](#nested_fault_injection_policy). |
| |
| * `request_mirror_policy` - |
| (Optional) |
| Specifies the policy on how requests intended for the route's backends are |
| shadowed to a separate mirrored backend service. Loadbalancer does not wait for |
| responses from the shadow service. Prior to sending traffic to the shadow |
| service, the host / authority header is suffixed with -shadow. |
| Structure is [documented below](#nested_request_mirror_policy). |
| |
| * `retry_policy` - |
| (Optional) |
| Specifies the retry policy associated with this route. |
| Structure is [documented below](#nested_retry_policy). |
| |
| * `timeout` - |
| (Optional) |
| Specifies the timeout for the selected route. Timeout is computed from the time |
| the request is has been fully processed (i.e. end-of-stream) up until the |
| response has been completely processed. Timeout includes all retries. If not |
| specified, the default value is 15 seconds. |
| Structure is [documented below](#nested_timeout). |
| |
| * `url_rewrite` - |
| (Optional) |
| The spec to modify the URL of the request, prior to forwarding the request to |
| the matched service |
| Structure is [documented below](#nested_url_rewrite). |
| |
| * `weighted_backend_services` - |
| (Optional) |
| A list of weighted backend services to send traffic to when a route match |
| occurs. The weights determine the fraction of traffic that flows to their |
| corresponding backend service. If all traffic needs to go to a single backend |
| service, there must be one weightedBackendService with weight set to a non 0 |
| number. Once a backendService is identified and before forwarding the request to |
| the backend service, advanced routing actions like Url rewrites and header |
| transformations are applied depending on additional settings specified in this |
| HttpRouteAction. |
| Structure is [documented below](#nested_weighted_backend_services). |
| |
| |
| <a name="nested_cors_policy"></a>The `cors_policy` block supports: |
| |
| * `allow_credentials` - |
| (Optional) |
| In response to a preflight request, setting this to true indicates that the |
| actual request can include user credentials. This translates to the Access- |
| Control-Allow-Credentials header. Defaults to false. |
| |
| * `allow_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Headers header. |
| |
| * `allow_methods` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Methods header. |
| |
| * `allow_origin_regexes` - |
| (Optional) |
| Specifies the regular expression patterns that match allowed origins. For |
| regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript |
| An origin is allowed if it matches either allow_origins or allow_origin_regex. |
| |
| * `allow_origins` - |
| (Optional) |
| Specifies the list of origins that will be allowed to do CORS requests. An |
| origin is allowed if it matches either allow_origins or allow_origin_regex. |
| |
| * `disabled` - |
| (Optional) |
| If true, specifies the CORS policy is disabled. |
| which indicates that the CORS policy is in effect. Defaults to false. |
| |
| * `expose_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Expose-Headers header. |
| |
| * `max_age` - |
| (Optional) |
| Specifies how long the results of a preflight request can be cached. This |
| translates to the content for the Access-Control-Max-Age header. |
| |
| <a name="nested_fault_injection_policy"></a>The `fault_injection_policy` block supports: |
| |
| * `abort` - |
| (Optional) |
| The specification for how client requests are aborted as part of fault |
| injection. |
| Structure is [documented below](#nested_abort). |
| |
| * `delay` - |
| (Optional) |
| The specification for how client requests are delayed as part of fault |
| injection, before being sent to a backend service. |
| Structure is [documented below](#nested_delay). |
| |
| |
| <a name="nested_abort"></a>The `abort` block supports: |
| |
| * `http_status` - |
| (Optional) |
| The HTTP status code used to abort the request. The value must be between 200 |
| and 599 inclusive. |
| |
| * `percentage` - |
| (Optional) |
| The percentage of traffic (connections/operations/requests) which will be |
| aborted as part of fault injection. The value must be between 0.0 and 100.0 |
| inclusive. |
| |
| <a name="nested_delay"></a>The `delay` block supports: |
| |
| * `fixed_delay` - |
| (Optional) |
| Specifies the value of the fixed delay interval. |
| Structure is [documented below](#nested_fixed_delay). |
| |
| * `percentage` - |
| (Optional) |
| The percentage of traffic (connections/operations/requests) on which delay will |
| be introduced as part of fault injection. The value must be between 0.0 and |
| 100.0 inclusive. |
| |
| |
| <a name="nested_fixed_delay"></a>The `fixed_delay` block supports: |
| |
| * `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. |
| |
| * `seconds` - |
| (Required) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 |
| inclusive. |
| |
| <a name="nested_request_mirror_policy"></a>The `request_mirror_policy` block supports: |
| |
| * `backend_service` - |
| (Required) |
| The BackendService resource being mirrored to. |
| |
| <a name="nested_retry_policy"></a>The `retry_policy` block supports: |
| |
| * `num_retries` - |
| (Required) |
| Specifies the allowed number retries. This number must be > 0. |
| |
| * `per_try_timeout` - |
| (Optional) |
| Specifies a non-zero timeout per retry attempt. |
| If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction |
| is not set, will use the largest timeout among all backend services associated with the route. |
| Structure is [documented below](#nested_per_try_timeout). |
| |
| * `retry_conditions` - |
| (Optional) |
| Specfies one or more conditions when this retry rule applies. Valid values are: |
| * 5xx: Loadbalancer will attempt a retry if the backend service responds with |
| any 5xx response code, or if the backend service does not respond at all, |
| example: disconnects, reset, read timeout, connection failure, and refused |
| streams. |
| * gateway-error: Similar to 5xx, but only applies to response codes |
| 502, 503 or 504. |
| * connect-failure: Loadbalancer will retry on failures |
| connecting to backend services, for example due to connection timeouts. |
| * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. |
| Currently the only retriable error supported is 409. |
| * refused-stream: Loadbalancer will retry if the backend service resets the stream with a |
| REFUSED_STREAM error code. This reset type indicates that it is safe to retry. |
| * cancelled: Loadbalancer will retry if the gRPC status code in the response |
| header is set to cancelled |
| * deadline-exceeded: Loadbalancer will retry if the |
| gRPC status code in the response header is set to deadline-exceeded |
| * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response |
| header is set to resource-exhausted |
| * unavailable: Loadbalancer will retry if the gRPC status code in |
| the response header is set to unavailable |
| |
| |
| <a name="nested_per_try_timeout"></a>The `per_try_timeout` block supports: |
| |
| * `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. |
| |
| * `seconds` - |
| (Required) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 |
| inclusive. |
| |
| <a name="nested_timeout"></a>The `timeout` block supports: |
| |
| * `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. |
| |
| * `seconds` - |
| (Required) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 |
| inclusive. |
| |
| <a name="nested_url_rewrite"></a>The `url_rewrite` block supports: |
| |
| * `host_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected service, the request's host |
| header is replaced with contents of hostRewrite. The value must be between 1 and |
| 255 characters. |
| |
| * `path_prefix_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected backend service, the matching |
| portion of the request's path is replaced by pathPrefixRewrite. The value must |
| be between 1 and 1024 characters. |
| |
| * `path_template_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected origin, if the |
| request matched a pathTemplateMatch, the matching portion of the |
| request's path is replaced re-written using the pattern specified |
| by pathTemplateRewrite. |
| pathTemplateRewrite must be between 1 and 255 characters |
| (inclusive), must start with a '/', and must only use variables |
| captured by the route's pathTemplate matchers. |
| pathTemplateRewrite may only be used when all of a route's |
| MatchRules specify pathTemplate. |
| Only one of pathPrefixRewrite and pathTemplateRewrite may be |
| specified. |
| |
| <a name="nested_weighted_backend_services"></a>The `weighted_backend_services` block supports: |
| |
| * `backend_service` - |
| (Required) |
| The default BackendService resource. Before |
| forwarding the request to backendService, the loadbalancer applies any relevant |
| headerActions specified as part of this backendServiceWeight. |
| |
| * `header_action` - |
| (Optional) |
| Specifies changes to request and response headers that need to take effect for |
| the selected backendService. headerAction specified here take effect before |
| headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. |
| Structure is [documented below](#nested_header_action). |
| |
| * `weight` - |
| (Required) |
| Specifies the fraction of traffic sent to backendService, computed as weight / |
| (sum of all weightedBackendService weights in routeAction) . The selection of a |
| backend service is determined only for new traffic. Once a user's request has |
| been directed to a backendService, subsequent requests will be sent to the same |
| backendService as determined by the BackendService's session affinity policy. |
| The value must be between 0 and 1000 |
| |
| |
| <a name="nested_header_action"></a>The `header_action` block supports: |
| |
| * `request_headers_to_add` - |
| (Optional) |
| Headers to add to a matching request prior to forwarding the request to the |
| backendService. |
| Structure is [documented below](#nested_request_headers_to_add). |
| |
| * `request_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the request |
| prior to forwarding the request to the backendService. |
| |
| * `response_headers_to_add` - |
| (Optional) |
| Headers to add the response prior to sending the response back to the client. |
| Structure is [documented below](#nested_response_headers_to_add). |
| |
| * `response_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the response |
| prior to sending the response back to the client. |
| |
| |
| <a name="nested_request_headers_to_add"></a>The `request_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_response_headers_to_add"></a>The `response_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Required) |
| The name of the header. |
| |
| * `header_value` - |
| (Required) |
| The value of the header to add. |
| |
| * `replace` - |
| (Required) |
| If false, headerValue is appended to any values that already exist for the |
| header. If true, headerValue is set for the header, discarding any values that |
| were set for that header. |
| |
| <a name="nested_url_redirect"></a>The `url_redirect` block supports: |
| |
| * `host_redirect` - |
| (Optional) |
| The host that will be used in the redirect response instead of the one that was |
| supplied in the request. The value must be between 1 and 255 characters. |
| |
| * `https_redirect` - |
| (Optional) |
| If set to true, the URL scheme in the redirected request is set to https. If set |
| to false, the URL scheme of the redirected request will remain the same as that |
| of the request. This must only be set for UrlMaps used in TargetHttpProxys. |
| Setting this true for TargetHttpsProxy is not permitted. Defaults to false. |
| |
| * `path_redirect` - |
| (Optional) |
| The path that will be used in the redirect response instead of the one that was |
| supplied in the request. Only one of pathRedirect or prefixRedirect must be |
| specified. The value must be between 1 and 1024 characters. |
| |
| * `prefix_redirect` - |
| (Optional) |
| The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, |
| retaining the remaining portion of the URL before redirecting the request. |
| |
| * `redirect_response_code` - |
| (Optional) |
| The HTTP Status code to use for this RedirectAction. Supported values are: |
| * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. |
| * FOUND, which corresponds to 302. |
| * SEE_OTHER which corresponds to 303. |
| * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method will be retained. |
| * PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained. |
| |
| * `strip_query` - |
| (Optional) |
| If set to true, any accompanying query portion of the original URL is removed |
| prior to redirecting the request. If set to false, the query portion of the |
| original URL is retained. Defaults to false. |
| |
| <a name="nested_default_url_redirect"></a>The `default_url_redirect` block supports: |
| |
| * `host_redirect` - |
| (Optional) |
| The host that will be used in the redirect response instead of the one that was |
| supplied in the request. The value must be between 1 and 255 characters. |
| |
| * `https_redirect` - |
| (Optional) |
| If set to true, the URL scheme in the redirected request is set to https. If set to |
| false, the URL scheme of the redirected request will remain the same as that of the |
| request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this |
| true for TargetHttpsProxy is not permitted. The default is set to false. |
| |
| * `path_redirect` - |
| (Optional) |
| The path that will be used in the redirect response instead of the one that was |
| supplied in the request. pathRedirect cannot be supplied together with |
| prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the |
| original request will be used for the redirect. The value must be between 1 and 1024 |
| characters. |
| |
| * `prefix_redirect` - |
| (Optional) |
| The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, |
| retaining the remaining portion of the URL before redirecting the request. |
| prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or |
| neither. If neither is supplied, the path of the original request will be used for |
| the redirect. The value must be between 1 and 1024 characters. |
| |
| * `redirect_response_code` - |
| (Optional) |
| The HTTP Status code to use for this RedirectAction. Supported values are: |
| * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. |
| * FOUND, which corresponds to 302. |
| * SEE_OTHER which corresponds to 303. |
| * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method |
| will be retained. |
| * PERMANENT_REDIRECT, which corresponds to 308. In this case, |
| the request method will be retained. |
| |
| * `strip_query` - |
| (Required) |
| If set to true, any accompanying query portion of the original URL is removed prior |
| to redirecting the request. If set to false, the query portion of the original URL is |
| retained. |
| This field is required to ensure an empty block is not set. The normal default value is false. |
| |
| <a name="nested_default_route_action"></a>The `default_route_action` block supports: |
| |
| * `weighted_backend_services` - |
| (Optional) |
| A list of weighted backend services to send traffic to when a route match occurs. |
| The weights determine the fraction of traffic that flows to their corresponding backend service. |
| If all traffic needs to go to a single backend service, there must be one weightedBackendService |
| with weight set to a non 0 number. |
| Once a backendService is identified and before forwarding the request to the backend service, |
| advanced routing actions like Url rewrites and header transformations are applied depending on |
| additional settings specified in this HttpRouteAction. |
| Structure is [documented below](#nested_weighted_backend_services). |
| |
| * `url_rewrite` - |
| (Optional) |
| The spec to modify the URL of the request, prior to forwarding the request to the matched service. |
| Structure is [documented below](#nested_url_rewrite). |
| |
| * `timeout` - |
| (Optional) |
| Specifies the timeout for the selected route. Timeout is computed from the time the request has been |
| fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. |
| If not specified, will use the largest timeout among all backend services associated with the route. |
| Structure is [documented below](#nested_timeout). |
| |
| * `retry_policy` - |
| (Optional) |
| Specifies the retry policy associated with this route. |
| Structure is [documented below](#nested_retry_policy). |
| |
| * `request_mirror_policy` - |
| (Optional) |
| Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. |
| Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, |
| the host / authority header is suffixed with -shadow. |
| Structure is [documented below](#nested_request_mirror_policy). |
| |
| * `cors_policy` - |
| (Optional) |
| The specification for allowing client side cross-origin requests. Please see |
| [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) |
| Structure is [documented below](#nested_cors_policy). |
| |
| * `fault_injection_policy` - |
| (Optional) |
| The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. |
| As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a |
| percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted |
| by the Loadbalancer for a percentage of requests. |
| timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. |
| Structure is [documented below](#nested_fault_injection_policy). |
| |
| |
| <a name="nested_weighted_backend_services"></a>The `weighted_backend_services` block supports: |
| |
| * `backend_service` - |
| (Optional) |
| The full or partial URL to the default BackendService resource. Before forwarding the |
| request to backendService, the loadbalancer applies any relevant headerActions |
| specified as part of this backendServiceWeight. |
| |
| * `weight` - |
| (Optional) |
| Specifies the fraction of traffic sent to backendService, computed as |
| weight / (sum of all weightedBackendService weights in routeAction) . |
| The selection of a backend service is determined only for new traffic. Once a user's request |
| has been directed to a backendService, subsequent requests will be sent to the same backendService |
| as determined by the BackendService's session affinity policy. |
| The value must be between 0 and 1000 |
| |
| * `header_action` - |
| (Optional) |
| Specifies changes to request and response headers that need to take effect for |
| the selected backendService. |
| headerAction specified here take effect before headerAction in the enclosing |
| HttpRouteRule, PathMatcher and UrlMap. |
| Structure is [documented below](#nested_header_action). |
| |
| |
| <a name="nested_header_action"></a>The `header_action` block supports: |
| |
| * `request_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the request prior to |
| forwarding the request to the backendService. |
| |
| * `request_headers_to_add` - |
| (Optional) |
| Headers to add to a matching request prior to forwarding the request to the backendService. |
| Structure is [documented below](#nested_request_headers_to_add). |
| |
| * `response_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the response prior to sending the |
| response back to the client. |
| |
| * `response_headers_to_add` - |
| (Optional) |
| Headers to add the response prior to sending the response back to the client. |
| Structure is [documented below](#nested_response_headers_to_add). |
| |
| |
| <a name="nested_request_headers_to_add"></a>The `request_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Optional) |
| The name of the header to add. |
| |
| * `header_value` - |
| (Optional) |
| The value of the header to add. |
| |
| * `replace` - |
| (Optional) |
| If false, headerValue is appended to any values that already exist for the header. |
| If true, headerValue is set for the header, discarding any values that were set for that header. |
| |
| <a name="nested_response_headers_to_add"></a>The `response_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Optional) |
| The name of the header to add. |
| |
| * `header_value` - |
| (Optional) |
| The value of the header to add. |
| |
| * `replace` - |
| (Optional) |
| If false, headerValue is appended to any values that already exist for the header. |
| If true, headerValue is set for the header, discarding any values that were set for that header. |
| |
| <a name="nested_url_rewrite"></a>The `url_rewrite` block supports: |
| |
| * `path_prefix_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected backend service, the matching portion of the |
| request's path is replaced by pathPrefixRewrite. |
| The value must be between 1 and 1024 characters. |
| |
| * `host_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected service, the request's host header is replaced |
| with contents of hostRewrite. |
| The value must be between 1 and 255 characters. |
| |
| <a name="nested_timeout"></a>The `timeout` block supports: |
| |
| * `seconds` - |
| (Optional) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. |
| Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
| |
| * `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_retry_policy"></a>The `retry_policy` block supports: |
| |
| * `retry_conditions` - |
| (Optional) |
| Specfies one or more conditions when this retry rule applies. Valid values are: |
| * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, |
| or if the backend service does not respond at all, example: disconnects, reset, read timeout, |
| * connection failure, and refused streams. |
| * gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. |
| * connect-failure: Loadbalancer will retry on failures connecting to backend services, |
| for example due to connection timeouts. |
| * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. |
| Currently the only retriable error supported is 409. |
| * refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. |
| This reset type indicates that it is safe to retry. |
| * cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled |
| * deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded |
| * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted |
| * unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable |
| |
| * `num_retries` - |
| (Optional) |
| Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. |
| |
| * `per_try_timeout` - |
| (Optional) |
| Specifies a non-zero timeout per retry attempt. |
| If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, |
| will use the largest timeout among all backend services associated with the route. |
| Structure is [documented below](#nested_per_try_timeout). |
| |
| |
| <a name="nested_per_try_timeout"></a>The `per_try_timeout` block supports: |
| |
| * `seconds` - |
| (Optional) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. |
| Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
| |
| * `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_request_mirror_policy"></a>The `request_mirror_policy` block supports: |
| |
| * `backend_service` - |
| (Required) |
| The full or partial URL to the BackendService resource being mirrored to. |
| |
| <a name="nested_cors_policy"></a>The `cors_policy` block supports: |
| |
| * `allow_origins` - |
| (Optional) |
| Specifies the list of origins that will be allowed to do CORS requests. |
| An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. |
| |
| * `allow_origin_regexes` - |
| (Optional) |
| Specifies the regular expression patterns that match allowed origins. For regular expression grammar |
| please see en.cppreference.com/w/cpp/regex/ecmascript |
| An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. |
| |
| * `allow_methods` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Methods header. |
| |
| * `allow_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Headers header. |
| |
| * `expose_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Expose-Headers header. |
| |
| * `max_age` - |
| (Optional) |
| Specifies how long results of a preflight request can be cached in seconds. |
| This translates to the Access-Control-Max-Age header. |
| |
| * `allow_credentials` - |
| (Optional) |
| In response to a preflight request, setting this to true indicates that the actual request can include user credentials. |
| This translates to the Access-Control-Allow-Credentials header. |
| |
| * `disabled` - |
| (Optional) |
| If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. |
| |
| <a name="nested_fault_injection_policy"></a>The `fault_injection_policy` block supports: |
| |
| * `delay` - |
| (Optional) |
| The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. |
| Structure is [documented below](#nested_delay). |
| |
| * `abort` - |
| (Optional) |
| The specification for how client requests are aborted as part of fault injection. |
| Structure is [documented below](#nested_abort). |
| |
| |
| <a name="nested_delay"></a>The `delay` block supports: |
| |
| * `fixed_delay` - |
| (Optional) |
| Specifies the value of the fixed delay interval. |
| Structure is [documented below](#nested_fixed_delay). |
| |
| * `percentage` - |
| (Optional) |
| The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. |
| The value must be between 0.0 and 100.0 inclusive. |
| |
| |
| <a name="nested_fixed_delay"></a>The `fixed_delay` block supports: |
| |
| * `seconds` - |
| (Optional) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. |
| Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
| |
| * `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_abort"></a>The `abort` block supports: |
| |
| * `http_status` - |
| (Optional) |
| The HTTP status code used to abort the request. |
| The value must be between 200 and 599 inclusive. |
| |
| * `percentage` - |
| (Optional) |
| The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. |
| The value must be between 0.0 and 100.0 inclusive. |
| |
| <a name="nested_test"></a>The `test` block supports: |
| |
| * `description` - |
| (Optional) |
| Description of this test case. |
| |
| * `host` - |
| (Required) |
| Host portion of the URL. |
| |
| * `path` - |
| (Required) |
| Path portion of the URL. |
| |
| * `service` - |
| (Required) |
| The backend service or backend bucket link that should be matched by this test. |
| |
| <a name="nested_default_url_redirect"></a>The `default_url_redirect` block supports: |
| |
| * `host_redirect` - |
| (Optional) |
| The host that will be used in the redirect response instead of the one that was |
| supplied in the request. The value must be between 1 and 255 characters. |
| |
| * `https_redirect` - |
| (Optional) |
| If set to true, the URL scheme in the redirected request is set to https. If set to |
| false, the URL scheme of the redirected request will remain the same as that of the |
| request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this |
| true for TargetHttpsProxy is not permitted. The default is set to false. |
| |
| * `path_redirect` - |
| (Optional) |
| The path that will be used in the redirect response instead of the one that was |
| supplied in the request. pathRedirect cannot be supplied together with |
| prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the |
| original request will be used for the redirect. The value must be between 1 and 1024 |
| characters. |
| |
| * `prefix_redirect` - |
| (Optional) |
| The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, |
| retaining the remaining portion of the URL before redirecting the request. |
| prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or |
| neither. If neither is supplied, the path of the original request will be used for |
| the redirect. The value must be between 1 and 1024 characters. |
| |
| * `redirect_response_code` - |
| (Optional) |
| The HTTP Status code to use for this RedirectAction. Supported values are: |
| * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. |
| * FOUND, which corresponds to 302. |
| * SEE_OTHER which corresponds to 303. |
| * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method |
| will be retained. |
| * PERMANENT_REDIRECT, which corresponds to 308. In this case, |
| the request method will be retained. |
| |
| * `strip_query` - |
| (Required) |
| If set to true, any accompanying query portion of the original URL is removed prior |
| to redirecting the request. If set to false, the query portion of the original URL is |
| retained. The default is set to false. |
| This field is required to ensure an empty block is not set. The normal default value is false. |
| |
| <a name="nested_default_route_action"></a>The `default_route_action` block supports: |
| |
| * `weighted_backend_services` - |
| (Optional) |
| A list of weighted backend services to send traffic to when a route match occurs. |
| The weights determine the fraction of traffic that flows to their corresponding backend service. |
| If all traffic needs to go to a single backend service, there must be one weightedBackendService |
| with weight set to a non 0 number. |
| Once a backendService is identified and before forwarding the request to the backend service, |
| advanced routing actions like Url rewrites and header transformations are applied depending on |
| additional settings specified in this HttpRouteAction. |
| Structure is [documented below](#nested_weighted_backend_services). |
| |
| * `url_rewrite` - |
| (Optional) |
| The spec to modify the URL of the request, prior to forwarding the request to the matched service. |
| Structure is [documented below](#nested_url_rewrite). |
| |
| * `timeout` - |
| (Optional) |
| Specifies the timeout for the selected route. Timeout is computed from the time the request has been |
| fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. |
| If not specified, will use the largest timeout among all backend services associated with the route. |
| Structure is [documented below](#nested_timeout). |
| |
| * `retry_policy` - |
| (Optional) |
| Specifies the retry policy associated with this route. |
| Structure is [documented below](#nested_retry_policy). |
| |
| * `request_mirror_policy` - |
| (Optional) |
| Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. |
| Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, |
| the host / authority header is suffixed with -shadow. |
| Structure is [documented below](#nested_request_mirror_policy). |
| |
| * `cors_policy` - |
| (Optional) |
| The specification for allowing client side cross-origin requests. Please see |
| [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) |
| Structure is [documented below](#nested_cors_policy). |
| |
| * `fault_injection_policy` - |
| (Optional) |
| The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. |
| As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a |
| percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted |
| by the Loadbalancer for a percentage of requests. |
| timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. |
| Structure is [documented below](#nested_fault_injection_policy). |
| |
| |
| <a name="nested_weighted_backend_services"></a>The `weighted_backend_services` block supports: |
| |
| * `backend_service` - |
| (Optional) |
| The full or partial URL to the default BackendService resource. Before forwarding the |
| request to backendService, the loadbalancer applies any relevant headerActions |
| specified as part of this backendServiceWeight. |
| |
| * `weight` - |
| (Optional) |
| Specifies the fraction of traffic sent to backendService, computed as |
| weight / (sum of all weightedBackendService weights in routeAction) . |
| The selection of a backend service is determined only for new traffic. Once a user's request |
| has been directed to a backendService, subsequent requests will be sent to the same backendService |
| as determined by the BackendService's session affinity policy. |
| The value must be between 0 and 1000 |
| |
| * `header_action` - |
| (Optional) |
| Specifies changes to request and response headers that need to take effect for |
| the selected backendService. |
| headerAction specified here take effect before headerAction in the enclosing |
| HttpRouteRule, PathMatcher and UrlMap. |
| Structure is [documented below](#nested_header_action). |
| |
| |
| <a name="nested_header_action"></a>The `header_action` block supports: |
| |
| * `request_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the request prior to |
| forwarding the request to the backendService. |
| |
| * `request_headers_to_add` - |
| (Optional) |
| Headers to add to a matching request prior to forwarding the request to the backendService. |
| Structure is [documented below](#nested_request_headers_to_add). |
| |
| * `response_headers_to_remove` - |
| (Optional) |
| A list of header names for headers that need to be removed from the response prior to sending the |
| response back to the client. |
| |
| * `response_headers_to_add` - |
| (Optional) |
| Headers to add the response prior to sending the response back to the client. |
| Structure is [documented below](#nested_response_headers_to_add). |
| |
| |
| <a name="nested_request_headers_to_add"></a>The `request_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Optional) |
| The name of the header to add. |
| |
| * `header_value` - |
| (Optional) |
| The value of the header to add. |
| |
| * `replace` - |
| (Optional) |
| If false, headerValue is appended to any values that already exist for the header. |
| If true, headerValue is set for the header, discarding any values that were set for that header. |
| |
| <a name="nested_response_headers_to_add"></a>The `response_headers_to_add` block supports: |
| |
| * `header_name` - |
| (Optional) |
| The name of the header to add. |
| |
| * `header_value` - |
| (Optional) |
| The value of the header to add. |
| |
| * `replace` - |
| (Optional) |
| If false, headerValue is appended to any values that already exist for the header. |
| If true, headerValue is set for the header, discarding any values that were set for that header. |
| |
| <a name="nested_url_rewrite"></a>The `url_rewrite` block supports: |
| |
| * `path_prefix_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected backend service, the matching portion of the |
| request's path is replaced by pathPrefixRewrite. |
| The value must be between 1 and 1024 characters. |
| |
| * `host_rewrite` - |
| (Optional) |
| Prior to forwarding the request to the selected service, the request's host header is replaced |
| with contents of hostRewrite. |
| The value must be between 1 and 255 characters. |
| |
| <a name="nested_timeout"></a>The `timeout` block supports: |
| |
| * `seconds` - |
| (Optional) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. |
| Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
| |
| * `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_retry_policy"></a>The `retry_policy` block supports: |
| |
| * `retry_conditions` - |
| (Optional) |
| Specfies one or more conditions when this retry rule applies. Valid values are: |
| * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, |
| or if the backend service does not respond at all, example: disconnects, reset, read timeout, |
| * connection failure, and refused streams. |
| * gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. |
| * connect-failure: Loadbalancer will retry on failures connecting to backend services, |
| for example due to connection timeouts. |
| * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. |
| Currently the only retriable error supported is 409. |
| * refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. |
| This reset type indicates that it is safe to retry. |
| * cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled |
| * deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded |
| * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted |
| * unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable |
| |
| * `num_retries` - |
| (Optional) |
| Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. |
| |
| * `per_try_timeout` - |
| (Optional) |
| Specifies a non-zero timeout per retry attempt. |
| If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, |
| will use the largest timeout among all backend services associated with the route. |
| Structure is [documented below](#nested_per_try_timeout). |
| |
| |
| <a name="nested_per_try_timeout"></a>The `per_try_timeout` block supports: |
| |
| * `seconds` - |
| (Optional) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. |
| Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
| |
| * `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_request_mirror_policy"></a>The `request_mirror_policy` block supports: |
| |
| * `backend_service` - |
| (Required) |
| The full or partial URL to the BackendService resource being mirrored to. |
| |
| <a name="nested_cors_policy"></a>The `cors_policy` block supports: |
| |
| * `allow_origins` - |
| (Optional) |
| Specifies the list of origins that will be allowed to do CORS requests. |
| An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. |
| |
| * `allow_origin_regexes` - |
| (Optional) |
| Specifies the regular expression patterns that match allowed origins. For regular expression grammar |
| please see en.cppreference.com/w/cpp/regex/ecmascript |
| An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. |
| |
| * `allow_methods` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Methods header. |
| |
| * `allow_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Allow-Headers header. |
| |
| * `expose_headers` - |
| (Optional) |
| Specifies the content for the Access-Control-Expose-Headers header. |
| |
| * `max_age` - |
| (Optional) |
| Specifies how long results of a preflight request can be cached in seconds. |
| This translates to the Access-Control-Max-Age header. |
| |
| * `allow_credentials` - |
| (Optional) |
| In response to a preflight request, setting this to true indicates that the actual request can include user credentials. |
| This translates to the Access-Control-Allow-Credentials header. |
| |
| * `disabled` - |
| (Optional) |
| If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. |
| |
| <a name="nested_fault_injection_policy"></a>The `fault_injection_policy` block supports: |
| |
| * `delay` - |
| (Optional) |
| The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. |
| Structure is [documented below](#nested_delay). |
| |
| * `abort` - |
| (Optional) |
| The specification for how client requests are aborted as part of fault injection. |
| Structure is [documented below](#nested_abort). |
| |
| |
| <a name="nested_delay"></a>The `delay` block supports: |
| |
| * `fixed_delay` - |
| (Optional) |
| Specifies the value of the fixed delay interval. |
| Structure is [documented below](#nested_fixed_delay). |
| |
| * `percentage` - |
| (Optional) |
| The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. |
| The value must be between 0.0 and 100.0 inclusive. |
| |
| |
| <a name="nested_fixed_delay"></a>The `fixed_delay` block supports: |
| |
| * `seconds` - |
| (Optional) |
| Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. |
| Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
| |
| * `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_abort"></a>The `abort` block supports: |
| |
| * `http_status` - |
| (Optional) |
| The HTTP status code used to abort the request. |
| The value must be between 200 and 599 inclusive. |
| |
| * `percentage` - |
| (Optional) |
| The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. |
| The value must be between 0.0 and 100.0 inclusive. |
| |
| ## 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}}/global/urlMaps/{{name}}` |
| |
| * `creation_timestamp` - |
| Creation timestamp in RFC3339 text format. |
| |
| * `map_id` - |
| The unique identifier for the resource. |
| |
| * `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 |
| |
| |
| UrlMap can be imported using any of these accepted formats: |
| |
| * `projects/{{project}}/global/urlMaps/{{name}}` |
| * `{{project}}/{{name}}` |
| * `{{name}}` |
| |
| |
| In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import UrlMap using one of the formats above. For example: |
| |
| ```tf |
| import { |
| id = "projects/{{project}}/global/urlMaps/{{name}}" |
| to = google_compute_url_map.default |
| } |
| ``` |
| |
| When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), UrlMap can be imported using one of the formats above. For example: |
| |
| ``` |
| $ terraform import google_compute_url_map.default projects/{{project}}/global/urlMaps/{{name}} |
| $ terraform import google_compute_url_map.default {{project}}/{{name}} |
| $ terraform import google_compute_url_map.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). |