Method: routers.patch

Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.

HTTP request

PATCH https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/routers/{resourceId}

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
project

string

Project ID for this request.

region

string

Name of the region for this request.

resourceId

string

Name of the Router resource to patch.

Query parameters

Parameters
requestId

string

An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).

Request body

The request body contains data with the following structure:

JSON representation
{
  "id": string,
  "creationTimestamp": string,
  "name": string,
  "description": string,
  "region": string,
  "network": string,
  "interfaces": [
    {
      "name": string,
      "linkedVpnTunnel": string,
      "linkedInterconnectAttachment": string,
      "ipRange": string,
      "managementType": enum
    }
  ],
  "bgpPeers": [
    {
      "name": string,
      "interfaceName": string,
      "ipAddress": string,
      "peerIpAddress": string,
      "peerAsn": integer,
      "advertisedRoutePriority": integer,
      "advertiseMode": enum,
      "advertisedGroups": [
        enum
      ],
      "advertisedIpRanges": [
        {
          "range": string,
          "description": string
        }
      ],
      "managementType": enum,
      "enable": enum
    }
  ],
  "bgp": {
    "asn": integer,
    "advertiseMode": enum,
    "advertisedGroups": [
      enum
    ],
    "advertisedIpRanges": [
      {
        "range": string,
        "description": string
      }
    ],
    "keepaliveInterval": integer
  },
  "selfLink": string,
  "nats": [
    {
      "name": string,
      "sourceSubnetworkIpRangesToNat": enum,
      "subnetworks": [
        {
          "name": string,
          "sourceIpRangesToNat": [
            enum
          ],
          "secondaryIpRangeNames": [
            string
          ]
        }
      ],
      "natIps": [
        string
      ],
      "drainNatIps": [
        string
      ],
      "natIpAllocateOption": enum,
      "minPortsPerVm": integer,
      "udpIdleTimeoutSec": integer,
      "icmpIdleTimeoutSec": integer,
      "tcpEstablishedIdleTimeoutSec": integer,
      "tcpTransitoryIdleTimeoutSec": integer,
      "logConfig": {
        "enable": boolean,
        "filter": enum
      },
      "enableEndpointIndependentMapping": boolean
    }
  ],
  "encryptedInterconnectRouter": boolean,
  "kind": string
}
Fields
id

string (uint64 format)

[Output Only] The unique identifier for the resource. This identifier is defined by the server.

creationTimestamp

string

[Output Only] Creation timestamp in RFC3339 text format.

name

string

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.

description

string

An optional description of this resource. Provide this property when you create the resource.

region

string

[Output Only] URI of the region where the router resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.

network

string

URI of the network to which this router belongs.

Authorization requires the following IAM permission on the specified resource network:

  • compute.networks.updatePolicy
interfaces[]

object

Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.

interfaces[].name

string

Name of this interface entry. 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.

interfaces[].linkedVpnTunnel

string

URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.

interfaces[].linkedInterconnectAttachment

string

URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance.

interfaces[].ipRange

string

IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.

interfaces[].managementType

enum

[Output Only] The resource that configures and manages this interface.

  • MANAGED_BY_USER is the default value and can be managed directly by users.
  • MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted.

bgpPeers[]

object

BGP information that must be configured into the routing stack to establish BGP peering. This information must specify the peer ASN and either the interface name, IP address, or peer IP address. Please refer to RFC4273.

bgpPeers[].name

string

Name of this BGP peer. 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.

bgpPeers[].interfaceName

string

Name of the interface the BGP peer is associated with.

bgpPeers[].ipAddress

string

IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.

bgpPeers[].peerIpAddress

string

IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported.

bgpPeers[].peerAsn

integer (uint32 format)

Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value.

bgpPeers[].advertisedRoutePriority

integer (uint32 format)

The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win.

bgpPeers[].advertiseMode

enum

User-specified flag to indicate which mode to use for advertisement.

bgpPeers[].advertisedGroups[]

enum

User-specified list of prefix groups to advertise in custom mode, which can take one of the following options:

  • ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets.
  • ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
Note that this field can only be populated if advertiseMode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.

bgpPeers[].advertisedIpRanges[]

object

User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertiseMode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.

bgpPeers[].advertisedIpRanges[].range

string

The IP range to advertise. The value must be a CIDR-formatted string.

bgpPeers[].advertisedIpRanges[].description

string

User-specified description for the IP range.

bgpPeers[].managementType

enum

[Output Only] The resource that configures and manages this BGP peer.

  • MANAGED_BY_USER is the default value and can be managed by you or other users
  • MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted.

bgpPeers[].enable

enum

The status of the BGP peer connection.

If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.

bgp

object

BGP information specific to this router.

bgp.asn

integer (uint32 format)

Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.

bgp.advertiseMode

enum

User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM.

bgp.advertisedGroups[]

enum

User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertiseMode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.

bgp.advertisedIpRanges[]

object

User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertiseMode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.

bgp.advertisedIpRanges[].range

string

The IP range to advertise. The value must be a CIDR-formatted string.

bgp.advertisedIpRanges[].description

string

User-specified description for the IP range.

bgp.keepaliveInterval

integer (uint32 format)

The interval in seconds between BGP keepalive messages that are sent to the peer.

Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from