SwitchArgs

data class SwitchArgs(val availabilityZone: Output<String>? = null, val cidrBlock: Output<String>? = null, val description: Output<String>? = null, val enableIpv6: Output<Boolean>? = null, val ipv6CidrBlockMask: Output<Int>? = null, val isDefault: Output<Boolean>? = null, val name: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val vpcId: Output<String>? = null, val vswitchName: Output<String>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<SwitchArgs>

Provides a VPC Vswitch resource. ## Module Support You can use to the existing vpc module to create a VPC and several VSwitches one-click. For information about VPC Vswitch and how to use it, see What is Vswitch.

NOTE: Available since v1.0.0.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const foo = alicloud.getZones({
availableResourceCreation: "VSwitch",
});
const fooNetwork = new alicloud.vpc.Network("foo", {
vpcName: "terraform-example",
cidrBlock: "172.16.0.0/12",
});
const fooSwitch = new alicloud.vpc.Switch("foo", {
vswitchName: "terraform-example",
cidrBlock: "172.16.0.0/21",
vpcId: fooNetwork.id,
zoneId: foo.then(foo => foo.zones?.[0]?.id),
});
import pulumi
import pulumi_alicloud as alicloud
foo = alicloud.get_zones(available_resource_creation="VSwitch")
foo_network = alicloud.vpc.Network("foo",
vpc_name="terraform-example",
cidr_block="172.16.0.0/12")
foo_switch = alicloud.vpc.Switch("foo",
vswitch_name="terraform-example",
cidr_block="172.16.0.0/21",
vpc_id=foo_network.id,
zone_id=foo.zones[0].id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var foo = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "VSwitch",
});
var fooNetwork = new AliCloud.Vpc.Network("foo", new()
{
VpcName = "terraform-example",
CidrBlock = "172.16.0.0/12",
});
var fooSwitch = new AliCloud.Vpc.Switch("foo", new()
{
VswitchName = "terraform-example",
CidrBlock = "172.16.0.0/21",
VpcId = fooNetwork.Id,
ZoneId = foo.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
});
});
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/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
foo, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
fooNetwork, err := vpc.NewNetwork(ctx, "foo", &vpc.NetworkArgs{
VpcName: pulumi.String("terraform-example"),
CidrBlock: pulumi.String("172.16.0.0/12"),
})
if err != nil {
return err
}
_, err = vpc.NewSwitch(ctx, "foo", &vpc.SwitchArgs{
VswitchName: pulumi.String("terraform-example"),
CidrBlock: pulumi.String("172.16.0.0/21"),
VpcId: fooNetwork.ID(),
ZoneId: pulumi.String(foo.Zones[0].Id),
})
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.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
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 foo = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("VSwitch")
.build());
var fooNetwork = new Network("fooNetwork", NetworkArgs.builder()
.vpcName("terraform-example")
.cidrBlock("172.16.0.0/12")
.build());
var fooSwitch = new Switch("fooSwitch", SwitchArgs.builder()
.vswitchName("terraform-example")
.cidrBlock("172.16.0.0/21")
.vpcId(fooNetwork.id())
.zoneId(foo.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.build());
}
}
resources:
fooNetwork:
type: alicloud:vpc:Network
name: foo
properties:
vpcName: terraform-example
cidrBlock: 172.16.0.0/12
fooSwitch:
type: alicloud:vpc:Switch
name: foo
properties:
vswitchName: terraform-example
cidrBlock: 172.16.0.0/21
vpcId: ${fooNetwork.id}
zoneId: ${foo.zones[0].id}
variables:
foo:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: VSwitch
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const foo = alicloud.getZones({
availableResourceCreation: "VSwitch",
});
const vpc = new alicloud.vpc.Network("vpc", {
vpcName: "terraform-example",
cidrBlock: "172.16.0.0/12",
});
const cidrBlocks = new alicloud.vpc.Ipv4CidrBlock("cidr_blocks", {
vpcId: vpc.id,
secondaryCidrBlock: "192.163.0.0/16",
});
const island_nat = new alicloud.vpc.Switch("island-nat", {
vpcId: cidrBlocks.vpcId,
cidrBlock: "172.16.0.0/21",
zoneId: foo.then(foo => foo.zones?.[0]?.id),
vswitchName: "terraform-example",
tags: {
BuiltBy: "example_value",
cnm_version: "example_value",
Environment: "example_value",
ManagedBy: "example_value",
},
});
import pulumi
import pulumi_alicloud as alicloud
foo = alicloud.get_zones(available_resource_creation="VSwitch")
vpc = alicloud.vpc.Network("vpc",
vpc_name="terraform-example",
cidr_block="172.16.0.0/12")
cidr_blocks = alicloud.vpc.Ipv4CidrBlock("cidr_blocks",
vpc_id=vpc.id,
secondary_cidr_block="192.163.0.0/16")
island_nat = alicloud.vpc.Switch("island-nat",
vpc_id=cidr_blocks.vpc_id,
cidr_block="172.16.0.0/21",
zone_id=foo.zones[0].id,
vswitch_name="terraform-example",
tags={
"BuiltBy": "example_value",
"cnm_version": "example_value",
"Environment": "example_value",
"ManagedBy": "example_value",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var foo = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "VSwitch",
});
var vpc = new AliCloud.Vpc.Network("vpc", new()
{
VpcName = "terraform-example",
CidrBlock = "172.16.0.0/12",
});
var cidrBlocks = new AliCloud.Vpc.Ipv4CidrBlock("cidr_blocks", new()
{
VpcId = vpc.Id,
SecondaryCidrBlock = "192.163.0.0/16",
});
var island_nat = new AliCloud.Vpc.Switch("island-nat", new()
{
VpcId = cidrBlocks.VpcId,
CidrBlock = "172.16.0.0/21",
ZoneId = foo.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
VswitchName = "terraform-example",
Tags =
{
{ "BuiltBy", "example_value" },
{ "cnm_version", "example_value" },
{ "Environment", "example_value" },
{ "ManagedBy", "example_value" },
},
});
});
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/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
foo, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
vpc, err := vpc.NewNetwork(ctx, "vpc", &vpc.NetworkArgs{
VpcName: pulumi.String("terraform-example"),
CidrBlock: pulumi.String("172.16.0.0/12"),
})
if err != nil {
return err
}
cidrBlocks, err := vpc.NewIpv4CidrBlock(ctx, "cidr_blocks", &vpc.Ipv4CidrBlockArgs{
VpcId: vpc.ID(),
SecondaryCidrBlock: pulumi.String("192.163.0.0/16"),
})
if err != nil {
return err
}
_, err = vpc.NewSwitch(ctx, "island-nat", &vpc.SwitchArgs{
VpcId: cidrBlocks.VpcId,
CidrBlock: pulumi.String("172.16.0.0/21"),
ZoneId: pulumi.String(foo.Zones[0].Id),
VswitchName: pulumi.String("terraform-example"),
Tags: pulumi.StringMap{
"BuiltBy": pulumi.String("example_value"),
"cnm_version": pulumi.String("example_value"),
"Environment": pulumi.String("example_value"),
"ManagedBy": pulumi.String("example_value"),
},
})
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.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Ipv4CidrBlock;
import com.pulumi.alicloud.vpc.Ipv4CidrBlockArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
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 foo = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("VSwitch")
.build());
var vpc = new Network("vpc", NetworkArgs.builder()
.vpcName("terraform-example")
.cidrBlock("172.16.0.0/12")
.build());
var cidrBlocks = new Ipv4CidrBlock("cidrBlocks", Ipv4CidrBlockArgs.builder()
.vpcId(vpc.id())
.secondaryCidrBlock("192.163.0.0/16")
.build());
var island_nat = new Switch("island-nat", SwitchArgs.builder()
.vpcId(cidrBlocks.vpcId())
.cidrBlock("172.16.0.0/21")
.zoneId(foo.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.vswitchName("terraform-example")
.tags(Map.ofEntries(
Map.entry("BuiltBy", "example_value"),
Map.entry("cnm_version", "example_value"),
Map.entry("Environment", "example_value"),
Map.entry("ManagedBy", "example_value")
))
.build());
}
}
resources:
vpc:
type: alicloud:vpc:Network
properties:
vpcName: terraform-example
cidrBlock: 172.16.0.0/12
cidrBlocks:
type: alicloud:vpc:Ipv4CidrBlock
name: cidr_blocks
properties:
vpcId: ${vpc.id}
secondaryCidrBlock: 192.163.0.0/16
island-nat:
type: alicloud:vpc:Switch
properties:
vpcId: ${cidrBlocks.vpcId}
cidrBlock: 172.16.0.0/21
zoneId: ${foo.zones[0].id}
vswitchName: terraform-example
tags:
BuiltBy: example_value
cnm_version: example_value
Environment: example_value
ManagedBy: example_value
variables:
foo:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: VSwitch

