1. Packages
  2. Ionoscloud
  3. API Docs
  4. vpn
  5. IpsecTunnel
IonosCloud v0.2.2 published on Monday, May 12, 2025 by ionos-cloud

ionoscloud.vpn.IpsecTunnel

Explore with Pulumi AI

ionoscloud logo
IonosCloud v0.2.2 published on Monday, May 12, 2025 by ionos-cloud

    An IPSec Gateway Tunnel resource manages the creation, management, and deletion of VPN IPSec Gateway Tunnels within the IONOS Cloud infrastructure. This resource facilitates the creation of VPN IPSec Gateway Tunnels, enabling secure connections between your network resources.

    Usage example

    import * as pulumi from "@pulumi/pulumi";
    import * as ionoscloud from "@ionos-cloud/sdk-pulumi";
    
    // Basic example
    const testDatacenter = new ionoscloud.compute.Datacenter("test_datacenter", {
        name: "test_vpn_gateway_basic",
        location: "de/fra",
    });
    const testLan = new ionoscloud.compute.Lan("test_lan", {
        name: "test_lan_basic",
        "public": false,
        datacenterId: testDatacenter.id,
    });
    const testIpblock = new ionoscloud.compute.IPBlock("test_ipblock", {
        name: "test_ipblock_basic",
        location: "de/fra",
        size: 1,
    });
    const example = new ionoscloud.vpn.IpsecGateway("example", {
        name: "ipsec_gateway_basic",
        location: "de/fra",
        gatewayIp: testIpblock.ips[0],
        version: "IKEv2",
        description: "This gateway connects site A to VDC X.",
        connections: [{
            datacenterId: testDatacenter.id,
            lanId: testLan.id,
            ipv4Cidr: "192.168.100.10/24",
        }],
    });
    const exampleIpsecTunnel = new ionoscloud.vpn.IpsecTunnel("example", {
        location: "de/fra",
        gatewayId: example.id,
        name: "example-tunnel",
        remoteHost: "vpn.mycompany.com",
        description: "Allows local subnet X to connect to virtual network Y.",
        auth: {
            method: "PSK",
            pskKey: "X2wosbaw74M8hQGbK3jCCaEusR6CCFRa",
        },
        ike: {
            diffieHellmanGroup: "16-MODP4096",
            encryptionAlgorithm: "AES256",
            integrityAlgorithm: "SHA256",
            lifetime: 86400,
        },
        esps: [{
            diffieHellmanGroup: "16-MODP4096",
            encryptionAlgorithm: "AES256",
            integrityAlgorithm: "SHA256",
            lifetime: 3600,
        }],
        cloudNetworkCidrs: ["0.0.0.0/0"],
        peerNetworkCidrs: ["1.2.3.4/32"],
    });
    
    import pulumi
    import pulumi_ionoscloud as ionoscloud
    
    # Basic example
    test_datacenter = ionoscloud.compute.Datacenter("test_datacenter",
        name="test_vpn_gateway_basic",
        location="de/fra")
    test_lan = ionoscloud.compute.Lan("test_lan",
        name="test_lan_basic",
        public=False,
        datacenter_id=test_datacenter.id)
    test_ipblock = ionoscloud.compute.IPBlock("test_ipblock",
        name="test_ipblock_basic",
        location="de/fra",
        size=1)
    example = ionoscloud.vpn.IpsecGateway("example",
        name="ipsec_gateway_basic",
        location="de/fra",
        gateway_ip=test_ipblock.ips[0],
        version="IKEv2",
        description="This gateway connects site A to VDC X.",
        connections=[{
            "datacenter_id": test_datacenter.id,
            "lan_id": test_lan.id,
            "ipv4_cidr": "192.168.100.10/24",
        }])
    example_ipsec_tunnel = ionoscloud.vpn.IpsecTunnel("example",
        location="de/fra",
        gateway_id=example.id,
        name="example-tunnel",
        remote_host="vpn.mycompany.com",
        description="Allows local subnet X to connect to virtual network Y.",
        auth={
            "method": "PSK",
            "psk_key": "X2wosbaw74M8hQGbK3jCCaEusR6CCFRa",
        },
        ike={
            "diffie_hellman_group": "16-MODP4096",
            "encryption_algorithm": "AES256",
            "integrity_algorithm": "SHA256",
            "lifetime": 86400,
        },
        esps=[{
            "diffie_hellman_group": "16-MODP4096",
            "encryption_algorithm": "AES256",
            "integrity_algorithm": "SHA256",
            "lifetime": 3600,
        }],
        cloud_network_cidrs=["0.0.0.0/0"],
        peer_network_cidrs=["1.2.3.4/32"])
    
    package main
    
    import (
    	"github.com/ionos-cloud/pulumi-ionoscloud/sdk/go/ionoscloud/compute"
    	"github.com/ionos-cloud/pulumi-ionoscloud/sdk/go/ionoscloud/vpn"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Basic example
    		testDatacenter, err := compute.NewDatacenter(ctx, "test_datacenter", &compute.DatacenterArgs{
    			Name:     pulumi.String("test_vpn_gateway_basic"),
    			Location: pulumi.String("de/fra"),
    		})
    		if err != nil {
    			return err
    		}
    		testLan, err := compute.NewLan(ctx, "test_lan", &compute.LanArgs{
    			Name:         pulumi.String("test_lan_basic"),
    			Public:       pulumi.Bool(false),
    			DatacenterId: testDatacenter.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		testIpblock, err := compute.NewIPBlock(ctx, "test_ipblock", &compute.IPBlockArgs{
    			Name:     pulumi.String("test_ipblock_basic"),
    			Location: pulumi.String("de/fra"),
    			Size:     pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		example, err := vpn.NewIpsecGateway(ctx, "example", &vpn.IpsecGatewayArgs{
    			Name:     pulumi.String("ipsec_gateway_basic"),
    			Location: pulumi.String("de/fra"),
    			GatewayIp: testIpblock.Ips.ApplyT(func(ips []string) (string, error) {
    				return ips[0], nil
    			}).(pulumi.StringOutput),
    			Version:     pulumi.String("IKEv2"),
    			Description: pulumi.String("This gateway connects site A to VDC X."),
    			Connections: vpn.IpsecGatewayConnectionArray{
    				&vpn.IpsecGatewayConnectionArgs{
    					DatacenterId: testDatacenter.ID(),
    					LanId:        testLan.ID(),
    					Ipv4Cidr:     pulumi.String("192.168.100.10/24"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = vpn.NewIpsecTunnel(ctx, "example", &vpn.IpsecTunnelArgs{
    			Location:    pulumi.String("de/fra"),
    			GatewayId:   example.ID(),
    			Name:        pulumi.String("example-tunnel"),
    			RemoteHost:  pulumi.String("vpn.mycompany.com"),
    			Description: pulumi.String("Allows local subnet X to connect to virtual network Y."),
    			Auth: &vpn.IpsecTunnelAuthArgs{
    				Method: pulumi.String("PSK"),
    				PskKey: pulumi.String("X2wosbaw74M8hQGbK3jCCaEusR6CCFRa"),
    			},
    			Ike: &vpn.IpsecTunnelIkeArgs{
    				DiffieHellmanGroup:  pulumi.String("16-MODP4096"),
    				EncryptionAlgorithm: pulumi.String("AES256"),
    				IntegrityAlgorithm:  pulumi.String("SHA256"),
    				Lifetime:            pulumi.Int(86400),
    			},
    			Esps: vpn.IpsecTunnelEspArray{
    				&vpn.IpsecTunnelEspArgs{
    					DiffieHellmanGroup:  pulumi.String("16-MODP4096"),
    					EncryptionAlgorithm: pulumi.String("AES256"),
    					IntegrityAlgorithm:  pulumi.String("SHA256"),
    					Lifetime:            pulumi.Int(3600),
    				},
    			},
    			CloudNetworkCidrs: pulumi.StringArray{
    				pulumi.String("0.0.0.0/0"),
    			},
    			PeerNetworkCidrs: pulumi.StringArray{
    				pulumi.String("1.2.3.4/32"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ionoscloud = Ionoscloud.Pulumi.Ionoscloud;
    
    return await Deployment.RunAsync(() => 
    {
        // Basic example
        var testDatacenter = new Ionoscloud.Compute.Datacenter("test_datacenter", new()
        {
            Name = "test_vpn_gateway_basic",
            Location = "de/fra",
        });
    
        var testLan = new Ionoscloud.Compute.Lan("test_lan", new()
        {
            Name = "test_lan_basic",
            Public = false,
            DatacenterId = testDatacenter.Id,
        });
    
        var testIpblock = new Ionoscloud.Compute.IPBlock("test_ipblock", new()
        {
            Name = "test_ipblock_basic",
            Location = "de/fra",
            Size = 1,
        });
    
        var example = new Ionoscloud.Vpn.IpsecGateway("example", new()
        {
            Name = "ipsec_gateway_basic",
            Location = "de/fra",
            GatewayIp = testIpblock.Ips.Apply(ips => ips[0]),
            Version = "IKEv2",
            Description = "This gateway connects site A to VDC X.",
            Connections = new[]
            {
                new Ionoscloud.Vpn.Inputs.IpsecGatewayConnectionArgs
                {
                    DatacenterId = testDatacenter.Id,
                    LanId = testLan.Id,
                    Ipv4Cidr = "192.168.100.10/24",
                },
            },
        });
    
        var exampleIpsecTunnel = new Ionoscloud.Vpn.IpsecTunnel("example", new()
        {
            Location = "de/fra",
            GatewayId = example.Id,
            Name = "example-tunnel",
            RemoteHost = "vpn.mycompany.com",
            Description = "Allows local subnet X to connect to virtual network Y.",
            Auth = new Ionoscloud.Vpn.Inputs.IpsecTunnelAuthArgs
            {
                Method = "PSK",
                PskKey = "X2wosbaw74M8hQGbK3jCCaEusR6CCFRa",
            },
            Ike = new Ionoscloud.Vpn.Inputs.IpsecTunnelIkeArgs
            {
                DiffieHellmanGroup = "16-MODP4096",
                EncryptionAlgorithm = "AES256",
                IntegrityAlgorithm = "SHA256",
                Lifetime = 86400,
            },
            Esps = new[]
            {
                new Ionoscloud.Vpn.Inputs.IpsecTunnelEspArgs
                {
                    DiffieHellmanGroup = "16-MODP4096",
                    EncryptionAlgorithm = "AES256",
                    IntegrityAlgorithm = "SHA256",
                    Lifetime = 3600,
                },
            },
            CloudNetworkCidrs = new[]
            {
                "0.0.0.0/0",
            },
            PeerNetworkCidrs = new[]
            {
                "1.2.3.4/32",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ionoscloud.compute.Datacenter;
    import com.pulumi.ionoscloud.compute.DatacenterArgs;
    import com.pulumi.ionoscloud.compute.Lan;
    import com.pulumi.ionoscloud.compute.LanArgs;
    import com.pulumi.ionoscloud.compute.IPBlock;
    import com.pulumi.ionoscloud.compute.IPBlockArgs;
    import com.pulumi.ionoscloud.vpn.IpsecGateway;
    import com.pulumi.ionoscloud.vpn.IpsecGatewayArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecGatewayConnectionArgs;
    import com.pulumi.ionoscloud.vpn.IpsecTunnel;
    import com.pulumi.ionoscloud.vpn.IpsecTunnelArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecTunnelAuthArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecTunnelIkeArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecTunnelEspArgs;
    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) {
            // Basic example
            var testDatacenter = new Datacenter("testDatacenter", DatacenterArgs.builder()
                .name("test_vpn_gateway_basic")
                .location("de/fra")
                .build());
    
            var testLan = new Lan("testLan", LanArgs.builder()
                .name("test_lan_basic")
                .public_(false)
                .datacenterId(testDatacenter.id())
                .build());
    
            var testIpblock = new IPBlock("testIpblock", IPBlockArgs.builder()
                .name("test_ipblock_basic")
                .location("de/fra")
                .size(1)
                .build());
    
            var example = new IpsecGateway("example", IpsecGatewayArgs.builder()
                .name("ipsec_gateway_basic")
                .location("de/fra")
                .gatewayIp(testIpblock.ips().applyValue(ips -> ips[0]))
                .version("IKEv2")
                .description("This gateway connects site A to VDC X.")
                .connections(IpsecGatewayConnectionArgs.builder()
                    .datacenterId(testDatacenter.id())
                    .lanId(testLan.id())
                    .ipv4Cidr("192.168.100.10/24")
                    .build())
                .build());
    
            var exampleIpsecTunnel = new IpsecTunnel("exampleIpsecTunnel", IpsecTunnelArgs.builder()
                .location("de/fra")
                .gatewayId(example.id())
                .name("example-tunnel")
                .remoteHost("vpn.mycompany.com")
                .description("Allows local subnet X to connect to virtual network Y.")
                .auth(IpsecTunnelAuthArgs.builder()
                    .method("PSK")
                    .pskKey("X2wosbaw74M8hQGbK3jCCaEusR6CCFRa")
                    .build())
                .ike(IpsecTunnelIkeArgs.builder()
                    .diffieHellmanGroup("16-MODP4096")
                    .encryptionAlgorithm("AES256")
                    .integrityAlgorithm("SHA256")
                    .lifetime(86400)
                    .build())
                .esps(IpsecTunnelEspArgs.builder()
                    .diffieHellmanGroup("16-MODP4096")
                    .encryptionAlgorithm("AES256")
                    .integrityAlgorithm("SHA256")
                    .lifetime(3600)
                    .build())
                .cloudNetworkCidrs("0.0.0.0/0")
                .peerNetworkCidrs("1.2.3.4/32")
                .build());
    
        }
    }
    
    resources:
      # Basic example
      testDatacenter:
        type: ionoscloud:compute:Datacenter
        name: test_datacenter
        properties:
          name: test_vpn_gateway_basic
          location: de/fra
      testLan:
        type: ionoscloud:compute:Lan
        name: test_lan
        properties:
          name: test_lan_basic
          public: false
          datacenterId: ${testDatacenter.id}
      testIpblock:
        type: ionoscloud:compute:IPBlock
        name: test_ipblock
        properties:
          name: test_ipblock_basic
          location: de/fra
          size: 1
      example:
        type: ionoscloud:vpn:IpsecGateway
        properties:
          name: ipsec_gateway_basic
          location: de/fra
          gatewayIp: ${testIpblock.ips[0]}
          version: IKEv2
          description: This gateway connects site A to VDC X.
          connections:
            - datacenterId: ${testDatacenter.id}
              lanId: ${testLan.id}
              ipv4Cidr: 192.168.100.10/24
      exampleIpsecTunnel:
        type: ionoscloud:vpn:IpsecTunnel
        name: example
        properties:
          location: de/fra
          gatewayId: ${example.id}
          name: example-tunnel
          remoteHost: vpn.mycompany.com
          description: Allows local subnet X to connect to virtual network Y.
          auth:
            method: PSK
            pskKey: X2wosbaw74M8hQGbK3jCCaEusR6CCFRa
          ike:
            diffieHellmanGroup: 16-MODP4096
            encryptionAlgorithm: AES256
            integrityAlgorithm: SHA256
            lifetime: 86400
          esps:
            - diffieHellmanGroup: 16-MODP4096
              encryptionAlgorithm: AES256
              integrityAlgorithm: SHA256
              lifetime: 3600
          cloudNetworkCidrs:
            - 0.0.0.0/0
          peerNetworkCidrs:
            - 1.2.3.4/32
    
    import * as pulumi from "@pulumi/pulumi";
    import * as ionoscloud from "@ionos-cloud/sdk-pulumi";
    import * as random from "@pulumi/random";
    
    // Complete example
    const testDatacenter = new ionoscloud.compute.Datacenter("test_datacenter", {
        name: "vpn_gateway_test",
        location: "de/fra",
    });
    const testLan = new ionoscloud.compute.Lan("test_lan", {
        name: "test_lan",
        "public": false,
        datacenterId: testDatacenter.id,
        ipv6CidrBlock: lanIpv6CidrBlock,
    });
    const testIpblock = new ionoscloud.compute.IPBlock("test_ipblock", {
        name: "test_ipblock",
        location: "de/fra",
        size: 1,
    });
    const serverImagePassword = new random.index.Password("server_image_password", {
        length: 16,
        special: false,
    });
    const testServer = new ionoscloud.compute.Server("test_server", {
        name: "test_server",
        datacenterId: testDatacenter.id,
        cores: 1,
        ram: 2048,
        imageName: "ubuntu:latest",
        imagePassword: serverImagePassword.result,
        nic: {
            lan: testLan.id,
            name: "test_nic",
            dhcp: true,
            dhcpv6: false,
            ipv6CidrBlock: ipv6CidrBlock,
            firewallActive: false,
        },
        volume: {
            name: "test_volume",
            diskType: "HDD",
            size: 10,
            licenceType: "OTHER",
        },
    });
    const example = new ionoscloud.vpn.IpsecGateway("example", {
        name: "ipsec-gateway",
        location: "de/fra",
        gatewayIp: testIpblock.ips[0],
        version: "IKEv2",
        description: "This gateway connects site A to VDC X.",
        connections: [{
            datacenterId: testDatacenter.id,
            lanId: testLan.id,
            ipv4Cidr: "ipv4_cidr_block_from_nic",
            ipv6Cidr: "ipv6_cidr_block_from_dc",
        }],
    });
    const exampleIpsecTunnel = new ionoscloud.vpn.IpsecTunnel("example", {
        location: "de/fra",
        gatewayId: example.id,
        name: "example-tunnel",
        remoteHost: "vpn.mycompany.com",
        description: "Allows local subnet X to connect to virtual network Y.",
        auth: {
            method: "PSK",
            pskKey: "X2wosbaw74M8hQGbK3jCCaEusR6CCFRa",
        },
        ike: {
            diffieHellmanGroup: "16-MODP4096",
            encryptionAlgorithm: "AES256",
            integrityAlgorithm: "SHA256",
            lifetime: 86400,
        },
        esps: [{
            diffieHellmanGroup: "16-MODP4096",
            encryptionAlgorithm: "AES256",
            integrityAlgorithm: "SHA256",
            lifetime: 3600,
        }],
        cloudNetworkCidrs: ["0.0.0.0/0"],
        peerNetworkCidrs: ["1.2.3.4/32"],
    });
    
    import pulumi
    import pulumi_ionoscloud as ionoscloud
    import pulumi_random as random
    
    # Complete example
    test_datacenter = ionoscloud.compute.Datacenter("test_datacenter",
        name="vpn_gateway_test",
        location="de/fra")
    test_lan = ionoscloud.compute.Lan("test_lan",
        name="test_lan",
        public=False,
        datacenter_id=test_datacenter.id,
        ipv6_cidr_block=lan_ipv6_cidr_block)
    test_ipblock = ionoscloud.compute.IPBlock("test_ipblock",
        name="test_ipblock",
        location="de/fra",
        size=1)
    server_image_password = random.index.Password("server_image_password",
        length=16,
        special=False)
    test_server = ionoscloud.compute.Server("test_server",
        name="test_server",
        datacenter_id=test_datacenter.id,
        cores=1,
        ram=2048,
        image_name="ubuntu:latest",
        image_password=server_image_password["result"],
        nic={
            "lan": test_lan.id,
            "name": "test_nic",
            "dhcp": True,
            "dhcpv6": False,
            "ipv6_cidr_block": ipv6_cidr_block,
            "firewall_active": False,
        },
        volume={
            "name": "test_volume",
            "disk_type": "HDD",
            "size": 10,
            "licence_type": "OTHER",
        })
    example = ionoscloud.vpn.IpsecGateway("example",
        name="ipsec-gateway",
        location="de/fra",
        gateway_ip=test_ipblock.ips[0],
        version="IKEv2",
        description="This gateway connects site A to VDC X.",
        connections=[{
            "datacenter_id": test_datacenter.id,
            "lan_id": test_lan.id,
            "ipv4_cidr": "ipv4_cidr_block_from_nic",
            "ipv6_cidr": "ipv6_cidr_block_from_dc",
        }])
    example_ipsec_tunnel = ionoscloud.vpn.IpsecTunnel("example",
        location="de/fra",
        gateway_id=example.id,
        name="example-tunnel",
        remote_host="vpn.mycompany.com",
        description="Allows local subnet X to connect to virtual network Y.",
        auth={
            "method": "PSK",
            "psk_key": "X2wosbaw74M8hQGbK3jCCaEusR6CCFRa",
        },
        ike={
            "diffie_hellman_group": "16-MODP4096",
            "encryption_algorithm": "AES256",
            "integrity_algorithm": "SHA256",
            "lifetime": 86400,
        },
        esps=[{
            "diffie_hellman_group": "16-MODP4096",
            "encryption_algorithm": "AES256",
            "integrity_algorithm": "SHA256",
            "lifetime": 3600,
        }],
        cloud_network_cidrs=["0.0.0.0/0"],
        peer_network_cidrs=["1.2.3.4/32"])
    
    package main
    
    import (
    	"github.com/ionos-cloud/pulumi-ionoscloud/sdk/go/ionoscloud/compute"
    	"github.com/ionos-cloud/pulumi-ionoscloud/sdk/go/ionoscloud/vpn"
    	"github.com/pulumi/pulumi-random/sdk/go/random"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Complete example
    		testDatacenter, err := compute.NewDatacenter(ctx, "test_datacenter", &compute.DatacenterArgs{
    			Name:     pulumi.String("vpn_gateway_test"),
    			Location: pulumi.String("de/fra"),
    		})
    		if err != nil {
    			return err
    		}
    		testLan, err := compute.NewLan(ctx, "test_lan", &compute.LanArgs{
    			Name:          pulumi.String("test_lan"),
    			Public:        pulumi.Bool(false),
    			DatacenterId:  testDatacenter.ID(),
    			Ipv6CidrBlock: pulumi.Any(lanIpv6CidrBlock),
    		})
    		if err != nil {
    			return err
    		}
    		testIpblock, err := compute.NewIPBlock(ctx, "test_ipblock", &compute.IPBlockArgs{
    			Name:     pulumi.String("test_ipblock"),
    			Location: pulumi.String("de/fra"),
    			Size:     pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		serverImagePassword, err := random.NewPassword(ctx, "server_image_password", &random.PasswordArgs{
    			Length:  16,
    			Special: false,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewServer(ctx, "test_server", &compute.ServerArgs{
    			Name:          pulumi.String("test_server"),
    			DatacenterId:  testDatacenter.ID(),
    			Cores:         pulumi.Int(1),
    			Ram:           pulumi.Int(2048),
    			ImageName:     pulumi.String("ubuntu:latest"),
    			ImagePassword: serverImagePassword.Result,
    			Nic: &compute.ServerNicArgs{
    				Lan:            testLan.ID(),
    				Name:           pulumi.String("test_nic"),
    				Dhcp:           pulumi.Bool(true),
    				Dhcpv6:         pulumi.Bool(false),
    				Ipv6CidrBlock:  pulumi.Any(ipv6CidrBlock),
    				FirewallActive: pulumi.Bool(false),
    			},
    			Volume: &compute.ServerVolumeArgs{
    				Name:        pulumi.String("test_volume"),
    				DiskType:    pulumi.String("HDD"),
    				Size:        pulumi.Int(10),
    				LicenceType: pulumi.String("OTHER"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		example, err := vpn.NewIpsecGateway(ctx, "example", &vpn.IpsecGatewayArgs{
    			Name:     pulumi.String("ipsec-gateway"),
    			Location: pulumi.String("de/fra"),
    			GatewayIp: testIpblock.Ips.ApplyT(func(ips []string) (string, error) {
    				return ips[0], nil
    			}).(pulumi.StringOutput),
    			Version:     pulumi.String("IKEv2"),
    			Description: pulumi.String("This gateway connects site A to VDC X."),
    			Connections: vpn.IpsecGatewayConnectionArray{
    				&vpn.IpsecGatewayConnectionArgs{
    					DatacenterId: testDatacenter.ID(),
    					LanId:        testLan.ID(),
    					Ipv4Cidr:     pulumi.String("ipv4_cidr_block_from_nic"),
    					Ipv6Cidr:     pulumi.String("ipv6_cidr_block_from_dc"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = vpn.NewIpsecTunnel(ctx, "example", &vpn.IpsecTunnelArgs{
    			Location:    pulumi.String("de/fra"),
    			GatewayId:   example.ID(),
    			Name:        pulumi.String("example-tunnel"),
    			RemoteHost:  pulumi.String("vpn.mycompany.com"),
    			Description: pulumi.String("Allows local subnet X to connect to virtual network Y."),
    			Auth: &vpn.IpsecTunnelAuthArgs{
    				Method: pulumi.String("PSK"),
    				PskKey: pulumi.String("X2wosbaw74M8hQGbK3jCCaEusR6CCFRa"),
    			},
    			Ike: &vpn.IpsecTunnelIkeArgs{
    				DiffieHellmanGroup:  pulumi.String("16-MODP4096"),
    				EncryptionAlgorithm: pulumi.String("AES256"),
    				IntegrityAlgorithm:  pulumi.String("SHA256"),
    				Lifetime:            pulumi.Int(86400),
    			},
    			Esps: vpn.IpsecTunnelEspArray{
    				&vpn.IpsecTunnelEspArgs{
    					DiffieHellmanGroup:  pulumi.String("16-MODP4096"),
    					EncryptionAlgorithm: pulumi.String("AES256"),
    					IntegrityAlgorithm:  pulumi.String("SHA256"),
    					Lifetime:            pulumi.Int(3600),
    				},
    			},
    			CloudNetworkCidrs: pulumi.StringArray{
    				pulumi.String("0.0.0.0/0"),
    			},
    			PeerNetworkCidrs: pulumi.StringArray{
    				pulumi.String("1.2.3.4/32"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ionoscloud = Ionoscloud.Pulumi.Ionoscloud;
    using Random = Pulumi.Random;
    
    return await Deployment.RunAsync(() => 
    {
        // Complete example
        var testDatacenter = new Ionoscloud.Compute.Datacenter("test_datacenter", new()
        {
            Name = "vpn_gateway_test",
            Location = "de/fra",
        });
    
        var testLan = new Ionoscloud.Compute.Lan("test_lan", new()
        {
            Name = "test_lan",
            Public = false,
            DatacenterId = testDatacenter.Id,
            Ipv6CidrBlock = lanIpv6CidrBlock,
        });
    
        var testIpblock = new Ionoscloud.Compute.IPBlock("test_ipblock", new()
        {
            Name = "test_ipblock",
            Location = "de/fra",
            Size = 1,
        });
    
        var serverImagePassword = new Random.Index.Password("server_image_password", new()
        {
            Length = 16,
            Special = false,
        });
    
        var testServer = new Ionoscloud.Compute.Server("test_server", new()
        {
            Name = "test_server",
            DatacenterId = testDatacenter.Id,
            Cores = 1,
            Ram = 2048,
            ImageName = "ubuntu:latest",
            ImagePassword = serverImagePassword.Result,
            Nic = new Ionoscloud.Compute.Inputs.ServerNicArgs
            {
                Lan = testLan.Id,
                Name = "test_nic",
                Dhcp = true,
                Dhcpv6 = false,
                Ipv6CidrBlock = ipv6CidrBlock,
                FirewallActive = false,
            },
            Volume = new Ionoscloud.Compute.Inputs.ServerVolumeArgs
            {
                Name = "test_volume",
                DiskType = "HDD",
                Size = 10,
                LicenceType = "OTHER",
            },
        });
    
        var example = new Ionoscloud.Vpn.IpsecGateway("example", new()
        {
            Name = "ipsec-gateway",
            Location = "de/fra",
            GatewayIp = testIpblock.Ips.Apply(ips => ips[0]),
            Version = "IKEv2",
            Description = "This gateway connects site A to VDC X.",
            Connections = new[]
            {
                new Ionoscloud.Vpn.Inputs.IpsecGatewayConnectionArgs
                {
                    DatacenterId = testDatacenter.Id,
                    LanId = testLan.Id,
                    Ipv4Cidr = "ipv4_cidr_block_from_nic",
                    Ipv6Cidr = "ipv6_cidr_block_from_dc",
                },
            },
        });
    
        var exampleIpsecTunnel = new Ionoscloud.Vpn.IpsecTunnel("example", new()
        {
            Location = "de/fra",
            GatewayId = example.Id,
            Name = "example-tunnel",
            RemoteHost = "vpn.mycompany.com",
            Description = "Allows local subnet X to connect to virtual network Y.",
            Auth = new Ionoscloud.Vpn.Inputs.IpsecTunnelAuthArgs
            {
                Method = "PSK",
                PskKey = "X2wosbaw74M8hQGbK3jCCaEusR6CCFRa",
            },
            Ike = new Ionoscloud.Vpn.Inputs.IpsecTunnelIkeArgs
            {
                DiffieHellmanGroup = "16-MODP4096",
                EncryptionAlgorithm = "AES256",
                IntegrityAlgorithm = "SHA256",
                Lifetime = 86400,
            },
            Esps = new[]
            {
                new Ionoscloud.Vpn.Inputs.IpsecTunnelEspArgs
                {
                    DiffieHellmanGroup = "16-MODP4096",
                    EncryptionAlgorithm = "AES256",
                    IntegrityAlgorithm = "SHA256",
                    Lifetime = 3600,
                },
            },
            CloudNetworkCidrs = new[]
            {
                "0.0.0.0/0",
            },
            PeerNetworkCidrs = new[]
            {
                "1.2.3.4/32",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ionoscloud.compute.Datacenter;
    import com.pulumi.ionoscloud.compute.DatacenterArgs;
    import com.pulumi.ionoscloud.compute.Lan;
    import com.pulumi.ionoscloud.compute.LanArgs;
    import com.pulumi.ionoscloud.compute.IPBlock;
    import com.pulumi.ionoscloud.compute.IPBlockArgs;
    import com.pulumi.random.password;
    import com.pulumi.random.PasswordArgs;
    import com.pulumi.ionoscloud.compute.Server;
    import com.pulumi.ionoscloud.compute.ServerArgs;
    import com.pulumi.ionoscloud.compute.inputs.ServerNicArgs;
    import com.pulumi.ionoscloud.compute.inputs.ServerVolumeArgs;
    import com.pulumi.ionoscloud.vpn.IpsecGateway;
    import com.pulumi.ionoscloud.vpn.IpsecGatewayArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecGatewayConnectionArgs;
    import com.pulumi.ionoscloud.vpn.IpsecTunnel;
    import com.pulumi.ionoscloud.vpn.IpsecTunnelArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecTunnelAuthArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecTunnelIkeArgs;
    import com.pulumi.ionoscloud.vpn.inputs.IpsecTunnelEspArgs;
    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) {
            // Complete example
            var testDatacenter = new Datacenter("testDatacenter", DatacenterArgs.builder()
                .name("vpn_gateway_test")
                .location("de/fra")
                .build());
    
            var testLan = new Lan("testLan", LanArgs.builder()
                .name("test_lan")
                .public_(false)
                .datacenterId(testDatacenter.id())
                .ipv6CidrBlock(lanIpv6CidrBlock)
                .build());
    
            var testIpblock = new IPBlock("testIpblock", IPBlockArgs.builder()
                .name("test_ipblock")
                .location("de/fra")
                .size(1)
                .build());
    
            var serverImagePassword = new Password("serverImagePassword", PasswordArgs.builder()
                .length(16)
                .special(false)
                .build());
    
            var testServer = new Server("testServer", ServerArgs.builder()
                .name("test_server")
                .datacenterId(testDatacenter.id())
                .cores(1)
                .ram(2048)
                .imageName("ubuntu:latest")
                .imagePassword(serverImagePassword.result())
                .nic(ServerNicArgs.builder()
                    .lan(testLan.id())
                    .name("test_nic")
                    .dhcp(true)
                    .dhcpv6(false)
                    .ipv6CidrBlock(ipv6CidrBlock)
                    .firewallActive(false)
                    .build())
                .volume(ServerVolumeArgs.builder()
                    .name("test_volume")
                    .diskType("HDD")
                    .size(10)
                    .licenceType("OTHER")
                    .build())
                .build());
    
            var example = new IpsecGateway("example", IpsecGatewayArgs.builder()
                .name("ipsec-gateway")
                .location("de/fra")
                .gatewayIp(testIpblock.ips().applyValue(ips -> ips[0]))
                .version("IKEv2")
                .description("This gateway connects site A to VDC X.")
                .connections(IpsecGatewayConnectionArgs.builder()
                    .datacenterId(testDatacenter.id())
                    .lanId(testLan.id())
                    .ipv4Cidr("ipv4_cidr_block_from_nic")
                    .ipv6Cidr("ipv6_cidr_block_from_dc")
                    .build())
                .build());
    
            var exampleIpsecTunnel = new IpsecTunnel("exampleIpsecTunnel", IpsecTunnelArgs.builder()
                .location("de/fra")
                .gatewayId(example.id())
                .name("example-tunnel")
                .remoteHost("vpn.mycompany.com")
                .description("Allows local subnet X to connect to virtual network Y.")
                .auth(IpsecTunnelAuthArgs.builder()
                    .method("PSK")
                    .pskKey("X2wosbaw74M8hQGbK3jCCaEusR6CCFRa")
                    .build())
                .ike(IpsecTunnelIkeArgs.builder()
                    .diffieHellmanGroup("16-MODP4096")
                    .encryptionAlgorithm("AES256")
                    .integrityAlgorithm("SHA256")
                    .lifetime(86400)
                    .build())
                .esps(IpsecTunnelEspArgs.builder()
                    .diffieHellmanGroup("16-MODP4096")
                    .encryptionAlgorithm("AES256")
                    .integrityAlgorithm("SHA256")
                    .lifetime(3600)
                    .build())
                .cloudNetworkCidrs("0.0.0.0/0")
                .peerNetworkCidrs("1.2.3.4/32")
                .build());
    
        }
    }
    
    resources:
      # Complete example
      testDatacenter:
        type: ionoscloud:compute:Datacenter
        name: test_datacenter
        properties:
          name: vpn_gateway_test
          location: de/fra
      testLan:
        type: ionoscloud:compute:Lan
        name: test_lan
        properties:
          name: test_lan
          public: false
          datacenterId: ${testDatacenter.id}
          ipv6CidrBlock: ${lanIpv6CidrBlock}
      testIpblock:
        type: ionoscloud:compute:IPBlock
        name: test_ipblock
        properties:
          name: test_ipblock
          location: de/fra
          size: 1
      testServer:
        type: ionoscloud:compute:Server
        name: test_server
        properties:
          name: test_server
          datacenterId: ${testDatacenter.id}
          cores: 1
          ram: 2048
          imageName: ubuntu:latest
          imagePassword: ${serverImagePassword.result}
          nic:
            lan: ${testLan.id}
            name: test_nic
            dhcp: true
            dhcpv6: false
            ipv6CidrBlock: ${ipv6CidrBlock}
            firewallActive: false
          volume:
            name: test_volume
            diskType: HDD
            size: 10
            licenceType: OTHER
      serverImagePassword:
        type: random:password
        name: server_image_password
        properties:
          length: 16
          special: false
      example:
        type: ionoscloud:vpn:IpsecGateway
        properties:
          name: ipsec-gateway
          location: de/fra
          gatewayIp: ${testIpblock.ips[0]}
          version: IKEv2
          description: This gateway connects site A to VDC X.
          connections:
            - datacenterId: ${testDatacenter.id}
              lanId: ${testLan.id}
              ipv4Cidr: ipv4_cidr_block_from_nic
              ipv6Cidr: ipv6_cidr_block_from_dc
      exampleIpsecTunnel:
        type: ionoscloud:vpn:IpsecTunnel
        name: example
        properties:
          location: de/fra
          gatewayId: ${example.id}
          name: example-tunnel
          remoteHost: vpn.mycompany.com
          description: Allows local subnet X to connect to virtual network Y.
          auth:
            method: PSK
            pskKey: X2wosbaw74M8hQGbK3jCCaEusR6CCFRa
          ike:
            diffieHellmanGroup: 16-MODP4096
            encryptionAlgorithm: AES256
            integrityAlgorithm: SHA256
            lifetime: 86400
          esps:
            - diffieHellmanGroup: 16-MODP4096
              encryptionAlgorithm: AES256
              integrityAlgorithm: SHA256
              lifetime: 3600
          cloudNetworkCidrs:
            - 0.0.0.0/0
          peerNetworkCidrs:
            - 1.2.3.4/32
    

    Create IpsecTunnel Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new IpsecTunnel(name: string, args: IpsecTunnelArgs, opts?: CustomResourceOptions);
    @overload
    def IpsecTunnel(resource_name: str,
                    args: IpsecTunnelArgs,
                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def IpsecTunnel(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    auth: Optional[IpsecTunnelAuthArgs] = None,
                    cloud_network_cidrs: Optional[Sequence[str]] = None,
                    esps: Optional[Sequence[IpsecTunnelEspArgs]] = None,
                    gateway_id: Optional[str] = None,
                    ike: Optional[IpsecTunnelIkeArgs] = None,
                    peer_network_cidrs: Optional[Sequence[str]] = None,
                    remote_host: Optional[str] = None,
                    description: Optional[str] = None,
                    location: Optional[str] = None,
                    name: Optional[str] = None)
    func NewIpsecTunnel(ctx *Context, name string, args IpsecTunnelArgs, opts ...ResourceOption) (*IpsecTunnel, error)
    public IpsecTunnel(string name, IpsecTunnelArgs args, CustomResourceOptions? opts = null)
    public IpsecTunnel(String name, IpsecTunnelArgs args)
    public IpsecTunnel(String name, IpsecTunnelArgs args, CustomResourceOptions options)
    
    type: ionoscloud:vpn:IpsecTunnel
    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 IpsecTunnelArgs
    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 IpsecTunnelArgs
    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 IpsecTunnelArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args IpsecTunnelArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args IpsecTunnelArgs
    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 ipsecTunnelResource = new Ionoscloud.Vpn.IpsecTunnel("ipsecTunnelResource", new()
    {
        Auth = new Ionoscloud.Vpn.Inputs.IpsecTunnelAuthArgs
        {
            Method = "string",
            PskKey = "string",
        },
        CloudNetworkCidrs = new[]
        {
            "string",
        },
        Esps = new[]
        {
            new Ionoscloud.Vpn.Inputs.IpsecTunnelEspArgs
            {
                DiffieHellmanGroup = "string",
                EncryptionAlgorithm = "string",
                IntegrityAlgorithm = "string",
                Lifetime = 0,
            },
        },
        GatewayId = "string",
        Ike = new Ionoscloud.Vpn.Inputs.IpsecTunnelIkeArgs
        {
            DiffieHellmanGroup = "string",
            EncryptionAlgorithm = "string",
            IntegrityAlgorithm = "string",
            Lifetime = 0,
        },
        PeerNetworkCidrs = new[]
        {
            "string",
        },
        RemoteHost = "string",
        Description = "string",
        Location = "string",
        Name = "string",
    });
    
    example, err := vpn.NewIpsecTunnel(ctx, "ipsecTunnelResource", &vpn.IpsecTunnelArgs{
    	Auth: &vpn.IpsecTunnelAuthArgs{
    		Method: pulumi.String("string"),
    		PskKey: pulumi.String("string"),
    	},
    	CloudNetworkCidrs: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Esps: vpn.IpsecTunnelEspArray{
    		&vpn.IpsecTunnelEspArgs{
    			DiffieHellmanGroup:  pulumi.String("string"),
    			EncryptionAlgorithm: pulumi.String("string"),
    			IntegrityAlgorithm:  pulumi.String("string"),
    			Lifetime:            pulumi.Int(0),
    		},
    	},
    	GatewayId: pulumi.String("string"),
    	Ike: &vpn.IpsecTunnelIkeArgs{
    		DiffieHellmanGroup:  pulumi.String("string"),
    		EncryptionAlgorithm: pulumi.String("string"),
    		IntegrityAlgorithm:  pulumi.String("string"),
    		Lifetime:            pulumi.Int(0),
    	},
    	PeerNetworkCidrs: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	RemoteHost:  pulumi.String("string"),
    	Description: pulumi.String("string"),
    	Location:    pulumi.String("string"),
    	Name:        pulumi.String("string"),
    })
    
    var ipsecTunnelResource = new IpsecTunnel("ipsecTunnelResource", IpsecTunnelArgs.builder()
        .auth(IpsecTunnelAuthArgs.builder()
            .method("string")
            .pskKey("string")
            .build())
        .cloudNetworkCidrs("string")
        .esps(IpsecTunnelEspArgs.builder()
            .diffieHellmanGroup("string")
            .encryptionAlgorithm("string")
            .integrityAlgorithm("string")
            .lifetime(0)
            .build())
        .gatewayId("string")
        .ike(IpsecTunnelIkeArgs.builder()
            .diffieHellmanGroup("string")
            .encryptionAlgorithm("string")
            .integrityAlgorithm("string")
            .lifetime(0)
            .build())
        .peerNetworkCidrs("string")
        .remoteHost("string")
        .description("string")
        .location("string")
        .name("string")
        .build());
    
    ipsec_tunnel_resource = ionoscloud.vpn.IpsecTunnel("ipsecTunnelResource",
        auth={
            "method": "string",
            "psk_key": "string",
        },
        cloud_network_cidrs=["string"],
        esps=[{
            "diffie_hellman_group": "string",
            "encryption_algorithm": "string",
            "integrity_algorithm": "string",
            "lifetime": 0,
        }],
        gateway_id="string",
        ike={
            "diffie_hellman_group": "string",
            "encryption_algorithm": "string",
            "integrity_algorithm": "string",
            "lifetime": 0,
        },
        peer_network_cidrs=["string"],
        remote_host="string",
        description="string",
        location="string",
        name="string")
    
    const ipsecTunnelResource = new ionoscloud.vpn.IpsecTunnel("ipsecTunnelResource", {
        auth: {
            method: "string",
            pskKey: "string",
        },
        cloudNetworkCidrs: ["string"],
        esps: [{
            diffieHellmanGroup: "string",
            encryptionAlgorithm: "string",
            integrityAlgorithm: "string",
            lifetime: 0,
        }],
        gatewayId: "string",
        ike: {
            diffieHellmanGroup: "string",
            encryptionAlgorithm: "string",
            integrityAlgorithm: "string",
            lifetime: 0,
        },
        peerNetworkCidrs: ["string"],
        remoteHost: "string",
        description: "string",
        location: "string",
        name: "string",
    });
    
    type: ionoscloud:vpn:IpsecTunnel
    properties:
        auth:
            method: string
            pskKey: string
        cloudNetworkCidrs:
            - string
        description: string
        esps:
            - diffieHellmanGroup: string
              encryptionAlgorithm: string
              integrityAlgorithm: string
              lifetime: 0
        gatewayId: string
        ike:
            diffieHellmanGroup: string
            encryptionAlgorithm: string
            integrityAlgorithm: string
            lifetime: 0
        location: string
        name: string
        peerNetworkCidrs:
            - string
        remoteHost: string
    

    IpsecTunnel Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The IpsecTunnel resource accepts the following input properties:

    Auth Ionoscloud.IpsecTunnelAuth
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    CloudNetworkCidrs List<string>
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    Esps List<Ionoscloud.IpsecTunnelEsp>
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    GatewayId string
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    Ike Ionoscloud.IpsecTunnelIke
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    PeerNetworkCidrs List<string>
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    RemoteHost string
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    Description string
    [string] The human-readable description of your IPSec Gateway Tunnel.
    Location string
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    Name string
    [string] The name of the IPSec Gateway Tunnel.
    Auth IpsecTunnelAuthArgs
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    CloudNetworkCidrs []string
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    Esps []IpsecTunnelEspArgs
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    GatewayId string
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    Ike IpsecTunnelIkeArgs
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    PeerNetworkCidrs []string
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    RemoteHost string
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    Description string
    [string] The human-readable description of your IPSec Gateway Tunnel.
    Location string
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    Name string
    [string] The name of the IPSec Gateway Tunnel.
    auth IpsecTunnelAuth
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloudNetworkCidrs List<String>
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    esps List<IpsecTunnelEsp>
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gatewayId String
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike IpsecTunnelIke
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    peerNetworkCidrs List<String>
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remoteHost String
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    description String
    [string] The human-readable description of your IPSec Gateway Tunnel.
    location String
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name String
    [string] The name of the IPSec Gateway Tunnel.
    auth IpsecTunnelAuth
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloudNetworkCidrs string[]
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    esps IpsecTunnelEsp[]
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gatewayId string
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike IpsecTunnelIke
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    peerNetworkCidrs string[]
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remoteHost string
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    description string
    [string] The human-readable description of your IPSec Gateway Tunnel.
    location string
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name string
    [string] The name of the IPSec Gateway Tunnel.
    auth IpsecTunnelAuthArgs
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloud_network_cidrs Sequence[str]
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    esps Sequence[IpsecTunnelEspArgs]
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gateway_id str
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike IpsecTunnelIkeArgs
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    peer_network_cidrs Sequence[str]
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remote_host str
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    description str
    [string] The human-readable description of your IPSec Gateway Tunnel.
    location str
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name str
    [string] The name of the IPSec Gateway Tunnel.
    auth Property Map
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloudNetworkCidrs List<String>
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    esps List<Property Map>
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gatewayId String
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike Property Map
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    peerNetworkCidrs List<String>
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remoteHost String
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    description String
    [string] The human-readable description of your IPSec Gateway Tunnel.
    location String
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name String
    [string] The name of the IPSec Gateway Tunnel.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the IpsecTunnel 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 IpsecTunnel Resource

    Get an existing IpsecTunnel 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?: IpsecTunnelState, opts?: CustomResourceOptions): IpsecTunnel
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            auth: Optional[IpsecTunnelAuthArgs] = None,
            cloud_network_cidrs: Optional[Sequence[str]] = None,
            description: Optional[str] = None,
            esps: Optional[Sequence[IpsecTunnelEspArgs]] = None,
            gateway_id: Optional[str] = None,
            ike: Optional[IpsecTunnelIkeArgs] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            peer_network_cidrs: Optional[Sequence[str]] = None,
            remote_host: Optional[str] = None) -> IpsecTunnel
    func GetIpsecTunnel(ctx *Context, name string, id IDInput, state *IpsecTunnelState, opts ...ResourceOption) (*IpsecTunnel, error)
    public static IpsecTunnel Get(string name, Input<string> id, IpsecTunnelState? state, CustomResourceOptions? opts = null)
    public static IpsecTunnel get(String name, Output<String> id, IpsecTunnelState state, CustomResourceOptions options)
    resources:  _:    type: ionoscloud:vpn:IpsecTunnel    get:      id: ${id}
    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.
    The following state arguments are supported:
    Auth Ionoscloud.IpsecTunnelAuth
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    CloudNetworkCidrs List<string>
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    Description string
    [string] The human-readable description of your IPSec Gateway Tunnel.
    Esps List<Ionoscloud.IpsecTunnelEsp>
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    GatewayId string
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    Ike Ionoscloud.IpsecTunnelIke
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    Location string
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    Name string
    [string] The name of the IPSec Gateway Tunnel.
    PeerNetworkCidrs List<string>
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    RemoteHost string
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    Auth IpsecTunnelAuthArgs
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    CloudNetworkCidrs []string
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    Description string
    [string] The human-readable description of your IPSec Gateway Tunnel.
    Esps []IpsecTunnelEspArgs
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    GatewayId string
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    Ike IpsecTunnelIkeArgs
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    Location string
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    Name string
    [string] The name of the IPSec Gateway Tunnel.
    PeerNetworkCidrs []string
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    RemoteHost string
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    auth IpsecTunnelAuth
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloudNetworkCidrs List<String>
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    description String
    [string] The human-readable description of your IPSec Gateway Tunnel.
    esps List<IpsecTunnelEsp>
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gatewayId String
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike IpsecTunnelIke
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    location String
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name String
    [string] The name of the IPSec Gateway Tunnel.
    peerNetworkCidrs List<String>
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remoteHost String
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    auth IpsecTunnelAuth
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloudNetworkCidrs string[]
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    description string
    [string] The human-readable description of your IPSec Gateway Tunnel.
    esps IpsecTunnelEsp[]
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gatewayId string
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike IpsecTunnelIke
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    location string
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name string
    [string] The name of the IPSec Gateway Tunnel.
    peerNetworkCidrs string[]
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remoteHost string
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    auth IpsecTunnelAuthArgs
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloud_network_cidrs Sequence[str]
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    description str
    [string] The human-readable description of your IPSec Gateway Tunnel.
    esps Sequence[IpsecTunnelEspArgs]
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gateway_id str
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike IpsecTunnelIkeArgs
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    location str
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name str
    [string] The name of the IPSec Gateway Tunnel.
    peer_network_cidrs Sequence[str]
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remote_host str
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.
    auth Property Map
    [string] Properties with all data needed to define IPSec Authentication. Minimum items: 1. Maximum items: 1.
    cloudNetworkCidrs List<String>
    [list] The network CIDRs on the "Left" side that are allowed to connect to the IPSec tunnel, i.e. the CIDRs within your IONOS Cloud LAN. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    description String
    [string] The human-readable description of your IPSec Gateway Tunnel.
    esps List<Property Map>
    [list] Settings for the IPSec SA (ESP) phase. Minimum items: 1. Maximum items: 1.
    gatewayId String
    [string] The ID of the IPSec Gateway that the tunnel belongs to.
    ike Property Map
    [list] Settings for the initial security exchange phase. Minimum items: 1. Maximum items: 1.
    location String
    [string] The location of the IPSec Gateway Tunnel. Supported locations: de/fra, de/txl, es/vit, gb/lhr, us/ewr, us/las, us/mci, fr/par
    name String
    [string] The name of the IPSec Gateway Tunnel.
    peerNetworkCidrs List<String>
    [list] The network CIDRs on the "Right" side that are allowed to connect to the IPSec tunnel. Specify "0.0.0.0/0" or "::/0" for all addresses. Minimum items: 1. Maximum items: 20.
    remoteHost String
    [string] The remote peer host fully qualified domain name or public IPV4 IP to connect to.

    Supporting Types

    IpsecTunnelAuth, IpsecTunnelAuthArgs

    Method string
    [string] The authentication method to use for IPSec Authentication. Possible values: PSK. Default value: PSK.
    PskKey string
    [string] The pre-shared key to use for IPSec Authentication. Note: Required if method is PSK.
    Method string
    [string] The authentication method to use for IPSec Authentication. Possible values: PSK. Default value: PSK.
    PskKey string
    [string] The pre-shared key to use for IPSec Authentication. Note: Required if method is PSK.
    method String
    [string] The authentication method to use for IPSec Authentication. Possible values: PSK. Default value: PSK.
    pskKey String
    [string] The pre-shared key to use for IPSec Authentication. Note: Required if method is PSK.
    method string
    [string] The authentication method to use for IPSec Authentication. Possible values: PSK. Default value: PSK.
    pskKey string
    [string] The pre-shared key to use for IPSec Authentication. Note: Required if method is PSK.
    method str
    [string] The authentication method to use for IPSec Authentication. Possible values: PSK. Default value: PSK.
    psk_key str
    [string] The pre-shared key to use for IPSec Authentication. Note: Required if method is PSK.
    method String
    [string] The authentication method to use for IPSec Authentication. Possible values: PSK. Default value: PSK.
    pskKey String
    [string] The pre-shared key to use for IPSec Authentication. Note: Required if method is PSK.

    IpsecTunnelEsp, IpsecTunnelEspArgs

    DiffieHellmanGroup string
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    EncryptionAlgorithm string
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    IntegrityAlgorithm string
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    Lifetime int
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    DiffieHellmanGroup string
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    EncryptionAlgorithm string
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    IntegrityAlgorithm string
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    Lifetime int
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffieHellmanGroup String
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryptionAlgorithm String
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrityAlgorithm String
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime Integer
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffieHellmanGroup string
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryptionAlgorithm string
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrityAlgorithm string
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime number
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffie_hellman_group str
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryption_algorithm str
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrity_algorithm str
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime int
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffieHellmanGroup String
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryptionAlgorithm String
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrityAlgorithm String
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime Number
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.

    IpsecTunnelIke, IpsecTunnelIkeArgs

    DiffieHellmanGroup string
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    EncryptionAlgorithm string
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    IntegrityAlgorithm string
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    Lifetime int
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    DiffieHellmanGroup string
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    EncryptionAlgorithm string
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    IntegrityAlgorithm string
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    Lifetime int
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffieHellmanGroup String
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryptionAlgorithm String
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrityAlgorithm String
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime Integer
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffieHellmanGroup string
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryptionAlgorithm string
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrityAlgorithm string
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime number
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffie_hellman_group str
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryption_algorithm str
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrity_algorithm str
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime int
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.
    diffieHellmanGroup String
    [string] The Diffie-Hellman Group to use for IPSec Encryption. Possible values: 15-MODP3072, 16-MODP4096, 19-ECP256, 20-ECP384, 21-ECP521, 28-ECP256BP, 29-ECP384BP, 30-ECP512BP. Default value: 16-MODP4096.
    encryptionAlgorithm String
    [string] The encryption algorithm to use for IPSec Encryption. Possible values: AES128, AES256, AES128-CTR, AES256-CTR, AES128-GCM-16, AES256-GCM-16, AES128-GCM-12, AES256-GCM-12, AES128-CCM-12, AES256-CCM-12. Default value: AES256.
    integrityAlgorithm String
    [string] The integrity algorithm to use for IPSec Encryption. Possible values: SHA256, SHA384, SHA512, AES-XCBC. Default value: SHA256.
    lifetime Number
    [string] The phase lifetime in seconds. Minimum value: 3600. Maximum value: 86400. Default value: 86400.

    Import

    The resource can be imported using the location, gateway_id and tunnel_id, for example:

    $ pulumi import ionoscloud:vpn/ipsecTunnel:IpsecTunnel example location:gateway_id:tunnel_id
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    ionoscloud ionos-cloud/pulumi-ionoscloud
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the ionoscloud Terraform Provider.
    ionoscloud logo
    IonosCloud v0.2.2 published on Monday, May 12, 2025 by ionos-cloud