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_onclause 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.