REST Resource: regionUrlMaps

Resource: UrlMap

Represents a URL Map resource.

Google Compute Engine has two URL Map resources:

A URL map resource is a component of certain types of GCP load balancers and Traffic Director.

  • urlMaps are used by external HTTP(S) load balancers and Traffic Director.
  • regionUrlMaps are used by internal HTTP(S) load balancers.

For a list of supported URL map features by load balancer type, see the Load balancing features: Routing and traffic management table.

For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table.

This resource defines mappings from host names and URL paths to either a backend service or a backend bucket.

To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.

JSON representation
{
  "id": string,
  "creationTimestamp": string,
  "name": string,
  "description": string,
  "selfLink": string,
  "hostRules": [
    {
      "description": string,
      "hosts": [
        string
      ],
      "pathMatcher": string
    }
  ],
  "pathMatchers": [
    {
      "name": string,
      "description": string,
      "defaultService": string,
      "defaultRouteAction": {
        "weightedBackendServices": [
          {
            "backendService": string,
            "weight": integer,
            "headerAction": {
              "requestHeadersToRemove": [
                string
              ],
              "requestHeadersToAdd": [
                {
                  "headerName": string,
                  "headerValue": string,
                  "replace": boolean
                }
              ],
              "responseHeadersToRemove": [
                string
              ],
              "responseHeadersToAdd": [
                {
                  "headerName": string,
                  "headerValue": string,
                  "replace": boolean
                }
              ]
            }
          }
        ],
        "urlRewrite": {
          "pathPrefixRewrite": string,
          "hostRewrite": string
        },
        "timeout": {
          "seconds": string,
          "nanos": integer
        },
        "retryPolicy": {
          "retryConditions": [
            string
          ],
          "numRetries": integer,
          "perTryTimeout": {
            "seconds": string,
            "nanos": integer
          }
        },
        "requestMirrorPolicy": {
          "backendService": string
        },
        "corsPolicy": {
          "allowOrigins": [
            string
          ],
          "allowOriginRegexes": [
            string
          ],
          "allowMethods": [
            string
          ],
          "allowHeaders": [
            string
          ],
          "exposeHeaders": [
            string
          ],
          "maxAge": integer,
          "allowCredentials": boolean,
          "disabled": boolean
        },
        "faultInjectionPolicy": {
          "delay": {
            "fixedDelay": {
              "seconds": string,
              "nanos": integer
            },
            "percentage": number
          },
          "abort": {
            "httpStatus": integer,
            "percentage": number
          }
        },
        "maxStreamDuration": {
          "seconds": string,
          "nanos": integer
        }
      },
      "defaultUrlRedirect": {
        "hostRedirect": string,
        "pathRedirect": string,
        "prefixRedirect": string,
        "redirectResponseCode": enum,
        "httpsRedirect": boolean,
        "stripQuery": boolean
      },
      "pathRules": [
        {
          "service": string,
          "routeAction": {
            "weightedBackendServices": [
              {
                "backendService": string,
                "weight": integer,
                "headerAction": {
                  "requestHeadersToRemove": [
                    string
                  ],
                  "requestHeadersToAdd": [
                    {
                      "headerName": string,
                      "headerValue": string,
                      "replace": boolean
                    }
                  ],
                  "responseHeadersToRemove": [
                    string
                  ],
                  "responseHeadersToAdd": [
                    {
                      "headerName": string,
                      "headerValue": string,
                      "replace": boolean
                    }
                  ]
                }
              }
            ],
            "urlRewrite": {
              "pathPrefixRewrite": string,
              "hostRewrite": string
            },
            "timeout": {
              "seconds": string,
              "nanos": integer
            },
            "retryPolicy": {
              "retryConditions": [
                string
              ],
              "numRetries": integer,
              "perTryTimeout": {
                "seconds": string,
                "nanos": integer
              }
            },
            "requestMirrorPolicy": {
              "backendService": string
            },
            "corsPolicy": {
              "allowOrigins": [
                string
              ],
              "allowOriginRegexes": [
                string
              ],
              "allowMethods": [
                string
              ],
              "allowHeaders": [
                string
              ],
              "exposeHeaders": [
                string
              ],
              "maxAge": integer,
              "allowCredentials": boolean,
              "disabled": boolean
            },
            "faultInjectionPolicy": {
              "delay": {
                "fixedDelay": {
                  "seconds": string,
                  "nanos": integer
                },
                "percentage": number
              },
              "abort": {
                "httpStatus": integer,
                "percentage": number
              }
            },
            "maxStreamDuration": {
              "seconds": string,
              "nanos": integer
            }
          },
          "urlRedirect": {
            "hostRedirect": string,
            "pathRedirect": string,
            "prefixRedirect": string,
            "redirectResponseCode": enum,
            "httpsRedirect": boolean,
            "stripQuery": boolean
          },
          "paths": [
            string
          ]
        }
      ],
      "routeRules": [
        {
          "priority": integer,
          "description": string,
          "matchRules": [
            {
              "prefixMatch": string,
              "fullPathMatch": string,
              "regexMatch": string,