Create a switch associated with the additional network segment

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const foo = alicloud.getZones({
availableResourceCreation: "VSwitch",
});
const fooNetwork = new alicloud.vpc.Network("foo", {
vpcName: "terraform-example",
cidrBlock: "172.16.0.0/12",
});
const fooIpv4CidrBlock = new alicloud.vpc.Ipv4CidrBlock("foo", {
vpcId: fooNetwork.id,
secondaryCidrBlock: "192.163.0.0/16",
});
const fooSwitch = new alicloud.vpc.Switch("foo", {
vpcId: fooIpv4CidrBlock.vpcId,
cidrBlock: "192.163.0.0/24",
zoneId: foo.then(foo => foo.zones?.[0]?.id),
});
import pulumi
import pulumi_alicloud as alicloud
foo = alicloud.get_zones(available_resource_creation="VSwitch")
foo_network = alicloud.vpc.Network("foo",
vpc_name="terraform-example",
cidr_block="172.16.0.0/12")
foo_ipv4_cidr_block = alicloud.vpc.Ipv4CidrBlock("foo",
vpc_id=foo_network.id,
secondary_cidr_block="192.163.0.0/16")
foo_switch = alicloud.vpc.Switch("foo",
vpc_id=foo_ipv4_cidr_block.vpc_id,
cidr_block="192.163.0.0/24",
zone_id=foo.zones[0].id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var foo = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "VSwitch",
});
var fooNetwork = new AliCloud.Vpc.Network("foo", new()
{
VpcName = "terraform-example",
CidrBlock = "172.16.0.0/12",
});
var fooIpv4CidrBlock = new AliCloud.Vpc.Ipv4CidrBlock("foo", new()
{
VpcId = fooNetwork.Id,
SecondaryCidrBlock = "192.163.0.0/16",
});
var fooSwitch = new AliCloud.Vpc.Switch("foo", new()
{
VpcId = fooIpv4CidrBlock.VpcId,
CidrBlock = "192.163.0.0/24",
ZoneId = foo.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
});
});
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/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
foo, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
fooNetwork, err := vpc.NewNetwork(ctx, "foo", &vpc.NetworkArgs{
VpcName: pulumi.String("terraform-example"),
CidrBlock: pulumi.String("172.16.0.0/12"),
})
if err != nil {
return err
}
fooIpv4CidrBlock, err := vpc.NewIpv4CidrBlock(ctx, "foo", &vpc.Ipv4CidrBlockArgs{
VpcId: fooNetwork.ID(),
SecondaryCidrBlock: pulumi.String("192.163.0.0/16"),
})
if err != nil {
return err
}
_, err = vpc.NewSwitch(ctx, "foo", &vpc.SwitchArgs{
VpcId: fooIpv4CidrBlock.VpcId,
CidrBlock: pulumi.String("192.163.0.0/24"),
ZoneId: pulumi.String(foo.Zones[0].Id),
})
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.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Ipv4CidrBlock;
import com.pulumi.alicloud.vpc.Ipv4CidrBlockArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
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 foo = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("VSwitch")
.build());
var fooNetwork = new Network("fooNetwork", NetworkArgs.builder()
.vpcName("terraform-example")
.cidrBlock("172.16.0.0/12")
.build());
var fooIpv4CidrBlock = new Ipv4CidrBlock("fooIpv4CidrBlock", Ipv4CidrBlockArgs.builder()
.vpcId(fooNetwork.id())
.secondaryCidrBlock("192.163.0.0/16")
.build());
var fooSwitch = new Switch("fooSwitch", SwitchArgs.builder()
.vpcId(fooIpv4CidrBlock.vpcId())
.cidrBlock("192.163.0.0/24")
.zoneId(foo.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.build());
}
}
resources:
fooNetwork:
type: alicloud:vpc:Network
name: foo
properties:
vpcName: terraform-example
cidrBlock: 172.16.0.0/12
fooIpv4CidrBlock:
type: alicloud:vpc:Ipv4CidrBlock
name: foo
properties:
vpcId: ${fooNetwork.id}
secondaryCidrBlock: 192.163.0.0/16
fooSwitch:
type: alicloud:vpc:Switch
name: foo
properties:
vpcId: ${fooIpv4CidrBlock.vpcId}
cidrBlock: 192.163.0.0/24
zoneId: ${foo.zones[0].id}
variables:
foo:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: VSwitch

