1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. Route
Google Cloud Classic v7.29.0 published on Wednesday, Jun 26, 2024 by Pulumi

gcp.compute.Route

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.29.0 published on Wednesday, Jun 26, 2024 by Pulumi

    Represents a Route resource.

    A route is a rule that specifies how certain packets should be handled by the virtual network. Routes are associated with virtual machines by tag, and the set of routes for a particular virtual machine is called its routing table. For each packet leaving a virtual machine, the system searches that virtual machine’s routing table for a single best matching route.

    Routes match packets by destination IP address, preferring smaller or more specific ranges over larger ones. If there is a tie, the system selects the route with the smallest priority value. If there is still a tie, it uses the layer three and four packet headers to select just one of the remaining matching routes. The packet is then forwarded as specified by the next_hop field of the winning route – either to another virtual machine destination, a virtual machine gateway or a Compute Engine-operated gateway. Packets that do not match any route in the sending virtual machine’s routing table will be dropped.

    A Route resource must have exactly one specification of either nextHopGateway, nextHopInstance, nextHopIp, nextHopVpnTunnel, or nextHopIlb.

    To get more information about Route, see:

    Example Usage

    Route Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const defaultNetwork = new gcp.compute.Network("default", {name: "compute-network"});
    const _default = new gcp.compute.Route("default", {
        name: "network-route",
        destRange: "15.0.0.0/24",
        network: defaultNetwork.name,
        nextHopIp: "10.132.1.5",
        priority: 100,
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default_network = gcp.compute.Network("default", name="compute-network")
    default = gcp.compute.Route("default",
        name="network-route",
        dest_range="15.0.0.0/24",
        network=default_network.name,
        next_hop_ip="10.132.1.5",
        priority=100)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		defaultNetwork, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
    			Name: pulumi.String("compute-network"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewRoute(ctx, "default", &compute.RouteArgs{
    			Name:      pulumi.String("network-route"),
    			DestRange: pulumi.String("15.0.0.0/24"),
    			Network:   defaultNetwork.Name,
    			NextHopIp: pulumi.String("10.132.1.5"),
    			Priority:  pulumi.Int(100),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var defaultNetwork = new Gcp.Compute.Network("default", new()
        {
            Name = "compute-network",
        });
    
        var @default = new Gcp.Compute.Route("default", new()
        {
            Name = "network-route",
            DestRange = "15.0.0.0/24",
            Network = defaultNetwork.Name,
            NextHopIp = "10.132.1.5",
            Priority = 100,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.Network;
    import com.pulumi.gcp.compute.NetworkArgs;
    import com.pulumi.gcp.compute.Route;
    import com.pulumi.gcp.compute.RouteArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
                .name("compute-network")
                .build());
    
            var default_ = new Route("default", RouteArgs.builder()
                .name("network-route")
                .destRange("15.0.0.0/24")
                .network(defaultNetwork.name())
                .nextHopIp("10.132.1.5")
                .priority(100)
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:compute:Route
        properties:
          name: network-route
          destRange: 15.0.0.0/24
          network: ${defaultNetwork.name}
          nextHopIp: 10.132.1.5
          priority: 100
      defaultNetwork:
        type: gcp:compute:Network
        name: default
        properties:
          name: compute-network
    

    Route Ilb

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const _default = new gcp.compute.Network("default", {
        name: "compute-network",
        autoCreateSubnetworks: false,
    });
    const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
        name: "compute-subnet",
        ipCidrRange: "10.0.1.0/24",
        region: "us-central1",
        network: _default.id,
    });
    const hc = new gcp.compute.HealthCheck("hc", {
        name: "proxy-health-check",
        checkIntervalSec: 1,
        timeoutSec: 1,
        tcpHealthCheck: {
            port: 80,
        },
    });
    const backend = new gcp.compute.RegionBackendService("backend", {
        name: "compute-backend",
        region: "us-central1",
        healthChecks: hc.id,
    });
    const defaultForwardingRule = new gcp.compute.ForwardingRule("default", {
        name: "compute-forwarding-rule",
        region: "us-central1",
        loadBalancingScheme: "INTERNAL",
        backendService: backend.id,
        allPorts: true,
        network: _default.name,
        subnetwork: defaultSubnetwork.name,
    });
    const route_ilb = new gcp.compute.Route("route-ilb", {
        name: "route-ilb",
        destRange: "0.0.0.0/0",
        network: _default.name,
        nextHopIlb: defaultForwardingRule.id,
        priority: 2000,
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default = gcp.compute.Network("default",
        name="compute-network",
        auto_create_subnetworks=False)
    default_subnetwork = gcp.compute.Subnetwork("default",
        name="compute-subnet",
        ip_cidr_range="10.0.1.0/24",
        region="us-central1",
        network=default.id)
    hc = gcp.compute.HealthCheck("hc",
        name="proxy-health-check",
        check_interval_sec=1,
        timeout_sec=1,
        tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(
            port=80,
        ))
    backend = gcp.compute.RegionBackendService("backend",
        name="compute-backend",
        region="us-central1",
        health_checks=hc.id)
    default_forwarding_rule = gcp.compute.ForwardingRule("default",
        name="compute-forwarding-rule",
        region="us-central1",
        load_balancing_scheme="INTERNAL",
        backend_service=backend.id,
        all_ports=True,
        network=default.name,
        subnetwork=default_subnetwork.name)
    route_ilb = gcp.compute.Route("route-ilb",
        name="route-ilb",
        dest_range="0.0.0.0/0",
        network=default.name,
        next_hop_ilb=default_forwarding_rule.id,
        priority=2000)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
    			Name:                  pulumi.String("compute-network"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
    			Name:        pulumi.String("compute-subnet"),
    			IpCidrRange: pulumi.String("10.0.1.0/24"),
    			Region:      pulumi.String("us-central1"),
    			Network:     _default.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		hc, err := compute.NewHealthCheck(ctx, "hc", &compute.HealthCheckArgs{
    			Name:             pulumi.String("proxy-health-check"),
    			CheckIntervalSec: pulumi.Int(1),
    			TimeoutSec:       pulumi.Int(1),
    			TcpHealthCheck: &compute.HealthCheckTcpHealthCheckArgs{
    				Port: pulumi.Int(80),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		backend, err := compute.NewRegionBackendService(ctx, "backend", &compute.RegionBackendServiceArgs{
    			Name:         pulumi.String("compute-backend"),
    			Region:       pulumi.String("us-central1"),
    			HealthChecks: hc.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		defaultForwardingRule, err := compute.NewForwardingRule(ctx, "default", &compute.ForwardingRuleArgs{
    			Name:                pulumi.String("compute-forwarding-rule"),
    			Region:              pulumi.String("us-central1"),
    			LoadBalancingScheme: pulumi.String("INTERNAL"),
    			BackendService:      backend.ID(),
    			AllPorts:            pulumi.Bool(true),
    			Network:             _default.Name,
    			Subnetwork:          defaultSubnetwork.Name,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewRoute(ctx, "route-ilb", &compute.RouteArgs{
    			Name:       pulumi.String("route-ilb"),
    			DestRange:  pulumi.String("0.0.0.0/0"),
    			Network:    _default.Name,
    			NextHopIlb: defaultForwardingRule.ID(),
    			Priority:   pulumi.Int(2000),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var @default = new Gcp.Compute.Network("default", new()
        {
            Name = "compute-network",
            AutoCreateSubnetworks = false,
        });
    
        var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
        {
            Name = "compute-subnet",
            IpCidrRange = "10.0.1.0/24",
            Region = "us-central1",
            Network = @default.Id,
        });
    
        var hc = new Gcp.Compute.HealthCheck("hc", new()
        {
            Name = "proxy-health-check",
            CheckIntervalSec = 1,
            TimeoutSec = 1,
            TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs
            {
                Port = 80,
            },
        });
    
        var backend = new Gcp.Compute.RegionBackendService("backend", new()
        {
            Name = "compute-backend",
            Region = "us-central1",
            HealthChecks = hc.Id,
        });
    
        var defaultForwardingRule = new Gcp.Compute.ForwardingRule("default", new()
        {
            Name = "compute-forwarding-rule",
            Region = "us-central1",
            LoadBalancingScheme = "INTERNAL",
            BackendService = backend.Id,
            AllPorts = true,
            Network = @default.Name,
            Subnetwork = defaultSubnetwork.Name,
        });
    
        var route_ilb = new Gcp.Compute.Route("route-ilb", new()
        {
            Name = "route-ilb",
            DestRange = "0.0.0.0/0",
            Network = @default.Name,
            NextHopIlb = defaultForwardingRule.Id,
            Priority = 2000,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.Network;
    import com.pulumi.gcp.compute.NetworkArgs;
    import com.pulumi.gcp.compute.Subnetwork;
    import com.pulumi.gcp.compute.SubnetworkArgs;
    import com.pulumi.gcp.compute.HealthCheck;
    import com.pulumi.gcp.compute.HealthCheckArgs;
    import com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;
    import com.pulumi.gcp.compute.RegionBackendService;
    import com.pulumi.gcp.compute.RegionBackendServiceArgs;
    import com.pulumi.gcp.compute.ForwardingRule;
    import com.pulumi.gcp.compute.ForwardingRuleArgs;
    import com.pulumi.gcp.compute.Route;
    import com.pulumi.gcp.compute.RouteArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var default_ = new Network("default", NetworkArgs.builder()
                .name("compute-network")
                .autoCreateSubnetworks(false)
                .build());
    
            var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
                .name("compute-subnet")
                .ipCidrRange("10.0.1.0/24")
                .region("us-central1")
                .network(default_.id())
                .build());
    
            var hc = new HealthCheck("hc", HealthCheckArgs.builder()
                .name("proxy-health-check")
                .checkIntervalSec(1)
                .timeoutSec(1)
                .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()
                    .port("80")
                    .build())
                .build());
    
            var backend = new RegionBackendService("backend", RegionBackendServiceArgs.builder()
                .name("compute-backend")
                .region("us-central1")
                .healthChecks(hc.id())
                .build());
    
            var defaultForwardingRule = new ForwardingRule("defaultForwardingRule", ForwardingRuleArgs.builder()
                .name("compute-forwarding-rule")
                .region("us-central1")
                .loadBalancingScheme("INTERNAL")
                .backendService(backend.id())
                .allPorts(true)
                .network(default_.name())
                .subnetwork(defaultSubnetwork.name())
                .build());
    
            var route_ilb = new Route("route-ilb", RouteArgs.builder()
                .name("route-ilb")
                .destRange("0.0.0.0/0")
                .network(default_.name())
                .nextHopIlb(defaultForwardingRule.id())
                .priority(2000)
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:compute:Network
        properties:
          name: compute-network
          autoCreateSubnetworks: false
      defaultSubnetwork:
        type: gcp:compute:Subnetwork
        name: default
        properties:
          name: compute-subnet
          ipCidrRange: 10.0.1.0/24
          region: us-central1
          network: ${default.id}
      hc:
        type: gcp:compute:HealthCheck
        properties:
          name: proxy-health-check
          checkIntervalSec: 1
          timeoutSec: 1
          tcpHealthCheck:
            port: '80'
      backend:
        type: gcp:compute:RegionBackendService
        properties:
          name: compute-backend
          region: us-central1
          healthChecks: ${hc.id}
      defaultForwardingRule:
        type: gcp:compute:ForwardingRule
        name: default
        properties:
          name: compute-forwarding-rule
          region: us-central1
          loadBalancingScheme: INTERNAL
          backendService: ${backend.id}
          allPorts: true
          network: ${default.name}
          subnetwork: ${defaultSubnetwork.name}
      route-ilb:
        type: gcp:compute:Route
        properties:
          name: route-ilb
          destRange: 0.0.0.0/0
          network: ${default.name}
          nextHopIlb: ${defaultForwardingRule.id}
          priority: 2000
    

    Route Ilb Vip

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const producer = new gcp.compute.Network("producer", {
        name: "producer-vpc",
        autoCreateSubnetworks: false,
    });
    const producerSubnetwork = new gcp.compute.Subnetwork("producer", {
        name: "producer-subnet",
        ipCidrRange: "10.0.1.0/24",
        region: "us-central1",
        network: producer.id,
    });
    const consumer = new gcp.compute.Network("consumer", {
        name: "consumer-vpc",
        autoCreateSubnetworks: false,
    });
    const consumerSubnetwork = new gcp.compute.Subnetwork("consumer", {
        name: "consumer-subnet",
        ipCidrRange: "10.0.2.0/24",
        region: "us-central1",
        network: consumer.id,
    });
    const peering1 = new gcp.compute.NetworkPeering("peering1", {
        name: "peering-producer-to-consumer",
        network: consumer.id,
        peerNetwork: producer.id,
    });
    const peering2 = new gcp.compute.NetworkPeering("peering2", {
        name: "peering-consumer-to-producer",
        network: producer.id,
        peerNetwork: consumer.id,
    });
    const hc = new gcp.compute.HealthCheck("hc", {
        name: "proxy-health-check",
        checkIntervalSec: 1,
        timeoutSec: 1,
        tcpHealthCheck: {
            port: 80,
        },
    });
    const backend = new gcp.compute.RegionBackendService("backend", {
        name: "compute-backend",
        region: "us-central1",
        healthChecks: hc.id,
    });
    const _default = new gcp.compute.ForwardingRule("default", {
        name: "compute-forwarding-rule",
        region: "us-central1",
        loadBalancingScheme: "INTERNAL",
        backendService: backend.id,
        allPorts: true,
        network: producer.name,
        subnetwork: producerSubnetwork.name,
    });
    const route_ilb = new gcp.compute.Route("route-ilb", {
        name: "route-ilb",
        destRange: "0.0.0.0/0",
        network: consumer.name,
        nextHopIlb: _default.ipAddress,
        priority: 2000,
        tags: [
            "tag1",
            "tag2",
        ],
    }, {
        dependsOn: [
            peering1,
            peering2,
        ],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    producer = gcp.compute.Network("producer",
        name="producer-vpc",
        auto_create_subnetworks=False)
    producer_subnetwork = gcp.compute.Subnetwork("producer",
        name="producer-subnet",
        ip_cidr_range="10.0.1.0/24",
        region="us-central1",
        network=producer.id)
    consumer = gcp.compute.Network("consumer",
        name="consumer-vpc",
        auto_create_subnetworks=False)
    consumer_subnetwork = gcp.compute.Subnetwork("consumer",
        name="consumer-subnet",
        ip_cidr_range="10.0.2.0/24",
        region="us-central1",
        network=consumer.id)
    peering1 = gcp.compute.NetworkPeering("peering1",
        name="peering-producer-to-consumer",
        network=consumer.id,
        peer_network=producer.id)
    peering2 = gcp.compute.NetworkPeering("peering2",
        name="peering-consumer-to-producer",
        network=producer.id,
        peer_network=consumer.id)
    hc = gcp.compute.HealthCheck("hc",
        name="proxy-health-check",
        check_interval_sec=1,
        timeout_sec=1,
        tcp_health_check=gcp.compute.HealthCheckTcpHealthCheckArgs(
            port=80,
        ))
    backend = gcp.compute.RegionBackendService("backend",
        name="compute-backend",
        region="us-central1",
        health_checks=hc.id)
    default = gcp.compute.ForwardingRule("default",
        name="compute-forwarding-rule",
        region="us-central1",
        load_balancing_scheme="INTERNAL",
        backend_service=backend.id,
        all_ports=True,
        network=producer.name,
        subnetwork=producer_subnetwork.name)
    route_ilb = gcp.compute.Route("route-ilb",
        name="route-ilb",
        dest_range="0.0.0.0/0",
        network=consumer.name,
        next_hop_ilb=default.ip_address,
        priority=2000,
        tags=[
            "tag1",
            "tag2",
        ],
        opts = pulumi.ResourceOptions(depends_on=[
                peering1,
                peering2,
            ]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		producer, err := compute.NewNetwork(ctx, "producer", &compute.NetworkArgs{
    			Name:                  pulumi.String("producer-vpc"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		producerSubnetwork, err := compute.NewSubnetwork(ctx, "producer", &compute.SubnetworkArgs{
    			Name:        pulumi.String("producer-subnet"),
    			IpCidrRange: pulumi.String("10.0.1.0/24"),
    			Region:      pulumi.String("us-central1"),
    			Network:     producer.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		consumer, err := compute.NewNetwork(ctx, "consumer", &compute.NetworkArgs{
    			Name:                  pulumi.String("consumer-vpc"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewSubnetwork(ctx, "consumer", &compute.SubnetworkArgs{
    			Name:        pulumi.String("consumer-subnet"),
    			IpCidrRange: pulumi.String("10.0.2.0/24"),
    			Region:      pulumi.String("us-central1"),
    			Network:     consumer.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		peering1, err := compute.NewNetworkPeering(ctx, "peering1", &compute.NetworkPeeringArgs{
    			Name:        pulumi.String("peering-producer-to-consumer"),
    			Network:     consumer.ID(),
    			PeerNetwork: producer.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		peering2, err := compute.NewNetworkPeering(ctx, "peering2", &compute.NetworkPeeringArgs{
    			Name:        pulumi.String("peering-consumer-to-producer"),
    			Network:     producer.ID(),
    			PeerNetwork: consumer.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		hc, err := compute.NewHealthCheck(ctx, "hc", &compute.HealthCheckArgs{
    			Name:             pulumi.String("proxy-health-check"),
    			CheckIntervalSec: pulumi.Int(1),
    			TimeoutSec:       pulumi.Int(1),
    			TcpHealthCheck: &compute.HealthCheckTcpHealthCheckArgs{
    				Port: pulumi.Int(80),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		backend, err := compute.NewRegionBackendService(ctx, "backend", &compute.RegionBackendServiceArgs{
    			Name:         pulumi.String("compute-backend"),
    			Region:       pulumi.String("us-central1"),
    			HealthChecks: hc.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewForwardingRule(ctx, "default", &compute.ForwardingRuleArgs{
    			Name:                pulumi.String("compute-forwarding-rule"),
    			Region:              pulumi.String("us-central1"),
    			LoadBalancingScheme: pulumi.String("INTERNAL"),
    			BackendService:      backend.ID(),
    			AllPorts:            pulumi.Bool(true),
    			Network:             producer.Name,
    			Subnetwork:          producerSubnetwork.Name,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewRoute(ctx, "route-ilb", &compute.RouteArgs{
    			Name:       pulumi.String("route-ilb"),
    			DestRange:  pulumi.String("0.0.0.0/0"),
    			Network:    consumer.Name,
    			NextHopIlb: _default.IpAddress,
    			Priority:   pulumi.Int(2000),
    			Tags: pulumi.StringArray{
    				pulumi.String("tag1"),
    				pulumi.String("tag2"),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			peering1,
    			peering2,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var producer = new Gcp.Compute.Network("producer", new()
        {
            Name = "producer-vpc",
            AutoCreateSubnetworks = false,
        });
    
        var producerSubnetwork = new Gcp.Compute.Subnetwork("producer", new()
        {
            Name = "producer-subnet",
            IpCidrRange = "10.0.1.0/24",
            Region = "us-central1",
            Network = producer.Id,
        });
    
        var consumer = new Gcp.Compute.Network("consumer", new()
        {
            Name = "consumer-vpc",
            AutoCreateSubnetworks = false,
        });
    
        var consumerSubnetwork = new Gcp.Compute.Subnetwork("consumer", new()
        {
            Name = "consumer-subnet",
            IpCidrRange = "10.0.2.0/24",
            Region = "us-central1",
            Network = consumer.Id,
        });
    
        var peering1 = new Gcp.Compute.NetworkPeering("peering1", new()
        {
            Name = "peering-producer-to-consumer",
            Network = consumer.Id,
            PeerNetwork = producer.Id,
        });
    
        var peering2 = new Gcp.Compute.NetworkPeering("peering2", new()
        {
            Name = "peering-consumer-to-producer",
            Network = producer.Id,
            PeerNetwork = consumer.Id,
        });
    
        var hc = new Gcp.Compute.HealthCheck("hc", new()
        {
            Name = "proxy-health-check",
            CheckIntervalSec = 1,
            TimeoutSec = 1,
            TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs
            {
                Port = 80,
            },
        });
    
        var backend = new Gcp.Compute.RegionBackendService("backend", new()
        {
            Name = "compute-backend",
            Region = "us-central1",
            HealthChecks = hc.Id,
        });
    
        var @default = new Gcp.Compute.ForwardingRule("default", new()
        {
            Name = "compute-forwarding-rule",
            Region = "us-central1",
            LoadBalancingScheme = "INTERNAL",
            BackendService = backend.Id,
            AllPorts = true,
            Network = producer.Name,
            Subnetwork = producerSubnetwork.Name,
        });
    
        var route_ilb = new Gcp.Compute.Route("route-ilb", new()
        {
            Name = "route-ilb",
            DestRange = "0.0.0.0/0",
            Network = consumer.Name,
            NextHopIlb = @default.IpAddress,
            Priority = 2000,
            Tags = new[]
            {
                "tag1",
                "tag2",
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                peering1,
                peering2,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.Network;
    import com.pulumi.gcp.compute.NetworkArgs;
    import com.pulumi.gcp.compute.Subnetwork;
    import com.pulumi.gcp.compute.SubnetworkArgs;
    import com.pulumi.gcp.compute.NetworkPeering;
    import com.pulumi.gcp.compute.NetworkPeeringArgs;
    import com.pulumi.gcp.compute.HealthCheck;
    import com.pulumi.gcp.compute.HealthCheckArgs;
    import com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;
    import com.pulumi.gcp.compute.RegionBackendService;
    import com.pulumi.gcp.compute.RegionBackendServiceArgs;
    import com.pulumi.gcp.compute.ForwardingRule;
    import com.pulumi.gcp.compute.ForwardingRuleArgs;
    import com.pulumi.gcp.compute.Route;
    import com.pulumi.gcp.compute.RouteArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var producer = new Network("producer", NetworkArgs.builder()
                .name("producer-vpc")
                .autoCreateSubnetworks(false)
                .build());
    
            var producerSubnetwork = new Subnetwork("producerSubnetwork", SubnetworkArgs.builder()
                .name("producer-subnet")
                .ipCidrRange("10.0.1.0/24")
                .region("us-central1")
                .network(producer.id())
                .build());
    
            var consumer = new Network("consumer", NetworkArgs.builder()
                .name("consumer-vpc")
                .autoCreateSubnetworks(false)
                .build());
    
            var consumerSubnetwork = new Subnetwork("consumerSubnetwork", SubnetworkArgs.builder()
                .name("consumer-subnet")
                .ipCidrRange("10.0.2.0/24")
                .region("us-central1")
                .network(consumer.id())
                .build());
    
            var peering1 = new NetworkPeering("peering1", NetworkPeeringArgs.builder()
                .name("peering-producer-to-consumer")
                .network(consumer.id())
                .peerNetwork(producer.id())
                .build());
    
            var peering2 = new NetworkPeering("peering2", NetworkPeeringArgs.builder()
                .name("peering-consumer-to-producer")
                .network(producer.id())
                .peerNetwork(consumer.id())
                .build());
    
            var hc = new HealthCheck("hc", HealthCheckArgs.builder()
                .name("proxy-health-check")
                .checkIntervalSec(1)
                .timeoutSec(1)
                .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()
                    .port("80")
                    .build())
                .build());
    
            var backend = new RegionBackendService("backend", RegionBackendServiceArgs.builder()
                .name("compute-backend")
                .region("us-central1")
                .healthChecks(hc.id())
                .build());
    
            var default_ = new ForwardingRule("default", ForwardingRuleArgs.builder()
                .name("compute-forwarding-rule")
                .region("us-central1")
                .loadBalancingScheme("INTERNAL")
                .backendService(backend.id())
                .allPorts(true)
                .network(producer.name())
                .subnetwork(producerSubnetwork.name())
                .build());
    
            var route_ilb = new Route("route-ilb", RouteArgs.builder()
                .name("route-ilb")
                .destRange("0.0.0.0/0")
                .network(consumer.name())
                .nextHopIlb(default_.ipAddress())
                .priority(2000)
                .tags(            
                    "tag1",
                    "tag2")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        peering1,
                        peering2)
                    .build());
    
        }
    }
    
    resources:
      producer:
        type: gcp:compute:Network
        properties:
          name: producer-vpc
          autoCreateSubnetworks: false
      producerSubnetwork:
        type: gcp:compute:Subnetwork
        name: producer
        properties:
          name: producer-subnet
          ipCidrRange: 10.0.1.0/24
          region: us-central1
          network: ${producer.id}
      consumer:
        type: gcp:compute:Network
        properties:
          name: consumer-vpc
          autoCreateSubnetworks: false
      consumerSubnetwork:
        type: gcp:compute:Subnetwork
        name: consumer
        properties:
          name: consumer-subnet
          ipCidrRange: 10.0.2.0/24
          region: us-central1
          network: ${consumer.id}
      peering1:
        type: gcp:compute:NetworkPeering
        properties:
          name: peering-producer-to-consumer
          network: ${consumer.id}
          peerNetwork: ${producer.id}
      peering2:
        type: gcp:compute:NetworkPeering
        properties:
          name: peering-consumer-to-producer
          network: ${producer.id}
          peerNetwork: ${consumer.id}
      hc:
        type: gcp:compute:HealthCheck
        properties:
          name: proxy-health-check
          checkIntervalSec: 1
          timeoutSec: 1
          tcpHealthCheck:
            port: '80'
      backend:
        type: gcp:compute:RegionBackendService
        properties:
          name: compute-backend
          region: us-central1
          healthChecks: ${hc.id}
      default:
        type: gcp:compute:ForwardingRule
        properties:
          name: compute-forwarding-rule
          region: us-central1
          loadBalancingScheme: INTERNAL
          backendService: ${backend.id}
          allPorts: true
          network: ${producer.name}
          subnetwork: ${producerSubnetwork.name}
      route-ilb:
        type: gcp:compute:Route
        properties:
          name: route-ilb
          destRange: 0.0.0.0/0
          network: ${consumer.name}
          nextHopIlb: ${default.ipAddress}
          priority: 2000
          tags:
            - tag1
            - tag2
        options:
          dependson:
            - ${peering1}
            - ${peering2}
    

    Create Route Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Route(name: string, args: RouteArgs, opts?: CustomResourceOptions);
    @overload
    def Route(resource_name: str,
              args: RouteArgs,
              opts: Optional[ResourceOptions] = None)
    
    @overload
    def Route(resource_name: str,
              opts: Optional[ResourceOptions] = None,
              network: Optional[str] = None,
              dest_range: Optional[str] = None,
              next_hop_instance: Optional[str] = None,
              name: Optional[str] = None,
              next_hop_gateway: Optional[str] = None,
              next_hop_ilb: Optional[str] = None,
              description: Optional[str] = None,
              next_hop_instance_zone: Optional[str] = None,
              next_hop_ip: Optional[str] = None,
              next_hop_vpn_tunnel: Optional[str] = None,
              priority: Optional[int] = None,
              project: Optional[str] = None,
              tags: Optional[Sequence[str]] = None)
    func NewRoute(ctx *Context, name string, args RouteArgs, opts ...ResourceOption) (*Route, error)
    public Route(string name, RouteArgs args, CustomResourceOptions? opts = null)
    public Route(String name, RouteArgs args)
    public Route(String name, RouteArgs args, CustomResourceOptions options)
    
    type: gcp:compute:Route
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args RouteArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args RouteArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args RouteArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args RouteArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args RouteArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var routeResource = new Gcp.Compute.Route("routeResource", new()
    {
        Network = "string",
        DestRange = "string",
        NextHopInstance = "string",
        Name = "string",
        NextHopGateway = "string",
        NextHopIlb = "string",
        Description = "string",
        NextHopInstanceZone = "string",
        NextHopIp = "string",
        NextHopVpnTunnel = "string",
        Priority = 0,
        Project = "string",
        Tags = new[]
        {
            "string",
        },
    });
    
    example, err := compute.NewRoute(ctx, "routeResource", &compute.RouteArgs{
    	Network:             pulumi.String("string"),
    	DestRange:           pulumi.String("string"),
    	NextHopInstance:     pulumi.String("string"),
    	Name:                pulumi.String("string"),
    	NextHopGateway:      pulumi.String("string"),
    	NextHopIlb:          pulumi.String("string"),
    	Description:         pulumi.String("string"),
    	NextHopInstanceZone: pulumi.String("string"),
    	NextHopIp:           pulumi.String("string"),
    	NextHopVpnTunnel:    pulumi.String("string"),
    	Priority:            pulumi.Int(0),
    	Project:             pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    })
    
    var routeResource = new Route("routeResource", RouteArgs.builder()
        .network("string")
        .destRange("string")
        .nextHopInstance("string")
        .name("string")
        .nextHopGateway("string")
        .nextHopIlb("string")
        .description("string")
        .nextHopInstanceZone("string")
        .nextHopIp("string")
        .nextHopVpnTunnel("string")
        .priority(0)
        .project("string")
        .tags("string")
        .build());
    
    route_resource = gcp.compute.Route("routeResource",
        network="string",
        dest_range="string",
        next_hop_instance="string",
        name="string",
        next_hop_gateway="string",
        next_hop_ilb="string",
        description="string",
        next_hop_instance_zone="string",
        next_hop_ip="string",
        next_hop_vpn_tunnel="string",
        priority=0,
        project="string",
        tags=["string"])
    
    const routeResource = new gcp.compute.Route("routeResource", {
        network: "string",
        destRange: "string",
        nextHopInstance: "string",
        name: "string",
        nextHopGateway: "string",
        nextHopIlb: "string",
        description: "string",
        nextHopInstanceZone: "string",
        nextHopIp: "string",
        nextHopVpnTunnel: "string",
        priority: 0,
        project: "string",
        tags: ["string"],
    });
    
    type: gcp:compute:Route
    properties:
        description: string
        destRange: string
        name: string
        network: string
        nextHopGateway: string
        nextHopIlb: string
        nextHopInstance: string
        nextHopInstanceZone: string
        nextHopIp: string
        nextHopVpnTunnel: string
        priority: 0
        project: string
        tags:
            - string
    

    Route Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Route resource accepts the following input properties:

    DestRange string
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    Network string
    The network that this route applies to.


    Description string
    An optional description of this resource. Provide this property when you create the resource.
    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? 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.
    NextHopGateway string
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    NextHopIlb string
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    NextHopInstance string
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    NextHopInstanceZone string
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    NextHopIp string
    Network IP address of an instance that should handle matching packets.
    NextHopVpnTunnel string
    URL to a VpnTunnel that should handle matching packets.
    Priority int
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Tags List<string>
    A list of instance tags to which this route applies.
    DestRange string
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    Network string
    The network that this route applies to.


    Description string
    An optional description of this resource. Provide this property when you create the resource.
    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? 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.
    NextHopGateway string
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    NextHopIlb string
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    NextHopInstance string
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    NextHopInstanceZone string
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    NextHopIp string
    Network IP address of an instance that should handle matching packets.
    NextHopVpnTunnel string
    URL to a VpnTunnel that should handle matching packets.
    Priority int
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Tags []string
    A list of instance tags to which this route applies.
    destRange String
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    network String
    The network that this route applies to.


    description String
    An optional description of this resource. Provide this property when you create the resource.
    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? 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.
    nextHopGateway String
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    nextHopIlb String
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    nextHopInstance String
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    nextHopInstanceZone String
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    nextHopIp String
    Network IP address of an instance that should handle matching packets.
    nextHopVpnTunnel String
    URL to a VpnTunnel that should handle matching packets.
    priority Integer
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    tags List<String>
    A list of instance tags to which this route applies.
    destRange string
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    network string
    The network that this route applies to.


    description string
    An optional description of this resource. Provide this property when you create the resource.
    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? 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.
    nextHopGateway string
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    nextHopIlb string
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    nextHopInstance string
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    nextHopInstanceZone string
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    nextHopIp string
    Network IP address of an instance that should handle matching packets.
    nextHopVpnTunnel string
    URL to a VpnTunnel that should handle matching packets.
    priority number
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    tags string[]
    A list of instance tags to which this route applies.
    dest_range str
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    network str
    The network that this route applies to.


    description str
    An optional description of this resource. Provide this property when you create the resource.
    name str
    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? 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.
    next_hop_gateway str
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    next_hop_ilb str
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    next_hop_instance str
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    next_hop_instance_zone str
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    next_hop_ip str
    Network IP address of an instance that should handle matching packets.
    next_hop_vpn_tunnel str
    URL to a VpnTunnel that should handle matching packets.
    priority int
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    tags Sequence[str]
    A list of instance tags to which this route applies.
    destRange String
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    network String
    The network that this route applies to.


    description String
    An optional description of this resource. Provide this property when you create the resource.
    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? 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.
    nextHopGateway String
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    nextHopIlb String
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    nextHopInstance String
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    nextHopInstanceZone String
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    nextHopIp String
    Network IP address of an instance that should handle matching packets.
    nextHopVpnTunnel String
    URL to a VpnTunnel that should handle matching packets.
    priority Number
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    tags List<String>
    A list of instance tags to which this route applies.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Route resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    NextHopNetwork string
    URL to a Network that should handle matching packets.
    SelfLink string
    The URI of the created resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    NextHopNetwork string
    URL to a Network that should handle matching packets.
    SelfLink string
    The URI of the created resource.
    id String
    The provider-assigned unique ID for this managed resource.
    nextHopNetwork String
    URL to a Network that should handle matching packets.
    selfLink String
    The URI of the created resource.
    id string
    The provider-assigned unique ID for this managed resource.
    nextHopNetwork string
    URL to a Network that should handle matching packets.
    selfLink string
    The URI of the created resource.
    id str
    The provider-assigned unique ID for this managed resource.
    next_hop_network str
    URL to a Network that should handle matching packets.
    self_link str
    The URI of the created resource.
    id String
    The provider-assigned unique ID for this managed resource.
    nextHopNetwork String
    URL to a Network that should handle matching packets.
    selfLink String
    The URI of the created resource.

    Look up Existing Route Resource

    Get an existing Route resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: RouteState, opts?: CustomResourceOptions): Route
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            description: Optional[str] = None,
            dest_range: Optional[str] = None,
            name: Optional[str] = None,
            network: Optional[str] = None,
            next_hop_gateway: Optional[str] = None,
            next_hop_ilb: Optional[str] = None,
            next_hop_instance: Optional[str] = None,
            next_hop_instance_zone: Optional[str] = None,
            next_hop_ip: Optional[str] = None,
            next_hop_network: Optional[str] = None,
            next_hop_vpn_tunnel: Optional[str] = None,
            priority: Optional[int] = None,
            project: Optional[str] = None,
            self_link: Optional[str] = None,
            tags: Optional[Sequence[str]] = None) -> Route
    func GetRoute(ctx *Context, name string, id IDInput, state *RouteState, opts ...ResourceOption) (*Route, error)
    public static Route Get(string name, Input<string> id, RouteState? state, CustomResourceOptions? opts = null)
    public static Route get(String name, Output<String> id, RouteState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Description string
    An optional description of this resource. Provide this property when you create the resource.
    DestRange string
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    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? 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.
    Network string
    The network that this route applies to.


    NextHopGateway string
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    NextHopIlb string
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    NextHopInstance string
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    NextHopInstanceZone string
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    NextHopIp string
    Network IP address of an instance that should handle matching packets.
    NextHopNetwork string
    URL to a Network that should handle matching packets.
    NextHopVpnTunnel string
    URL to a VpnTunnel that should handle matching packets.
    Priority int
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    SelfLink string
    The URI of the created resource.
    Tags List<string>
    A list of instance tags to which this route applies.
    Description string
    An optional description of this resource. Provide this property when you create the resource.
    DestRange string
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    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? 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.
    Network string
    The network that this route applies to.


    NextHopGateway string
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    NextHopIlb string
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    NextHopInstance string
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    NextHopInstanceZone string
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    NextHopIp string
    Network IP address of an instance that should handle matching packets.
    NextHopNetwork string
    URL to a Network that should handle matching packets.
    NextHopVpnTunnel string
    URL to a VpnTunnel that should handle matching packets.
    Priority int
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    SelfLink string
    The URI of the created resource.
    Tags []string
    A list of instance tags to which this route applies.
    description String
    An optional description of this resource. Provide this property when you create the resource.
    destRange String
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    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? 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.
    network String
    The network that this route applies to.


    nextHopGateway String
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    nextHopIlb String
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    nextHopInstance String
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    nextHopInstanceZone String
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    nextHopIp String
    Network IP address of an instance that should handle matching packets.
    nextHopNetwork String
    URL to a Network that should handle matching packets.
    nextHopVpnTunnel String
    URL to a VpnTunnel that should handle matching packets.
    priority Integer
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink String
    The URI of the created resource.
    tags List<String>
    A list of instance tags to which this route applies.
    description string
    An optional description of this resource. Provide this property when you create the resource.
    destRange string
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    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? 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.
    network string
    The network that this route applies to.


    nextHopGateway string
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    nextHopIlb string
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    nextHopInstance string
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    nextHopInstanceZone string
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    nextHopIp string
    Network IP address of an instance that should handle matching packets.
    nextHopNetwork string
    URL to a Network that should handle matching packets.
    nextHopVpnTunnel string
    URL to a VpnTunnel that should handle matching packets.
    priority number
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink string
    The URI of the created resource.
    tags string[]
    A list of instance tags to which this route applies.
    description str
    An optional description of this resource. Provide this property when you create the resource.
    dest_range str
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    name str
    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? 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.
    network str
    The network that this route applies to.


    next_hop_gateway str
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    next_hop_ilb str
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    next_hop_instance str
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    next_hop_instance_zone str
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    next_hop_ip str
    Network IP address of an instance that should handle matching packets.
    next_hop_network str
    URL to a Network that should handle matching packets.
    next_hop_vpn_tunnel str
    URL to a VpnTunnel that should handle matching packets.
    priority int
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    self_link str
    The URI of the created resource.
    tags Sequence[str]
    A list of instance tags to which this route applies.
    description String
    An optional description of this resource. Provide this property when you create the resource.
    destRange String
    The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
    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? 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.
    network String
    The network that this route applies to.


    nextHopGateway String
    URL to a gateway that should handle matching packets. Currently, you can only specify the internet gateway, using a full or partial valid URL:

    • https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway
    • projects/project/global/gateways/default-internet-gateway
    • global/gateways/default-internet-gateway
    • The string default-internet-gateway.
    nextHopIlb String
    The IP address or URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. With the GA provider you can only specify the forwarding rule as a partial or full URL. For example, the following are all valid values:

    • 10.128.0.56
    • https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
    • regions/region/forwardingRules/forwardingRule When the beta provider, you can also specify the IP address of a forwarding rule from the same VPC or any peered VPC. Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
    nextHopInstance String
    URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:

    • https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
    • projects/project/zones/zone/instances/instance
    • zones/zone/instances/instance
    • Just the instance name, with the zone in next_hop_instance_zone.
    nextHopInstanceZone String
    (Optional when next_hop_instance is specified) The zone of the instance specified in next_hop_instance. Omit if next_hop_instance is specified as a URL.
    nextHopIp String
    Network IP address of an instance that should handle matching packets.
    nextHopNetwork String
    URL to a Network that should handle matching packets.
    nextHopVpnTunnel String
    URL to a VpnTunnel that should handle matching packets.
    priority Number
    The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink String
    The URI of the created resource.
    tags List<String>
    A list of instance tags to which this route applies.

    Import

    Route can be imported using any of these accepted formats:

    • projects/{{project}}/global/routes/{{name}}

    • {{project}}/{{name}}

    • {{name}}

    When using the pulumi import command, Route can be imported using one of the formats above. For example:

    $ pulumi import gcp:compute/route:Route default projects/{{project}}/global/routes/{{name}}
    
    $ pulumi import gcp:compute/route:Route default {{project}}/{{name}}
    
    $ pulumi import gcp:compute/route:Route default {{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v7.29.0 published on Wednesday, Jun 26, 2024 by Pulumi