Show / Hide Table of Contents

Namespace Pulumi.AliCloud.Vpc

Classes

CommonBandwithPackage

CommonBandwithPackageArgs

CommonBandwithPackageAttachment

CommonBandwithPackageAttachmentArgs

CommonBandwithPackageAttachmentState

CommonBandwithPackageState

ForwardEntry

Provides a forward resource.

Example Usage

using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
public MyStack()
{
    var config = new Config();
    var name = config.Get("name") ?? "forward-entry-example-name";
    var defaultZones = Output.Create(AliCloud.GetZones.InvokeAsync(new AliCloud.GetZonesArgs
    {
        AvailableResourceCreation = "VSwitch",
    }));
    var defaultNetwork = new AliCloud.Vpc.Network("defaultNetwork", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "172.16.0.0/12",
    });
    var defaultSwitch = new AliCloud.Vpc.Switch("defaultSwitch", new AliCloud.Vpc.SwitchArgs
    {
        AvailabilityZone = defaultZones.Apply(defaultZones => defaultZones.Zones[0].Id),
        CidrBlock = "172.16.0.0/21",
        VpcId = defaultNetwork.Id,
    });
    var defaultNatGateway = new AliCloud.Vpc.NatGateway("defaultNatGateway", new AliCloud.Vpc.NatGatewayArgs
    {
        Specification = "Small",
        VpcId = defaultNetwork.Id,
    });
    var defaultEip = new AliCloud.Ecs.Eip("defaultEip", new AliCloud.Ecs.EipArgs
    {
    });
    var defaultEipAssociation = new AliCloud.Ecs.EipAssociation("defaultEipAssociation", new AliCloud.Ecs.EipAssociationArgs
    {
        AllocationId = defaultEip.Id,
        InstanceId = defaultNatGateway.Id,
    });
    var defaultForwardEntry = new AliCloud.Vpc.ForwardEntry("defaultForwardEntry", new AliCloud.Vpc.ForwardEntryArgs
    {
        ExternalIp = defaultEip.IpAddress,
        ExternalPort = "80",
        ForwardTableId = defaultNatGateway.ForwardTableIds,
        InternalIp = "172.16.0.3",
        InternalPort = "8080",
        IpProtocol = "tcp",
    });
}

}

ForwardEntryArgs

ForwardEntryState

GetCommonBandwidthPackages

GetCommonBandwidthPackagesArgs

GetCommonBandwidthPackagesResult

GetForwardEntries

GetForwardEntriesArgs

GetForwardEntriesResult

GetNatGateways

GetNatGatewaysArgs

GetNatGatewaysResult

GetNetworks

GetNetworksArgs

GetNetworksResult

GetRouteEntries

GetRouteEntriesArgs

GetRouteEntriesResult

GetRouterInterfaces

GetRouterInterfacesArgs

GetRouterInterfacesResult

GetRouteTables

GetRouteTablesArgs

GetRouteTablesResult

GetSnatEntries

GetSnatEntriesArgs

GetSnatEntriesResult

GetSslVpnClientCerts

GetSslVpnClientCertsArgs

GetSslVpnClientCertsResult

GetSslVpnServers

GetSslVpnServersArgs

GetSslVpnServersResult

GetSwitches

GetSwitchesArgs

GetSwitchesResult

HAVip

HAVipArgs

HAVipAttachment

HAVipAttachmentArgs

HAVipAttachmentState

HAVipState

NatGateway

NatGatewayArgs

NatGatewayState

Network

NetworkAcl

Provides a network acl resource to add network acls.

NOTE: Available in 1.43.0+. Currently, the resource are only available in Hongkong(cn-hongkong), India(ap-south-1), and Indonesia(ap-southeast-1) regions.

Example Usage

using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
public MyStack()
{
    var defaultNetwork = new AliCloud.Vpc.Network("defaultNetwork", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "172.16.0.0/12",
    });
    var defaultNetworkAcl = new AliCloud.Vpc.NetworkAcl("defaultNetworkAcl", new AliCloud.Vpc.NetworkAclArgs
    {
        Description = "network_acl",
        VpcId = defaultNetwork.Id,
    });
}

}

NetworkAclArgs

NetworkAclAttachment

Provides a network acl attachment resource to associate network acls to vswitches.

NOTE: Available in 1.44.0+. Currently, the resource are only available in Hongkong(cn-hongkong), India(ap-south-1), and Indonesia(ap-southeast-1) regions.

