TrafficMirrorSessionArgs

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());
}
}

Import

VPC Traffic Mirror Session can be imported using the id, e.g.

$ pulumi import alicloud:vpc/trafficMirrorSession:TrafficMirrorSession example <id>

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

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

Properties

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

The dry run.

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

Specifies whether to enable traffic mirror sessions. default to false.

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

The priority of the traffic mirror session. Valid values: 1 to 32766. A smaller value indicates a higher priority. You cannot specify the same priority for traffic mirror sessions that are created in the same region with the same Alibaba Cloud account.

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

The ID of the filter.

Link copied to clipboard

The description of the traffic mirror session. The description must be 2 to 256 characters in length and cannot start with http:// or https://.

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

The name of the traffic mirror session. The name must be 2 to 128 characters in length and can contain digits, underscores (_), and hyphens (-). It must start with a letter.

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

The ID of the mirror source. You can specify only an elastic network interface (ENI) as the mirror source. NOTE: Only one mirror source can be added to a traffic mirror session.

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

The ID of the mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a mirror destination.

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

The type of the mirror destination. Valid values: NetworkInterface or SLB. NetworkInterface: an ENI. SLB: an internal-facing SLB instance

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

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.