Class Route
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:
- API documentation
- How-to Guides
- Using Routes
Example Usage - Route Basic
using Pulumi;
using Gcp = Pulumi.Gcp;
class MyStack : Stack
{
public MyStack()
{
var defaultNetwork = new Gcp.Compute.Network("defaultNetwork", new Gcp.Compute.NetworkArgs
{
});
var defaultRoute = new Gcp.Compute.Route("defaultRoute", new Gcp.Compute.RouteArgs
{
DestRange = "15.0.0.0/24",
Network = defaultNetwork.Name,
NextHopIp = "10.132.1.5",
Priority = 100,
});
}
}
Inherited Members
Namespace: Pulumi.Gcp.Compute
Assembly: Pulumi.Gcp.dll
Syntax
public class Route : CustomResource
Constructors
View SourceRoute(String, RouteArgs, CustomResourceOptions)
Create a Route resource with the given unique name, arguments, and options.
Declaration
public Route(string name, RouteArgs args, CustomResourceOptions options = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The unique name of the resource |
| RouteArgs | args | The arguments used to populate this resource's properties |
| CustomResourceOptions | options | A bag of options that control this resource's behavior |
Properties
View SourceDescription
An optional description of this resource. Provide this property when you create the resource.
Declaration
public Output<string> Description { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
DestRange
The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
Declaration
public Output<string> DestRange { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
Name
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.
Declaration
public Output<string> Name { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
Network
The network that this route applies to.
Declaration
public Output<string> Network { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
NextHopGateway
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-gatewayprojects/project/global/gateways/default-internet-gatewayglobal/gateways/default-internet-gateway- The string
default-internet-gateway.
Declaration
public Output<string> NextHopGateway { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
NextHopIlb
The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets. You can only specify the forwarding rule as a partial or full URL. For example, the following are all valid URLs: https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule regions/region/forwardingRules/forwardingRule Note that this can only be used when the destinationRange is a public (non-RFC 1918) IP CIDR range.
Declaration
public Output<string> NextHopIlb { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
NextHopInstance
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/instanceprojects/project/zones/zone/instances/instancezones/zone/instances/instance- Just the instance name, with the zone in
next_hop_instance_zone.
Declaration
public Output<string> NextHopInstance { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
NextHopInstanceZone
(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.
Declaration
public Output<string> NextHopInstanceZone { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
NextHopIp
Network IP address of an instance that should handle matching packets.
Declaration
public Output<string> NextHopIp { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
NextHopNetwork
URL to a Network that should handle matching packets.
Declaration
public Output<string> NextHopNetwork { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
NextHopVpnTunnel
URL to a VpnTunnel that should handle matching packets.
Declaration
public Output<string> NextHopVpnTunnel { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
Priority
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.
Declaration
public Output<int?> Priority { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.Nullable<System.Int32>> |
Project
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Declaration
public Output<string> Project { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
SelfLink
The URI of the created resource.
Declaration
public Output<string> SelfLink { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.String> |
Tags
A list of instance tags to which this route applies.
Declaration
public Output<ImmutableArray<string>> Tags { get; }
Property Value
| Type | Description |
|---|---|
| Output<System.Collections.Immutable.ImmutableArray<System.String>> |
Methods
View SourceGet(String, Input<String>, RouteState, CustomResourceOptions)
Get an existing Route resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
Declaration
public static Route Get(string name, Input<string> id, RouteState state = null, CustomResourceOptions options = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The unique name of the resulting resource. |
| Input<System.String> | id | The unique provider ID of the resource to lookup. |
| RouteState | state | Any extra arguments used during the lookup. |
| CustomResourceOptions | options | A bag of options that control this resource's behavior |
Returns
| Type | Description |
|---|---|
| Route |