Example Usage

using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
public MyStack()
{
    var config = new Config();
    var name = config.Get("name") ?? "NatGatewayConfigSpec";
    var defaultZones = Output.Create(AliCloud.GetZones.InvokeAsync(new AliCloud.GetZonesArgs
    {
        AvailableResourceCreation = "VSwitch",
    }));
    var defaultNetwork = new AliCloud.Vpc.Network("defaultNetwork", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "172.16.0.0/12",
    });
    var defaultNetworkAcl = new AliCloud.Vpc.NetworkAcl("defaultNetworkAcl", new AliCloud.Vpc.NetworkAclArgs
    {
        VpcId = defaultNetwork.Id,
    });
    var defaultSwitch = new AliCloud.Vpc.Switch("defaultSwitch", new AliCloud.Vpc.SwitchArgs
    {
        AvailabilityZone = defaultZones.Apply(defaultZones => defaultZones.Zones[0].Id),
        CidrBlock = "172.16.0.0/21",
        VpcId = defaultNetwork.Id,
    });
    var defaultNetworkAclAttachment = new AliCloud.Vpc.NetworkAclAttachment("defaultNetworkAclAttachment", new AliCloud.Vpc.NetworkAclAttachmentArgs
    {
        NetworkAclId = defaultNetworkAcl.Id,
        Resources = 
        {
            new AliCloud.Vpc.Inputs.NetworkAclAttachmentResourceArgs
            {
                ResourceId = defaultSwitch.Id,
                ResourceType = "VSwitch",
            },
        },
    });
}

}

NetworkAclAttachmentArgs

NetworkAclAttachmentState

NetworkAclEntries

Provides a network acl entries resource to create ingress and egress entries.

NOTE: Available in 1.45.0+. Currently, the resource are only available in Hongkong(cn-hongkong), India(ap-south-1), and Indonesia(ap-southeast-1) regions.

NOTE: It doesn't support concurrency and the order of the ingress and egress entries determines the priority.

NOTE: Using this resource need to open a whitelist.

Example Usage

using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
public MyStack()
{
    var config = new Config();
    var name = config.Get("name") ?? "NetworkAclEntries";
    var defaultZones = Output.Create(AliCloud.GetZones.InvokeAsync(new AliCloud.GetZonesArgs
    {
        AvailableResourceCreation = "VSwitch",
    }));
    var defaultNetwork = new AliCloud.Vpc.Network("defaultNetwork", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "172.16.0.0/12",
    });
    var defaultNetworkAcl = new AliCloud.Vpc.NetworkAcl("defaultNetworkAcl", new AliCloud.Vpc.NetworkAclArgs
    {
        VpcId = defaultNetwork.Id,
    });
    var defaultSwitch = new AliCloud.Vpc.Switch("defaultSwitch", new AliCloud.Vpc.SwitchArgs
    {
        AvailabilityZone = defaultZones.Apply(defaultZones => defaultZones.Zones[0].Id),
        CidrBlock = "172.16.0.0/21",
        VpcId = defaultNetwork.Id,
    });
    var defaultNetworkAclAttachment = new AliCloud.Vpc.NetworkAclAttachment("defaultNetworkAclAttachment", new AliCloud.Vpc.NetworkAclAttachmentArgs
    {
        NetworkAclId = defaultNetworkAcl.Id,
        Resources = 
        {
            new AliCloud.Vpc.Inputs.NetworkAclAttachmentResourceArgs
            {
                ResourceId = defaultSwitch.Id,
                ResourceType = "VSwitch",
            },
        },
    });
    var defaultNetworkAclEntries = new AliCloud.Vpc.NetworkAclEntries("defaultNetworkAclEntries", new AliCloud.Vpc.NetworkAclEntriesArgs
    {
        Egresses = 
        {
            new AliCloud.Vpc.Inputs.NetworkAclEntriesEgressArgs
            {
                Description = name,
                DestinationCidrIp = "0.0.0.0/32",
                EntryType = "custom",
                Name = name,
                Policy = "accept",
                Port = "-1/-1",
                Protocol = "all",
            },
        },
        Ingresses = 
        {
            new AliCloud.Vpc.Inputs.NetworkAclEntriesIngressArgs
            {
                Description = name,
                EntryType = "custom",
                Name = name,
                Policy = "accept",
                Port = "-1/-1",
                Protocol = "all",
                SourceCidrIp = "0.0.0.0/32",
            },
        },
        NetworkAclId = defaultNetworkAcl.Id,
    });
}

}