Import

VPC Vswitch can be imported using the id, e.g.

$ pulumi import alicloud:vpc/switch:Switch example <id>

Constructors

Link copied to clipboard
constructor(availabilityZone: Output<String>? = null, cidrBlock: Output<String>? = null, description: Output<String>? = null, enableIpv6: Output<Boolean>? = null, ipv6CidrBlockMask: Output<Int>? = null, isDefault: Output<Boolean>? = null, name: Output<String>? = null, tags: Output<Map<String, String>>? = null, vpcId: Output<String>? = null, vswitchName: Output<String>? = null, zoneId: Output<String>? = null)

Properties

Link copied to clipboard
val availabilityZone: Output<String>? = null

Field availability_zone has been deprecated from provider version 1.119.0. New field zone_id instead.

Link copied to clipboard
val cidrBlock: Output<String>? = null

The IPv4 CIDR block of the VSwitch. NOTE: From version 1.233.0, if you do not set is_default, or set is_default to false, cidr_block is required.

Link copied to clipboard
val description: Output<String>? = null

The description of VSwitch.

Link copied to clipboard
val enableIpv6: Output<Boolean>? = null

Whether the IPv6 function is enabled in the switch. Value:

Link copied to clipboard
val ipv6CidrBlockMask: Output<Int>? = null

The IPv6 CIDR block of the VSwitch.

Link copied to clipboard
val isDefault: Output<Boolean>? = null

Specifies whether to create the default VSwitch. Default value: false. Valid values:

Link copied to clipboard
val name: Output<String>? = null

Field name has been deprecated from provider version 1.119.0. New field vswitch_name instead.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

The tags of VSwitch.

Link copied to clipboard
val vpcId: Output<String>? = null

The VPC ID. NOTE: From version 1.233.0, if you do not set is_default, or set is_default to false, vpc_id is required.

Link copied to clipboard
val vswitchName: Output<String>? = null

The name of the VSwitch.

Link copied to clipboard
val zoneId: Output<String>? = null

The AZ for the VSwitch. Note: Required for a VPC VSwitch.

Functions

Link copied to clipboard
open override fun toJava(): SwitchArgs