gcp.compute.PacketMirroring
Explore with Pulumi AI
Packet Mirroring mirrors traffic to and from particular VM instances. You can use the collected traffic to help you detect security threats and monitor application performance.
To get more information about PacketMirroring, see:
- API documentation
- How-to Guides
Example Usage
Compute Packet Mirroring Full
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {name: "my-network"});
const mirror = new gcp.compute.Instance("mirror", {
    networkInterfaces: [{
        accessConfigs: [{}],
        network: _default.id,
    }],
    name: "my-instance",
    machineType: "e2-medium",
    bootDisk: {
        initializeParams: {
            image: "debian-cloud/debian-11",
        },
    },
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "my-subnetwork",
    network: _default.id,
    ipCidrRange: "10.2.0.0/16",
});
const defaultHealthCheck = new gcp.compute.HealthCheck("default", {
    name: "my-healthcheck",
    checkIntervalSec: 1,
    timeoutSec: 1,
    tcpHealthCheck: {
        port: 80,
    },
});
const defaultRegionBackendService = new gcp.compute.RegionBackendService("default", {
    name: "my-service",
    healthChecks: defaultHealthCheck.id,
});
const defaultForwardingRule = new gcp.compute.ForwardingRule("default", {
    name: "my-ilb",
    isMirroringCollector: true,
    ipProtocol: "TCP",
    loadBalancingScheme: "INTERNAL",
    backendService: defaultRegionBackendService.id,
    allPorts: true,
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    networkTier: "PREMIUM",
}, {
    dependsOn: [defaultSubnetwork],
});
const foobar = new gcp.compute.PacketMirroring("foobar", {
    name: "my-mirroring",
    description: "bar",
    network: {
        url: _default.id,
    },
    collectorIlb: {
        url: defaultForwardingRule.id,
    },
    mirroredResources: {
        tags: ["foo"],
        instances: [{
            url: mirror.id,
        }],
    },
    filter: {
        ipProtocols: ["tcp"],
        cidrRanges: ["0.0.0.0/0"],
        direction: "BOTH",
    },
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default", name="my-network")
mirror = gcp.compute.Instance("mirror",
    network_interfaces=[{
        "access_configs": [{}],
        "network": default.id,
    }],
    name="my-instance",
    machine_type="e2-medium",
    boot_disk={
        "initialize_params": {
            "image": "debian-cloud/debian-11",
        },
    })
default_subnetwork = gcp.compute.Subnetwork("default",
    name="my-subnetwork",
    network=default.id,
    ip_cidr_range="10.2.0.0/16")
default_health_check = gcp.compute.HealthCheck("default",
    name="my-healthcheck",
    check_interval_sec=1,
    timeout_sec=1,
    tcp_health_check={
        "port": 80,
    })
default_region_backend_service = gcp.compute.RegionBackendService("default",
    name="my-service",
    health_checks=default_health_check.id)
default_forwarding_rule = gcp.compute.ForwardingRule("default",
    name="my-ilb",
    is_mirroring_collector=True,
    ip_protocol="TCP",
    load_balancing_scheme="INTERNAL",
    backend_service=default_region_backend_service.id,
    all_ports=True,
    network=default.id,
    subnetwork=default_subnetwork.id,
    network_tier="PREMIUM",
    opts = pulumi.ResourceOptions(depends_on=[default_subnetwork]))
foobar = gcp.compute.PacketMirroring("foobar",
    name="my-mirroring",
    description="bar",
    network={
        "url": default.id,
    },
    collector_ilb={
        "url": default_forwarding_rule.id,
    },
    mirrored_resources={
        "tags": ["foo"],
        "instances": [{
            "url": mirror.id,
        }],
    },
    filter={
        "ip_protocols": ["tcp"],
        "cidr_ranges": ["0.0.0.0/0"],
        "direction": "BOTH",
    })
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name: pulumi.String("my-network"),
		})
		if err != nil {
			return err
		}
		mirror, err := compute.NewInstance(ctx, "mirror", &compute.InstanceArgs{
			NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
				&compute.InstanceNetworkInterfaceArgs{
					AccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{
						nil,
					},
					Network: _default.ID(),
				},
			},
			Name:        pulumi.String("my-instance"),
			MachineType: pulumi.String("e2-medium"),
			BootDisk: &compute.InstanceBootDiskArgs{
				InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{
					Image: pulumi.String("debian-cloud/debian-11"),
				},
			},
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("my-subnetwork"),
			Network:     _default.ID(),
			IpCidrRange: pulumi.String("10.2.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultHealthCheck, err := compute.NewHealthCheck(ctx, "default", &compute.HealthCheckArgs{
			Name:             pulumi.String("my-healthcheck"),
			CheckIntervalSec: pulumi.Int(1),
			TimeoutSec:       pulumi.Int(1),
			TcpHealthCheck: &compute.HealthCheckTcpHealthCheckArgs{
				Port: pulumi.Int(80),
			},
		})
		if err != nil {
			return err
		}
		defaultRegionBackendService, err := compute.NewRegionBackendService(ctx, "default", &compute.RegionBackendServiceArgs{
			Name:         pulumi.String("my-service"),
			HealthChecks: defaultHealthCheck.ID(),
		})
		if err != nil {
			return err
		}
		defaultForwardingRule, err := compute.NewForwardingRule(ctx, "default", &compute.ForwardingRuleArgs{
			Name:                 pulumi.String("my-ilb"),
			IsMirroringCollector: pulumi.Bool(true),
			IpProtocol:           pulumi.String("TCP"),
			LoadBalancingScheme:  pulumi.String("INTERNAL"),
			BackendService:       defaultRegionBackendService.ID(),
			AllPorts:             pulumi.Bool(true),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			NetworkTier:          pulumi.String("PREMIUM"),
		}, pulumi.DependsOn([]pulumi.Resource{
			defaultSubnetwork,
		}))
		if err != nil {
			return err
		}
		_, err = compute.NewPacketMirroring(ctx, "foobar", &compute.PacketMirroringArgs{
			Name:        pulumi.String("my-mirroring"),
			Description: pulumi.String("bar"),
			Network: &compute.PacketMirroringNetworkArgs{
				Url: _default.ID(),
			},
			CollectorIlb: &compute.PacketMirroringCollectorIlbArgs{
				Url: defaultForwardingRule.ID(),
			},
			MirroredResources: &compute.PacketMirroringMirroredResourcesArgs{
				Tags: pulumi.StringArray{
					pulumi.String("foo"),
				},
				Instances: compute.PacketMirroringMirroredResourcesInstanceArray{
					&compute.PacketMirroringMirroredResourcesInstanceArgs{
						Url: mirror.ID(),
					},
				},
			},
			Filter: &compute.PacketMirroringFilterArgs{
				IpProtocols: pulumi.StringArray{
					pulumi.String("tcp"),
				},
				CidrRanges: pulumi.StringArray{
					pulumi.String("0.0.0.0/0"),
				},
				Direction: pulumi.String("BOTH"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "my-network",
    });
    var mirror = new Gcp.Compute.Instance("mirror", new()
    {
        NetworkInterfaces = new[]
        {
            new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs
            {
                AccessConfigs = new[]
                {
                    null,
                },
                Network = @default.Id,
            },
        },
        Name = "my-instance",
        MachineType = "e2-medium",
        BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs
        {
            InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs
            {
                Image = "debian-cloud/debian-11",
            },
        },
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "my-subnetwork",
        Network = @default.Id,
        IpCidrRange = "10.2.0.0/16",
    });
    var defaultHealthCheck = new Gcp.Compute.HealthCheck("default", new()
    {
        Name = "my-healthcheck",
        CheckIntervalSec = 1,
        TimeoutSec = 1,
        TcpHealthCheck = new Gcp.Compute.Inputs.HealthCheckTcpHealthCheckArgs
        {
            Port = 80,
        },
    });
    var defaultRegionBackendService = new Gcp.Compute.RegionBackendService("default", new()
    {
        Name = "my-service",
        HealthChecks = defaultHealthCheck.Id,
    });
    var defaultForwardingRule = new Gcp.Compute.ForwardingRule("default", new()
    {
        Name = "my-ilb",
        IsMirroringCollector = true,
        IpProtocol = "TCP",
        LoadBalancingScheme = "INTERNAL",
        BackendService = defaultRegionBackendService.Id,
        AllPorts = true,
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        NetworkTier = "PREMIUM",
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            defaultSubnetwork,
        },
    });
    var foobar = new Gcp.Compute.PacketMirroring("foobar", new()
    {
        Name = "my-mirroring",
        Description = "bar",
        Network = new Gcp.Compute.Inputs.PacketMirroringNetworkArgs
        {
            Url = @default.Id,
        },
        CollectorIlb = new Gcp.Compute.Inputs.PacketMirroringCollectorIlbArgs
        {
            Url = defaultForwardingRule.Id,
        },
        MirroredResources = new Gcp.Compute.Inputs.PacketMirroringMirroredResourcesArgs
        {
            Tags = new[]
            {
                "foo",
            },
            Instances = new[]
            {
                new Gcp.Compute.Inputs.PacketMirroringMirroredResourcesInstanceArgs
                {
                    Url = mirror.Id,
                },
            },
        },
        Filter = new Gcp.Compute.Inputs.PacketMirroringFilterArgs
        {
            IpProtocols = new[]
            {
                "tcp",
            },
            CidrRanges = new[]
            {
                "0.0.0.0/0",
            },
            Direction = "BOTH",
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Instance;
import com.pulumi.gcp.compute.InstanceArgs;
import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.compute.HealthCheck;
import com.pulumi.gcp.compute.HealthCheckArgs;
import com.pulumi.gcp.compute.inputs.HealthCheckTcpHealthCheckArgs;
import com.pulumi.gcp.compute.RegionBackendService;
import com.pulumi.gcp.compute.RegionBackendServiceArgs;
import com.pulumi.gcp.compute.ForwardingRule;
import com.pulumi.gcp.compute.ForwardingRuleArgs;
import com.pulumi.gcp.compute.PacketMirroring;
import com.pulumi.gcp.compute.PacketMirroringArgs;
import com.pulumi.gcp.compute.inputs.PacketMirroringNetworkArgs;
import com.pulumi.gcp.compute.inputs.PacketMirroringCollectorIlbArgs;
import com.pulumi.gcp.compute.inputs.PacketMirroringMirroredResourcesArgs;
import com.pulumi.gcp.compute.inputs.PacketMirroringFilterArgs;
import com.pulumi.resources.CustomResourceOptions;
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) {
        var default_ = new Network("default", NetworkArgs.builder()
            .name("my-network")
            .build());
        var mirror = new Instance("mirror", InstanceArgs.builder()
            .networkInterfaces(InstanceNetworkInterfaceArgs.builder()
                .accessConfigs()
                .network(default_.id())
                .build())
            .name("my-instance")
            .machineType("e2-medium")
            .bootDisk(InstanceBootDiskArgs.builder()
                .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
                    .image("debian-cloud/debian-11")
                    .build())
                .build())
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("my-subnetwork")
            .network(default_.id())
            .ipCidrRange("10.2.0.0/16")
            .build());
        var defaultHealthCheck = new HealthCheck("defaultHealthCheck", HealthCheckArgs.builder()
            .name("my-healthcheck")
            .checkIntervalSec(1)
            .timeoutSec(1)
            .tcpHealthCheck(HealthCheckTcpHealthCheckArgs.builder()
                .port("80")
                .build())
            .build());
        var defaultRegionBackendService = new RegionBackendService("defaultRegionBackendService", RegionBackendServiceArgs.builder()
            .name("my-service")
            .healthChecks(defaultHealthCheck.id())
            .build());
        var defaultForwardingRule = new ForwardingRule("defaultForwardingRule", ForwardingRuleArgs.builder()
            .name("my-ilb")
            .isMirroringCollector(true)
            .ipProtocol("TCP")
            .loadBalancingScheme("INTERNAL")
            .backendService(defaultRegionBackendService.id())
            .allPorts(true)
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .networkTier("PREMIUM")
            .build(), CustomResourceOptions.builder()
                .dependsOn(defaultSubnetwork)
                .build());
        var foobar = new PacketMirroring("foobar", PacketMirroringArgs.builder()
            .name("my-mirroring")
            .description("bar")
            .network(PacketMirroringNetworkArgs.builder()
                .url(default_.id())
                .build())
            .collectorIlb(PacketMirroringCollectorIlbArgs.builder()
                .url(defaultForwardingRule.id())
                .build())
            .mirroredResources(PacketMirroringMirroredResourcesArgs.builder()
                .tags("foo")
                .instances(PacketMirroringMirroredResourcesInstanceArgs.builder()
                    .url(mirror.id())
                    .build())
                .build())
            .filter(PacketMirroringFilterArgs.builder()
                .ipProtocols("tcp")
                .cidrRanges("0.0.0.0/0")
                .direction("BOTH")
                .build())
            .build());
    }
}
resources:
  mirror:
    type: gcp:compute:Instance
    properties:
      networkInterfaces:
        - accessConfigs:
            - {}
          network: ${default.id}
      name: my-instance
      machineType: e2-medium
      bootDisk:
        initializeParams:
          image: debian-cloud/debian-11
  default:
    type: gcp:compute:Network
    properties:
      name: my-network
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: my-subnetwork
      network: ${default.id}
      ipCidrRange: 10.2.0.0/16
  defaultRegionBackendService:
    type: gcp:compute:RegionBackendService
    name: default
    properties:
      name: my-service
      healthChecks: ${defaultHealthCheck.id}
  defaultHealthCheck:
    type: gcp:compute:HealthCheck
    name: default
    properties:
      name: my-healthcheck
      checkIntervalSec: 1
      timeoutSec: 1
      tcpHealthCheck:
        port: '80'
  defaultForwardingRule:
    type: gcp:compute:ForwardingRule
    name: default
    properties:
      name: my-ilb
      isMirroringCollector: true
      ipProtocol: TCP
      loadBalancingScheme: INTERNAL
      backendService: ${defaultRegionBackendService.id}
      allPorts: true
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      networkTier: PREMIUM
    options:
      dependson:
        - ${defaultSubnetwork}
  foobar:
    type: gcp:compute:PacketMirroring
    properties:
      name: my-mirroring
      description: bar
      network:
        url: ${default.id}
      collectorIlb:
        url: ${defaultForwardingRule.id}
      mirroredResources:
        tags:
          - foo
        instances:
          - url: ${mirror.id}
      filter:
        ipProtocols:
          - tcp
        cidrRanges:
          - 0.0.0.0/0
        direction: BOTH
Create PacketMirroring Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new PacketMirroring(name: string, args: PacketMirroringArgs, opts?: CustomResourceOptions);@overload
def PacketMirroring(resource_name: str,
                    args: PacketMirroringArgs,
                    opts: Optional[ResourceOptions] = None)
@overload
def PacketMirroring(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    collector_ilb: Optional[PacketMirroringCollectorIlbArgs] = None,
                    mirrored_resources: Optional[PacketMirroringMirroredResourcesArgs] = None,
                    network: Optional[PacketMirroringNetworkArgs] = None,
                    description: Optional[str] = None,
                    filter: Optional[PacketMirroringFilterArgs] = None,
                    name: Optional[str] = None,
                    priority: Optional[int] = None,
                    project: Optional[str] = None,
                    region: Optional[str] = None)func NewPacketMirroring(ctx *Context, name string, args PacketMirroringArgs, opts ...ResourceOption) (*PacketMirroring, error)public PacketMirroring(string name, PacketMirroringArgs args, CustomResourceOptions? opts = null)
public PacketMirroring(String name, PacketMirroringArgs args)
public PacketMirroring(String name, PacketMirroringArgs args, CustomResourceOptions options)
type: gcp:compute:PacketMirroring
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args PacketMirroringArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args PacketMirroringArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args PacketMirroringArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args PacketMirroringArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args PacketMirroringArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var packetMirroringResource = new Gcp.Compute.PacketMirroring("packetMirroringResource", new()
{
    CollectorIlb = new Gcp.Compute.Inputs.PacketMirroringCollectorIlbArgs
    {
        Url = "string",
    },
    MirroredResources = new Gcp.Compute.Inputs.PacketMirroringMirroredResourcesArgs
    {
        Instances = new[]
        {
            new Gcp.Compute.Inputs.PacketMirroringMirroredResourcesInstanceArgs
            {
                Url = "string",
            },
        },
        Subnetworks = new[]
        {
            new Gcp.Compute.Inputs.PacketMirroringMirroredResourcesSubnetworkArgs
            {
                Url = "string",
            },
        },
        Tags = new[]
        {
            "string",
        },
    },
    Network = new Gcp.Compute.Inputs.PacketMirroringNetworkArgs
    {
        Url = "string",
    },
    Description = "string",
    Filter = new Gcp.Compute.Inputs.PacketMirroringFilterArgs
    {
        CidrRanges = new[]
        {
            "string",
        },
        Direction = "string",
        IpProtocols = new[]
        {
            "string",
        },
    },
    Name = "string",
    Priority = 0,
    Project = "string",
    Region = "string",
});
example, err := compute.NewPacketMirroring(ctx, "packetMirroringResource", &compute.PacketMirroringArgs{
	CollectorIlb: &compute.PacketMirroringCollectorIlbArgs{
		Url: pulumi.String("string"),
	},
	MirroredResources: &compute.PacketMirroringMirroredResourcesArgs{
		Instances: compute.PacketMirroringMirroredResourcesInstanceArray{
			&compute.PacketMirroringMirroredResourcesInstanceArgs{
				Url: pulumi.String("string"),
			},
		},
		Subnetworks: compute.PacketMirroringMirroredResourcesSubnetworkArray{
			&compute.PacketMirroringMirroredResourcesSubnetworkArgs{
				Url: pulumi.String("string"),
			},
		},
		Tags: pulumi.StringArray{
			pulumi.String("string"),
		},
	},
	Network: &compute.PacketMirroringNetworkArgs{
		Url: pulumi.String("string"),
	},
	Description: pulumi.String("string"),
	Filter: &compute.PacketMirroringFilterArgs{
		CidrRanges: pulumi.StringArray{
			pulumi.String("string"),
		},
		Direction: pulumi.String("string"),
		IpProtocols: pulumi.StringArray{
			pulumi.String("string"),
		},
	},
	Name:     pulumi.String("string"),
	Priority: pulumi.Int(0),
	Project:  pulumi.String("string"),
	Region:   pulumi.String("string"),
})
var packetMirroringResource = new PacketMirroring("packetMirroringResource", PacketMirroringArgs.builder()
    .collectorIlb(PacketMirroringCollectorIlbArgs.builder()
        .url("string")
        .build())
    .mirroredResources(PacketMirroringMirroredResourcesArgs.builder()
        .instances(PacketMirroringMirroredResourcesInstanceArgs.builder()
            .url("string")
            .build())
        .subnetworks(PacketMirroringMirroredResourcesSubnetworkArgs.builder()
            .url("string")
            .build())
        .tags("string")
        .build())
    .network(PacketMirroringNetworkArgs.builder()
        .url("string")
        .build())
    .description("string")
    .filter(PacketMirroringFilterArgs.builder()
        .cidrRanges("string")
        .direction("string")
        .ipProtocols("string")
        .build())
    .name("string")
    .priority(0)
    .project("string")
    .region("string")
    .build());
packet_mirroring_resource = gcp.compute.PacketMirroring("packetMirroringResource",
    collector_ilb={
        "url": "string",
    },
    mirrored_resources={
        "instances": [{
            "url": "string",
        }],
        "subnetworks": [{
            "url": "string",
        }],
        "tags": ["string"],
    },
    network={
        "url": "string",
    },
    description="string",
    filter={
        "cidrRanges": ["string"],
        "direction": "string",
        "ipProtocols": ["string"],
    },
    name="string",
    priority=0,
    project="string",
    region="string")
const packetMirroringResource = new gcp.compute.PacketMirroring("packetMirroringResource", {
    collectorIlb: {
        url: "string",
    },
    mirroredResources: {
        instances: [{
            url: "string",
        }],
        subnetworks: [{
            url: "string",
        }],
        tags: ["string"],
    },
    network: {
        url: "string",
    },
    description: "string",
    filter: {
        cidrRanges: ["string"],
        direction: "string",
        ipProtocols: ["string"],
    },
    name: "string",
    priority: 0,
    project: "string",
    region: "string",
});
type: gcp:compute:PacketMirroring
properties:
    collectorIlb:
        url: string
    description: string
    filter:
        cidrRanges:
            - string
        direction: string
        ipProtocols:
            - string
    mirroredResources:
        instances:
            - url: string
        subnetworks:
            - url: string
        tags:
            - string
    name: string
    network:
        url: string
    priority: 0
    project: string
    region: string
PacketMirroring Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The PacketMirroring resource accepts the following input properties:
- CollectorIlb PacketMirroring Collector Ilb 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- MirroredResources PacketMirroring Mirrored Resources 
- A means of specifying which resources to mirror. Structure is documented below.
- Network
PacketMirroring Network 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- Description string
- A human-readable description of the rule.
- Filter
PacketMirroring Filter 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- Name string
- The name of the packet mirroring rule
- Priority int
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- Project string
- Region string
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- CollectorIlb PacketMirroring Collector Ilb Args 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- MirroredResources PacketMirroring Mirrored Resources Args 
- A means of specifying which resources to mirror. Structure is documented below.
- Network
PacketMirroring Network Args 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- Description string
- A human-readable description of the rule.
- Filter
PacketMirroring Filter Args 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- Name string
- The name of the packet mirroring rule
- Priority int
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- Project string
- Region string
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collectorIlb PacketMirroring Collector Ilb 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- mirroredResources PacketMirroring Mirrored Resources 
- A means of specifying which resources to mirror. Structure is documented below.
- network
PacketMirroring Network 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- description String
- A human-readable description of the rule.
- filter
PacketMirroring Filter 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- name String
- The name of the packet mirroring rule
- priority Integer
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project String
- region String
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collectorIlb PacketMirroring Collector Ilb 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- mirroredResources PacketMirroring Mirrored Resources 
- A means of specifying which resources to mirror. Structure is documented below.
- network
PacketMirroring Network 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- description string
- A human-readable description of the rule.
- filter
PacketMirroring Filter 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- name string
- The name of the packet mirroring rule
- priority number
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project string
- region string
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collector_ilb PacketMirroring Collector Ilb Args 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- mirrored_resources PacketMirroring Mirrored Resources Args 
- A means of specifying which resources to mirror. Structure is documented below.
- network
PacketMirroring Network Args 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- description str
- A human-readable description of the rule.
- filter
PacketMirroring Filter Args 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- name str
- The name of the packet mirroring rule
- priority int
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project str
- region str
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collectorIlb Property Map
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- mirroredResources Property Map
- A means of specifying which resources to mirror. Structure is documented below.
- network Property Map
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- description String
- A human-readable description of the rule.
- filter Property Map
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- name String
- The name of the packet mirroring rule
- priority Number
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project String
- region String
- The Region in which the created address should reside. If it is not provided, the provider region is used.
Outputs
All input properties are implicitly available as output properties. Additionally, the PacketMirroring resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing PacketMirroring Resource
Get an existing PacketMirroring resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: PacketMirroringState, opts?: CustomResourceOptions): PacketMirroring@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        collector_ilb: Optional[PacketMirroringCollectorIlbArgs] = None,
        description: Optional[str] = None,
        filter: Optional[PacketMirroringFilterArgs] = None,
        mirrored_resources: Optional[PacketMirroringMirroredResourcesArgs] = None,
        name: Optional[str] = None,
        network: Optional[PacketMirroringNetworkArgs] = None,
        priority: Optional[int] = None,
        project: Optional[str] = None,
        region: Optional[str] = None) -> PacketMirroringfunc GetPacketMirroring(ctx *Context, name string, id IDInput, state *PacketMirroringState, opts ...ResourceOption) (*PacketMirroring, error)public static PacketMirroring Get(string name, Input<string> id, PacketMirroringState? state, CustomResourceOptions? opts = null)public static PacketMirroring get(String name, Output<String> id, PacketMirroringState state, CustomResourceOptions options)Resource lookup is not supported in YAML- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- CollectorIlb PacketMirroring Collector Ilb 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- Description string