NetworkAclEntriesArgs

NetworkAclEntriesState

NetworkAclState

NetworkArgs

NetworkInterface

Provides an ECS Elastic Network Interface resource.

For information about Elastic Network Interface and how to use it, see Elastic Network Interface.

NOTE Only one of private_ips or private_ips_count can be specified when assign private IPs.

Example Usage

using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
public MyStack()
{
    var config = new Config();
    var name = config.Get("name") ?? "networkInterfaceName";
    var vpc = new AliCloud.Vpc.Network("vpc", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "192.168.0.0/24",
    });
    var defaultZones = Output.Create(AliCloud.GetZones.InvokeAsync(new AliCloud.GetZonesArgs
    {
        AvailableResourceCreation = "VSwitch",
    }));
    var vswitch = new AliCloud.Vpc.Switch("vswitch", new AliCloud.Vpc.SwitchArgs
    {
        AvailabilityZone = defaultZones.Apply(defaultZones => defaultZones.Zones[0].Id),
        CidrBlock = "192.168.0.0/24",
        VpcId = vpc.Id,
    });
    var @group = new AliCloud.Ecs.SecurityGroup("group", new AliCloud.Ecs.SecurityGroupArgs
    {
        VpcId = vpc.Id,
    });
    var defaultNetworkInterface = new AliCloud.Vpc.NetworkInterface("defaultNetworkInterface", new AliCloud.Vpc.NetworkInterfaceArgs
    {
        PrivateIp = "192.168.0.2",
        PrivateIpsCount = 3,
        SecurityGroups = 
        {
            @group.Id,
        },
        VswitchId = vswitch.Id,
    });
}

}

NetworkInterfaceArgs

NetworkInterfaceAttachment

Provides an Alicloud ECS Elastic Network Interface Attachment as a resource to attach ENI to or detach ENI from ECS Instances.

For information about Elastic Network Interface and how to use it, see Elastic Network Interface.

Example Usage

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
public MyStack()
{
    var config = new Config();
    var name = config.Get("name") ?? "networkInterfaceAttachment";
    var number = config.Get("number") ?? "2";
    var vpc = new AliCloud.Vpc.Network("vpc", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "192.168.0.0/24",
    });
    var defaultZones = Output.Create(AliCloud.GetZones.InvokeAsync(new AliCloud.GetZonesArgs
    {
        AvailableResourceCreation = "VSwitch",
    }));
    var vswitch = new AliCloud.Vpc.Switch("vswitch", new AliCloud.Vpc.SwitchArgs
    {
        AvailabilityZone = defaultZones.Apply(defaultZones => defaultZones.Zones[0].Id),
        CidrBlock = "192.168.0.0/24",
        VpcId = vpc.Id,
    });
    var @group = new AliCloud.Ecs.SecurityGroup("group", new AliCloud.Ecs.SecurityGroupArgs
    {
        VpcId = vpc.Id,
    });
    var instanceType = defaultZones.Apply(defaultZones => Output.Create(AliCloud.Ecs.GetInstanceTypes.InvokeAsync(new AliCloud.Ecs.GetInstanceTypesArgs
    {
        AvailabilityZone = defaultZones.Zones[0].Id,
        EniAmount = 2,
    })));
    var defaultImages = Output.Create(AliCloud.Ecs.GetImages.InvokeAsync(new AliCloud.Ecs.GetImagesArgs
    {
        MostRecent = true,
        NameRegex = "^ubuntu_18.*64",
        Owners = "system",
    }));
    var instance = new List<AliCloud.Ecs.Instance>();
    for (var rangeIndex = 0; rangeIndex < number; rangeIndex++)
    {
        var range = new { Value = rangeIndex };
        instance.Add(new AliCloud.Ecs.Instance($"instance-{range.Value}", new AliCloud.Ecs.InstanceArgs
        {
            AvailabilityZone = defaultZones.Apply(defaultZones => defaultZones.Zones[0].Id),
            ImageId = defaultImages.Apply(defaultImages => defaultImages.Images[0].Id),
            InstanceName = name,
            InstanceType = instanceType.Apply(instanceType => instanceType.InstanceTypes[0].Id),
            InternetMaxBandwidthOut = 10,
            SecurityGroups = 
            {
                @group.Id,
            },
            SystemDiskCategory = "cloud_efficiency",
            VswitchId = vswitch.Id,
        }));
    }
    var @interface = new List<AliCloud.Vpc.NetworkInterface>();
    for (var rangeIndex = 0; rangeIndex < number; rangeIndex++)
    {
        var range = new { Value = rangeIndex };
        @interface.Add(new AliCloud.Vpc.NetworkInterface($"interface-{range.Value}", new AliCloud.Vpc.NetworkInterfaceArgs
        {
            SecurityGroups = 
            {
                @group.Id,
            },
            VswitchId = vswitch.Id,
        }));
    }
    var attachment = new List<AliCloud.Vpc.NetworkInterfaceAttachment>();
    for (var rangeIndex = 0; rangeIndex < number; rangeIndex++)
    {
        var range = new { Value = rangeIndex };
        attachment.Add(new AliCloud.Vpc.NetworkInterfaceAttachment($"attachment-{range.Value}", new AliCloud.Vpc.NetworkInterfaceAttachmentArgs
        {
            InstanceId = instance.Select(__item => __item.Id).ToList()[range.Index],
            NetworkInterfaceId = @interface.Select(__item => __item.Id).ToList()[range.Index],
        }));
    }
}

}

