RouteEntry

class RouteEntry : KotlinCustomResource

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "tf-example";
const default = alicloud.getZones({
availableDiskCategory: "cloud_efficiency",
availableResourceCreation: "VSwitch",
});
const defaultGetNetworks = alicloud.vpc.getNetworks({
nameRegex: "^default-NODELETING$",
});
const defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) => alicloud.vpc.getSwitches({
vpcId: defaultGetNetworks.ids?.[0],
zoneId: _default.ids?.[0],
}));
const defaultGateway = new alicloud.vpn.Gateway("default", {
name: "terraform-example",
vpcId: defaultGetNetworks.then(defaultGetNetworks => defaultGetNetworks.ids?.[0]),
bandwidth: 10,
instanceChargeType: "PrePaid",
enableSsl: false,
vswitchId: defaultGetSwitches.then(defaultGetSwitches => defaultGetSwitches.ids?.[0]),
});
const defaultCustomerGateway = new alicloud.vpn.CustomerGateway("default", {
name: name,
ipAddress: "192.168.1.1",
});
const defaultConnection = new alicloud.vpn.Connection("default", {
name: name,
customerGatewayId: defaultCustomerGateway.id,
vpnGatewayId: defaultGateway.id,
localSubnets: ["192.168.2.0/24"],
remoteSubnets: ["192.168.3.0/24"],
});
const defaultRouteEntry = new alicloud.vpn.RouteEntry("default", {
vpnGatewayId: defaultGateway.id,
routeDest: "10.0.0.0/24",
nextHop: defaultConnection.id,
weight: 0,
publishVpc: false,
});
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "tf-example"
default = alicloud.get_zones(available_disk_category="cloud_efficiency",
available_resource_creation="VSwitch")
default_get_networks = alicloud.vpc.get_networks(name_regex="^default-NODELETING$")
default_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],
zone_id=default.ids[0])
default_gateway = alicloud.vpn.Gateway("default",
name="terraform-example",
vpc_id=default_get_networks.ids[0],
bandwidth=10,
instance_charge_type="PrePaid",
enable_ssl=False,
vswitch_id=default_get_switches.ids[0])
default_customer_gateway = alicloud.vpn.CustomerGateway("default",
name=name,
ip_address="192.168.1.1")
default_connection = alicloud.vpn.Connection("default",
name=name,
customer_gateway_id=default_customer_gateway.id,
vpn_gateway_id=default_gateway.id,
local_subnets=["192.168.2.0/24"],
remote_subnets=["192.168.3.0/24"])
default_route_entry = alicloud.vpn.RouteEntry("default",
vpn_gateway_id=default_gateway.id,
route_dest="10.0.0.0/24",
next_hop=default_connection.id,
weight=0,
publish_vpc=False)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "tf-example";
var @default = AliCloud.GetZones.Invoke(new()
{
AvailableDiskCategory = "cloud_efficiency",
AvailableResourceCreation = "VSwitch",
});
var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()
{
NameRegex = "^default-NODELETING$",
});
var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()
{
VpcId = defaultGetNetworks.Apply(getNetworksResult => getNetworksResult.Ids[0]),
ZoneId = @default.Apply(getZonesResult => getZonesResult.Ids[0]),
});
var defaultGateway = new AliCloud.Vpn.Gateway("default", new()
{
Name = "terraform-example",
VpcId = defaultGetNetworks.Apply(getNetworksResult => getNetworksResult.Ids[0]),
Bandwidth = 10,
InstanceChargeType = "PrePaid",
EnableSsl = false,
VswitchId = defaultGetSwitches.Apply(getSwitchesResult => getSwitchesResult.Ids[0]),
});
var defaultCustomerGateway = new AliCloud.Vpn.CustomerGateway("default", new()
{
Name = name,
IpAddress = "192.168.1.1",
});
var defaultConnection = new AliCloud.Vpn.Connection("default", new()
{
Name = name,
CustomerGatewayId = defaultCustomerGateway.Id,
VpnGatewayId = defaultGateway.Id,
LocalSubnets = new[]
{
"192.168.2.0/24",
},
RemoteSubnets = new[]
{
"192.168.3.0/24",
},
});
var defaultRouteEntry = new AliCloud.Vpn.RouteEntry("default", new()
{
VpnGatewayId = defaultGateway.Id,
RouteDest = "10.0.0.0/24",
NextHop = defaultConnection.Id,
Weight = 0,
PublishVpc = false,
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "tf-example"
if param := cfg.Get("name"); param != "" {
name = param
}
_default, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableDiskCategory: pulumi.StringRef("cloud_efficiency"),
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
defaultGetNetworks, err := vpc.GetNetworks(ctx, &vpc.GetNetworksArgs{
NameRegex: pulumi.StringRef("^default-NODELETING$"),
}, nil)
if err != nil {
return err
}
defaultGetSwitches, err := vpc.GetSwitches(ctx, &vpc.GetSwitchesArgs{
VpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),
ZoneId: pulumi.StringRef(_default.Ids[0]),
}, nil)
if err != nil {
return err
}
defaultGateway, err := vpn.NewGateway(ctx, "default", &vpn.GatewayArgs{
Name: pulumi.String("terraform-example"),
VpcId: pulumi.String(defaultGetNetworks.Ids[0]),
Bandwidth: pulumi.Int(10),
InstanceChargeType: pulumi.String("PrePaid"),
EnableSsl: pulumi.Bool(false),
VswitchId: pulumi.String(defaultGetSwitches.Ids[0]),
})
if err != nil {
return err
}
defaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, "default", &vpn.CustomerGatewayArgs{
Name: pulumi.String(name),
IpAddress: pulumi.String("192.168.1.1"),
})
if err != nil {
return err
}
defaultConnection, err := vpn.NewConnection(ctx, "default", &vpn.ConnectionArgs{
Name: pulumi.String(name),
CustomerGatewayId: defaultCustomerGateway.ID(),
VpnGatewayId: defaultGateway.ID(),
LocalSubnets: pulumi.StringArray{
pulumi.String("192.168.2.0/24"),
},
RemoteSubnets: pulumi.StringArray{
pulumi.String("192.168.3.0/24"),
},
})
if err != nil {
return err
}
_, err = vpn.NewRouteEntry(ctx, "default", &vpn.RouteEntryArgs{
VpnGatewayId: defaultGateway.ID(),
RouteDest: pulumi.String("10.0.0.0/24"),
NextHop: defaultConnection.ID(),
Weight: pulumi.Int(0),
PublishVpc: pulumi.Bool(false),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.VpcFunctions;
import com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;
import com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;
import com.pulumi.alicloud.vpn.Gateway;
import com.pulumi.alicloud.vpn.GatewayArgs;
import com.pulumi.alicloud.vpn.CustomerGateway;
import com.pulumi.alicloud.vpn.CustomerGatewayArgs;
import com.pulumi.alicloud.vpn.Connection;
import com.pulumi.alicloud.vpn.ConnectionArgs;
import com.pulumi.alicloud.vpn.RouteEntry;
import com.pulumi.alicloud.vpn.RouteEntryArgs;
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) {
final var config = ctx.config();
final var name = config.get("name").orElse("tf-example");
final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableDiskCategory("cloud_efficiency")
.availableResourceCreation("VSwitch")
.build());
final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()
.nameRegex("^default-NODELETING$")
.build());
final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()
.vpcId(defaultGetNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.zoneId(default_.ids()[0])
.build());
var defaultGateway = new Gateway("defaultGateway", GatewayArgs.builder()
.name("terraform-example")
.vpcId(defaultGetNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.bandwidth(10)
.instanceChargeType("PrePaid")
.enableSsl(false)
.vswitchId(defaultGetSwitches.applyValue(getSwitchesResult -> getSwitchesResult.ids()[0]))
.build());
var defaultCustomerGateway = new CustomerGateway("defaultCustomerGateway", CustomerGatewayArgs.builder()
.name(name)
.ipAddress("192.168.1.1")
.build());
var defaultConnection = new Connection("defaultConnection", ConnectionArgs.builder()
.name(name)
.customerGatewayId(defaultCustomerGateway.id())
.vpnGatewayId(defaultGateway.id())
.localSubnets("192.168.2.0/24")
.remoteSubnets("192.168.3.0/24")
.build());
var defaultRouteEntry = new RouteEntry("defaultRouteEntry", RouteEntryArgs.builder()
.vpnGatewayId(defaultGateway.id())
.routeDest("10.0.0.0/24")
.nextHop(defaultConnection.id())
.weight(0)
.publishVpc(false)
.build());
}
}
configuration:
name:
type: string
default: tf-example
resources:
defaultGateway:
type: alicloud:vpn:Gateway
name: default
properties:
name: terraform-example
vpcId: ${defaultGetNetworks.ids[0]}
bandwidth: 10
instanceChargeType: PrePaid
enableSsl: false
vswitchId: ${defaultGetSwitches.ids[0]}
defaultConnection:
type: alicloud:vpn:Connection
name: default
properties:
name: ${name}
customerGatewayId: ${defaultCustomerGateway.id}
vpnGatewayId: ${defaultGateway.id}
localSubnets:
- 192.168.2.0/24
remoteSubnets:
- 192.168.3.0/24
defaultCustomerGateway:
type: alicloud:vpn:CustomerGateway
name: default
properties:
name: ${name}
ipAddress: 192.168.1.1
defaultRouteEntry:
type: alicloud:vpn:RouteEntry
name: default
properties:
vpnGatewayId: ${defaultGateway.id}
routeDest: 10.0.0.0/24
nextHop: ${defaultConnection.id}
weight: 0
publishVpc: false
variables:
default:
fn::invoke:
Function: alicloud:getZones
Arguments:
availableDiskCategory: cloud_efficiency
availableResourceCreation: VSwitch
defaultGetNetworks:
fn::invoke:
Function: alicloud:vpc:getNetworks
Arguments:
nameRegex: ^default-NODELETING$
defaultGetSwitches:
fn::invoke:
Function: alicloud:vpc:getSwitches
Arguments:
vpcId: ${defaultGetNetworks.ids[0]}
zoneId: ${default.ids[0]}

Import

VPN route entry can be imported using the id(VpnGatewayId +":"+ NextHop +":"+ RouteDest), e.g.

$ pulumi import alicloud:vpn/routeEntry:RouteEntry example vpn-abc123456:vco-abc123456:10.0.0.10/24

Properties

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val nextHop: Output<String>

The next hop of the destination route.

Link copied to clipboard
val publishVpc: Output<Boolean>

Whether to issue the destination route to the VPC.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val routeDest: Output<String>

The destination network segment of the destination route.

Link copied to clipboard
val routeEntryType: Output<String>

(Available in 1.161.0+) The type of the vpn route entry.

Link copied to clipboard
val status: Output<String>

(Available in 1.161.0+) The status of the vpn route entry.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard
val vpnGatewayId: Output<String>

The id of the vpn gateway.

Link copied to clipboard
val weight: Output<Int>

The value should be 0 or 100.