- A human-readable description of the rule.
- Filter
PacketMirroring Filter 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- MirroredResources PacketMirroring Mirrored Resources 
- A means of specifying which resources to mirror. Structure is documented below.
- Name string
- The name of the packet mirroring rule
- Network
PacketMirroring Network 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- Priority int
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- Project string
- Region string
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- CollectorIlb PacketMirroring Collector Ilb Args 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- Description string
- A human-readable description of the rule.
- Filter
PacketMirroring Filter Args 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- MirroredResources PacketMirroring Mirrored Resources Args 
- A means of specifying which resources to mirror. Structure is documented below.
- Name string
- The name of the packet mirroring rule
- Network
PacketMirroring Network Args 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- Priority int
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- Project string
- Region string
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collectorIlb PacketMirroring Collector Ilb 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- description String
- A human-readable description of the rule.
- filter
PacketMirroring Filter 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- mirroredResources PacketMirroring Mirrored Resources 
- A means of specifying which resources to mirror. Structure is documented below.
- name String
- The name of the packet mirroring rule
- network
PacketMirroring Network 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- priority Integer
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project String
- region String
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collectorIlb PacketMirroring Collector Ilb 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- description string
- A human-readable description of the rule.
- filter
PacketMirroring Filter 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- mirroredResources PacketMirroring Mirrored Resources 
- A means of specifying which resources to mirror. Structure is documented below.
- name string
- The name of the packet mirroring rule
- network
PacketMirroring Network 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- priority number
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project string
- region string
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collector_ilb PacketMirroring Collector Ilb Args 
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- description str
- A human-readable description of the rule.
- filter
PacketMirroring Filter Args 
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- mirrored_resources PacketMirroring Mirrored Resources Args 
- A means of specifying which resources to mirror. Structure is documented below.
- name str
- The name of the packet mirroring rule
- network
PacketMirroring Network Args 
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- priority int
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project str
- region str
- The Region in which the created address should reside. If it is not provided, the provider region is used.
- collectorIlb Property Map
- The Forwarding Rule resource (of type load_balancing_scheme=INTERNAL) that will be used as collector for mirrored traffic. The specified forwarding rule must have is_mirroring_collector set to true. Structure is documented below.
- description String
- A human-readable description of the rule.
- filter Property Map
- A filter for mirrored traffic. If unset, all traffic is mirrored.
- mirroredResources Property Map
- A means of specifying which resources to mirror. Structure is documented below.
- name String
- The name of the packet mirroring rule
- network Property Map
- Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network. Structure is documented below.
- priority Number
- Since only one rule can be active at a time, priority is used to break ties in the case of two rules that apply to the same instances.
- project String
- region String
- The Region in which the created address should reside. If it is not provided, the provider region is used.
Supporting Types
PacketMirroringCollectorIlb, PacketMirroringCollectorIlbArgs        
- Url string
- The URL of the forwarding rule.
- Url string
- The URL of the forwarding rule.
- url String
- The URL of the forwarding rule.
- url string
- The URL of the forwarding rule.
- url str
- The URL of the forwarding rule.
- url String
- The URL of the forwarding rule.
PacketMirroringFilter, PacketMirroringFilterArgs      
- CidrRanges List<string>
- IP CIDR ranges that apply as a filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported.
- Direction string
- Direction of traffic to mirror.
Default value is BOTH. Possible values are:INGRESS,EGRESS,BOTH.
- IpProtocols List<string>
- Possible IP protocols including tcp, udp, icmp and esp
- CidrRanges []string
- IP CIDR ranges that apply as a filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported.
- Direction string
- Direction of traffic to mirror.
Default value is BOTH. Possible values are:INGRESS,EGRESS,BOTH.
- IpProtocols []string
- Possible IP protocols including tcp, udp, icmp and esp
- cidrRanges List<String>
- IP CIDR ranges that apply as a filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported.
- direction String
- Direction of traffic to mirror.
Default value is BOTH. Possible values are:INGRESS,EGRESS,BOTH.
- ipProtocols List<String>
- Possible IP protocols including tcp, udp, icmp and esp
- cidrRanges string[]
- IP CIDR ranges that apply as a filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported.
- direction string
- Direction of traffic to mirror.
Default value is BOTH. Possible values are:INGRESS,EGRESS,BOTH.
- ipProtocols string[]
- Possible IP protocols including tcp, udp, icmp and esp
- cidr_ranges Sequence[str]
- IP CIDR ranges that apply as a filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported.
- direction str
- Direction of traffic to mirror.
Default value is BOTH. Possible values are:INGRESS,EGRESS,BOTH.
- ip_protocols Sequence[str]
- Possible IP protocols including tcp, udp, icmp and esp
- cidrRanges List<String>
- IP CIDR ranges that apply as a filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported.
- direction String
- Direction of traffic to mirror.
Default value is BOTH. Possible values are:INGRESS,EGRESS,BOTH.
- ipProtocols List<String>
- Possible IP protocols including tcp, udp, icmp and esp
PacketMirroringMirroredResources, PacketMirroringMirroredResourcesArgs        
- Instances
List<PacketMirroring Mirrored Resources Instance> 
- All the listed instances will be mirrored. Specify at most 50. Structure is documented below.
- Subnetworks
List<PacketMirroring Mirrored Resources Subnetwork> 
- All instances in one of these subnetworks will be mirrored. Structure is documented below.
- List<string>
- All instances with these tags will be mirrored.
- Instances
[]PacketMirroring Mirrored Resources Instance 
- All the listed instances will be mirrored. Specify at most 50. Structure is documented below.
- Subnetworks
[]PacketMirroring Mirrored Resources Subnetwork 
- All instances in one of these subnetworks will be mirrored. Structure is documented below.
- []string
- All instances with these tags will be mirrored.
- instances
List<PacketMirroring Mirrored Resources Instance> 
- All the listed instances will be mirrored. Specify at most 50. Structure is documented below.
- subnetworks
List<PacketMirroring Mirrored Resources Subnetwork> 
- All instances in one of these subnetworks will be mirrored. Structure is documented below.
- List<String>
- All instances with these tags will be mirrored.
- instances
PacketMirroring Mirrored Resources Instance[] 
- All the listed instances will be mirrored. Specify at most 50. Structure is documented below.
- subnetworks
PacketMirroring Mirrored Resources Subnetwork[] 
- All instances in one of these subnetworks will be mirrored. Structure is documented below.
- string[]
- All instances with these tags will be mirrored.
- instances
Sequence[PacketMirroring Mirrored Resources Instance] 
- All the listed instances will be mirrored. Specify at most 50. Structure is documented below.
- subnetworks
Sequence[PacketMirroring Mirrored Resources Subnetwork] 
- All instances in one of these subnetworks will be mirrored. Structure is documented below.
- Sequence[str]
- All instances with these tags will be mirrored.
- instances List<Property Map>
- All the listed instances will be mirrored. Specify at most 50. Structure is documented below.
- subnetworks List<Property Map>
- All instances in one of these subnetworks will be mirrored. Structure is documented below.
- List<String>
- All instances with these tags will be mirrored.
PacketMirroringMirroredResourcesInstance, PacketMirroringMirroredResourcesInstanceArgs          
- Url string
- The URL of the instances where this rule should be active.
- Url string
- The URL of the instances where this rule should be active.
- url String
- The URL of the instances where this rule should be active.
- url string
- The URL of the instances where this rule should be active.
- url str
- The URL of the instances where this rule should be active.
- url String
- The URL of the instances where this rule should be active.
PacketMirroringMirroredResourcesSubnetwork, PacketMirroringMirroredResourcesSubnetworkArgs          
- Url string
- The URL of the subnetwork where this rule should be active.
- Url string
- The URL of the subnetwork where this rule should be active.
- url String
- The URL of the subnetwork where this rule should be active.
- url string
- The URL of the subnetwork where this rule should be active.
- url str
- The URL of the subnetwork where this rule should be active.
- url String
- The URL of the subnetwork where this rule should be active.
PacketMirroringNetwork, PacketMirroringNetworkArgs      
- Url string
- The full self_link URL of the network where this rule is active.
- Url string
- The full self_link URL of the network where this rule is active.
- url String
- The full self_link URL of the network where this rule is active.
- url string
- The full self_link URL of the network where this rule is active.
- url str
- The full self_link URL of the network where this rule is active.
- url String
- The full self_link URL of the network where this rule is active.
Import
PacketMirroring can be imported using any of these accepted formats:
- projects/{{project}}/regions/{{region}}/packetMirrorings/{{name}}
- {{project}}/{{region}}/{{name}}
- {{region}}/{{name}}
- {{name}}
When using the pulumi import command, PacketMirroring can be imported using one of the formats above. For example:
$ pulumi import gcp:compute/packetMirroring:PacketMirroring default projects/{{project}}/regions/{{region}}/packetMirrorings/{{name}}
$ pulumi import gcp:compute/packetMirroring:PacketMirroring default {{project}}/{{region}}/{{name}}
$ pulumi import gcp:compute/packetMirroring:PacketMirroring default {{region}}/{{name}}
$ pulumi import gcp:compute/packetMirroring:PacketMirroring default {{name}}
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the google-betaTerraform Provider.