NetworkInterfaceAttachmentArgs

NetworkInterfaceAttachmentState

NetworkInterfaceState

NetworkState

RouteEntry

RouteEntryArgs

RouteEntryState

RouterInterface

RouterInterfaceArgs

RouterInterfaceConnection

Provides a VPC router interface connection resource to connect two router interfaces which are in two different VPCs. After that, all of the two router interfaces will be active.

NOTE: At present, Router interface does not support changing opposite router interface, the connection delete action is only deactivating it to inactive, not modifying the connection to empty.

NOTE: If you want to changing opposite router interface, you can delete router interface and re-build them.

NOTE: A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.

NOTE: Please remember to add a depends_on clause in the router interface connection from the InitiatingSide to the AcceptingSide, because the connection from the AcceptingSide to the InitiatingSide must be done first.

Example Usage

using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
public MyStack()
{
    var config = new Config();
    var region = config.Get("region") ?? "cn-hangzhou";
    var name = config.Get("name") ?? "alicloudRouterInterfaceConnectionBasic";
    var fooNetwork = new AliCloud.Vpc.Network("fooNetwork", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "172.16.0.0/12",
    });
    var barNetwork = new AliCloud.Vpc.Network("barNetwork", new AliCloud.Vpc.NetworkArgs
    {
        CidrBlock = "192.168.0.0/16",
    });
    var initiate = new AliCloud.Vpc.RouterInterface("initiate", new AliCloud.Vpc.RouterInterfaceArgs
    {
        Description = name,
        InstanceChargeType = "PostPaid",
        OppositeRegion = region,
        Role = "InitiatingSide",
        RouterId = fooNetwork.RouterId,
        RouterType = "VRouter",
        Specification = "Large.2",
    });
    var opposite = new AliCloud.Vpc.RouterInterface("opposite", new AliCloud.Vpc.RouterInterfaceArgs
    {
        Description = $"{name}-opposite",
        OppositeRegion = region,
        Role = "AcceptingSide",
        RouterId = barNetwork.RouterId,
        RouterType = "VRouter",
        Specification = "Large.1",
    });
    // A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.
    var fooRouterInterfaceConnection = new AliCloud.Vpc.RouterInterfaceConnection("fooRouterInterfaceConnection", new AliCloud.Vpc.RouterInterfaceConnectionArgs
    {
        InterfaceId = initiate.Id,
        OppositeInterfaceId = opposite.Id,
    });
    var barRouterInterfaceConnection = new AliCloud.Vpc.RouterInterfaceConnection("barRouterInterfaceConnection", new AliCloud.Vpc.RouterInterfaceConnectionArgs
    {
        InterfaceId = opposite.Id,
        OppositeInterfaceId = initiate.Id,
    });
}

}

RouterInterfaceConnectionArgs

RouterInterfaceConnectionState

RouterInterfaceState

RouteTable

RouteTableArgs

RouteTableAttachment

RouteTableAttachmentArgs

RouteTableAttachmentState

RouteTableState

SnatEntry

Provides a snat resource.

SnatEntryArgs

SnatEntryState

Subnet

SubnetArgs

SubnetState

Switch

SwitchArgs

SwitchState

Back to top Copyright 2016-2020, Pulumi Corporation.