Traffic Mirror Session Args
data class TrafficMirrorSessionArgs(val dryRun: Output<Boolean>? = null, val enabled: Output<Boolean>? = null, val priority: Output<Int>? = null, val trafficMirrorFilterId: Output<String>? = null, val trafficMirrorSessionDescription: Output<String>? = null, val trafficMirrorSessionName: Output<String>? = null, val trafficMirrorSourceIds: Output<List<String>>? = null, val trafficMirrorTargetId: Output<String>? = null, val trafficMirrorTargetType: Output<String>? = null, val virtualNetworkId: Output<Int>? = null) : ConvertibleToJava<TrafficMirrorSessionArgs>
Provides a VPC Traffic Mirror Session resource. For information about VPC Traffic Mirror Session and how to use it, see What is Traffic Mirror Session.
NOTE: Available in v1.142.0+.
Example Usage
Basic Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
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.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
import com.pulumi.alicloud.ecs.Instance;
import com.pulumi.alicloud.ecs.InstanceArgs;
import com.pulumi.alicloud.ecs.EcsNetworkInterface;
import com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;
import com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachment;
import com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachmentArgs;
import com.pulumi.alicloud.vpc.TrafficMirrorFilter;
import com.pulumi.alicloud.vpc.TrafficMirrorFilterArgs;
import com.pulumi.alicloud.vpc.TrafficMirrorSession;
import com.pulumi.alicloud.vpc.TrafficMirrorSessionArgs;
import com.pulumi.codegen.internal.KeyedValue;
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 defaultInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.instanceTypeFamily("ecs.g7")
.build());
final var defaultZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("Instance")
.availableInstanceType(defaultInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.build());
final var defaultNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()
.nameRegex("default-NODELETING")
.build());
final var defaultSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()
.vpcId(defaultNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.build());
final var vswitchId = defaultSwitches.applyValue(getSwitchesResult -> getSwitchesResult.ids()[0]);
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.description("New security group")
.vpcId(defaultNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.build());
final var defaultImages = EcsFunctions.getImages(GetImagesArgs.builder()
.nameRegex("^ubuntu_[0-9]+_[0-9]+_x64*")
.mostRecent(true)
.owners("system")
.build());
for (var i = 0; i < 2; i++) {
new Instance("defaultInstance-" + i, InstanceArgs.builder()
.availabilityZone(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.instanceName("example_value")
.hostName("tf-testAcc")
.imageId(defaultImages.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
.instanceType(defaultInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.securityGroups(defaultSecurityGroup.id())
.vswitchId(vswitchId)
.systemDiskCategory("cloud_essd")
.build());
}
for (var i = 0; i < 2; i++) {
new EcsNetworkInterface("defaultEcsNetworkInterface-" + i, EcsNetworkInterfaceArgs.builder()
.networkInterfaceName("example_value")
.vswitchId(vswitchId)
.securityGroupIds(defaultSecurityGroup.id())
.build());
}
for (var i = 0; i < 2; i++) {
new EcsNetworkInterfaceAttachment("defaultEcsNetworkInterfaceAttachment-" + i, EcsNetworkInterfaceAttachmentArgs.builder()
.instanceId(defaultInstance.stream().map(element -> element.id()).collect(toList())[range.value()])
.networkInterfaceId(defaultEcsNetworkInterface.stream().map(element -> element.id()).collect(toList())[range.value()])
.build());
}
var defaultTrafficMirrorFilter = new TrafficMirrorFilter("defaultTrafficMirrorFilter", TrafficMirrorFilterArgs.builder()
.trafficMirrorFilterName("example_value")
.trafficMirrorFilterDescription("example_value")
.build());
var defaultTrafficMirrorSession = new TrafficMirrorSession("defaultTrafficMirrorSession", TrafficMirrorSessionArgs.builder()
.priority(1)
.virtualNetworkId(10)
.trafficMirrorSessionDescription("example_value")
.trafficMirrorSessionName("example_value")
.trafficMirrorTargetId(defaultEcsNetworkInterfaceAttachment[0].networkInterfaceId())
.trafficMirrorSourceIds(defaultEcsNetworkInterfaceAttachment[1].networkInterfaceId())
.trafficMirrorFilterId(defaultTrafficMirrorFilter.id())
.trafficMirrorTargetType("NetworkInterface")
.build());
}
}
Content copied to clipboard
Import
VPC Traffic Mirror Session can be imported using the id, e.g.
$ pulumi import alicloud:vpc/trafficMirrorSession:TrafficMirrorSession example <id>
Content copied to clipboard
Constructors
Link copied to clipboard
fun TrafficMirrorSessionArgs(dryRun: Output<Boolean>? = null, enabled: Output<Boolean>? = null, priority: Output<Int>? = null, trafficMirrorFilterId: Output<String>? = null, trafficMirrorSessionDescription: Output<String>? = null, trafficMirrorSessionName: Output<String>? = null, trafficMirrorSourceIds: Output<List<String>>? = null, trafficMirrorTargetId: Output<String>? = null, trafficMirrorTargetType: Output<String>? = null, virtualNetworkId: Output<Int>? = null)
Functions
Properties
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: 0
to 16777215
. You can specify VNIs for the traffic mirror destination to identify mirrored traffic from different sessions. If you do not specify a VNI, the system randomly allocates a VNI. If you want the system to randomly allocate a VNI, ignore this parameter.