1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. HaVpnGateway
Google Cloud Classic v8.3.1 published on Wednesday, Sep 25, 2024 by Pulumi

gcp.compute.HaVpnGateway

Explore with Pulumi AI

gcp logo
Google Cloud Classic v8.3.1 published on Wednesday, Sep 25, 2024 by Pulumi

    Represents a VPN gateway running in GCP. This virtual device is managed by Google, but used only by you. This type of VPN Gateway allows for the creation of VPN solutions with higher availability than classic Target VPN Gateways.

    To get more information about HaVpnGateway, see:

    Example Usage

    Ha Vpn Gateway Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const network1 = new gcp.compute.Network("network1", {
        name: "network1",
        autoCreateSubnetworks: false,
    });
    const haGateway1 = new gcp.compute.HaVpnGateway("ha_gateway1", {
        region: "us-central1",
        name: "ha-vpn-1",
        network: network1.id,
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    network1 = gcp.compute.Network("network1",
        name="network1",
        auto_create_subnetworks=False)
    ha_gateway1 = gcp.compute.HaVpnGateway("ha_gateway1",
        region="us-central1",
        name="ha-vpn-1",
        network=network1.id)
    
    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 {
    		network1, err := compute.NewNetwork(ctx, "network1", &compute.NetworkArgs{
    			Name:                  pulumi.String("network1"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewHaVpnGateway(ctx, "ha_gateway1", &compute.HaVpnGatewayArgs{
    			Region:  pulumi.String("us-central1"),
    			Name:    pulumi.String("ha-vpn-1"),
    			Network: network1.ID(),
    		})
    		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 network1 = new Gcp.Compute.Network("network1", new()
        {
            Name = "network1",
            AutoCreateSubnetworks = false,
        });
    
        var haGateway1 = new Gcp.Compute.HaVpnGateway("ha_gateway1", new()
        {
            Region = "us-central1",
            Name = "ha-vpn-1",
            Network = network1.Id,
        });
    
    });
    
    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.HaVpnGateway;
    import com.pulumi.gcp.compute.HaVpnGatewayArgs;
    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 network1 = new Network("network1", NetworkArgs.builder()
                .name("network1")
                .autoCreateSubnetworks(false)
                .build());
    
            var haGateway1 = new HaVpnGateway("haGateway1", HaVpnGatewayArgs.builder()
                .region("us-central1")
                .name("ha-vpn-1")
                .network(network1.id())
                .build());
    
        }
    }
    
    resources:
      haGateway1:
        type: gcp:compute:HaVpnGateway
        name: ha_gateway1
        properties:
          region: us-central1
          name: ha-vpn-1
          network: ${network1.id}
      network1:
        type: gcp:compute:Network
        properties:
          name: network1
          autoCreateSubnetworks: false
    

    Ha Vpn Gateway Ipv6

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const network1 = new gcp.compute.Network("network1", {
        name: "network1",
        autoCreateSubnetworks: false,
    });
    const haGateway1 = new gcp.compute.HaVpnGateway("ha_gateway1", {
        region: "us-central1",
        name: "ha-vpn-1",
        network: network1.id,
        stackType: "IPV4_IPV6",
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    network1 = gcp.compute.Network("network1",
        name="network1",
        auto_create_subnetworks=False)
    ha_gateway1 = gcp.compute.HaVpnGateway("ha_gateway1",
        region="us-central1",
        name="ha-vpn-1",
        network=network1.id,
        stack_type="IPV4_IPV6")
    
    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 {
    		network1, err := compute.NewNetwork(ctx, "network1", &compute.NetworkArgs{
    			Name:                  pulumi.String("network1"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewHaVpnGateway(ctx, "ha_gateway1", &compute.HaVpnGatewayArgs{
    			Region:    pulumi.String("us-central1"),
    			Name:      pulumi.String("ha-vpn-1"),
    			Network:   network1.ID(),
    			StackType: pulumi.String("IPV4_IPV6"),
    		})
    		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 network1 = new Gcp.Compute.Network("network1", new()
        {
            Name = "network1",
            AutoCreateSubnetworks = false,
        });
    
        var haGateway1 = new Gcp.Compute.HaVpnGateway("ha_gateway1", new()
        {
            Region = "us-central1",
            Name = "ha-vpn-1",
            Network = network1.Id,
            StackType = "IPV4_IPV6",
        });
    
    });
    
    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.HaVpnGateway;
    import com.pulumi.gcp.compute.HaVpnGatewayArgs;
    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 network1 = new Network("network1", NetworkArgs.builder()
                .name("network1")
                .autoCreateSubnetworks(false)
                .build());
    
            var haGateway1 = new HaVpnGateway("haGateway1", HaVpnGatewayArgs.builder()
                .region("us-central1")
                .name("ha-vpn-1")
                .network(network1.id())
                .stackType("IPV4_IPV6")
                .build());
    
        }
    }
    
    resources:
      haGateway1:
        type: gcp:compute:HaVpnGateway
        name: ha_gateway1
        properties:
          region: us-central1
          name: ha-vpn-1
          network: ${network1.id}
          stackType: IPV4_IPV6
      network1:
        type: gcp:compute:Network
        properties:
          name: network1
          autoCreateSubnetworks: false
    

    Compute Ha Vpn Gateway Encrypted Interconnect

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const network = new gcp.compute.Network("network", {
        name: "test-network",
        autoCreateSubnetworks: false,
    });
    const address1 = new gcp.compute.Address("address1", {
        name: "test-address1",
        addressType: "INTERNAL",
        purpose: "IPSEC_INTERCONNECT",
        address: "192.168.1.0",
        prefixLength: 29,
        network: network.selfLink,
    });
    const router = new gcp.compute.Router("router", {
        name: "test-router",
        network: network.name,
        encryptedInterconnectRouter: true,
        bgp: {
            asn: 16550,
        },
    });
    const attachment1 = new gcp.compute.InterconnectAttachment("attachment1", {
        name: "test-interconnect-attachment1",
        edgeAvailabilityDomain: "AVAILABILITY_DOMAIN_1",
        type: "PARTNER",
        router: router.id,
        encryption: "IPSEC",
        ipsecInternalAddresses: [address1.selfLink],
    });
    const address2 = new gcp.compute.Address("address2", {
        name: "test-address2",
        addressType: "INTERNAL",
        purpose: "IPSEC_INTERCONNECT",
        address: "192.168.2.0",
        prefixLength: 29,
        network: network.selfLink,
    });
    const attachment2 = new gcp.compute.InterconnectAttachment("attachment2", {
        name: "test-interconnect-attachment2",
        edgeAvailabilityDomain: "AVAILABILITY_DOMAIN_2",
        type: "PARTNER",
        router: router.id,
        encryption: "IPSEC",
        ipsecInternalAddresses: [address2.selfLink],
    });
    const vpn_gateway = new gcp.compute.HaVpnGateway("vpn-gateway", {
        name: "test-ha-vpngw",
        network: network.id,
        vpnInterfaces: [
            {
                id: 0,
                interconnectAttachment: attachment1.selfLink,
            },
            {
                id: 1,
                interconnectAttachment: attachment2.selfLink,
            },
        ],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    network = gcp.compute.Network("network",
        name="test-network",
        auto_create_subnetworks=False)
    address1 = gcp.compute.Address("address1",
        name="test-address1",
        address_type="INTERNAL",
        purpose="IPSEC_INTERCONNECT",
        address="192.168.1.0",
        prefix_length=29,
        network=network.self_link)
    router = gcp.compute.Router("router",
        name="test-router",
        network=network.name,
        encrypted_interconnect_router=True,
        bgp={
            "asn": 16550,
        })
    attachment1 = gcp.compute.InterconnectAttachment("attachment1",
        name="test-interconnect-attachment1",
        edge_availability_domain="AVAILABILITY_DOMAIN_1",
        type="PARTNER",
        router=router.id,
        encryption="IPSEC",
        ipsec_internal_addresses=[address1.self_link])
    address2 = gcp.compute.Address("address2",
        name="test-address2",
        address_type="INTERNAL",
        purpose="IPSEC_INTERCONNECT",
        address="192.168.2.0",
        prefix_length=29,
        network=network.self_link)
    attachment2 = gcp.compute.InterconnectAttachment("attachment2",
        name="test-interconnect-attachment2",
        edge_availability_domain="AVAILABILITY_DOMAIN_2",
        type="PARTNER",
        router=router.id,
        encryption="IPSEC",
        ipsec_internal_addresses=[address2.self_link])
    vpn_gateway = gcp.compute.HaVpnGateway("vpn-gateway",
        name="test-ha-vpngw",
        network=network.id,
        vpn_interfaces=[
            {
                "id": 0,
                "interconnect_attachment": attachment1.self_link,
            },
            {
                "id": 1,
                "interconnect_attachment": attachment2.self_link,
            },
        ])
    
    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 {
    		network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{
    			Name:                  pulumi.String("test-network"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		address1, err := compute.NewAddress(ctx, "address1", &compute.AddressArgs{
    			Name:         pulumi.String("test-address1"),
    			AddressType:  pulumi.String("INTERNAL"),
    			Purpose:      pulumi.String("IPSEC_INTERCONNECT"),
    			Address:      pulumi.String("192.168.1.0"),
    			PrefixLength: pulumi.Int(29),
    			Network:      network.SelfLink,
    		})
    		if err != nil {
    			return err
    		}
    		router, err := compute.NewRouter(ctx, "router", &compute.RouterArgs{
    			Name:                        pulumi.String("test-router"),
    			Network:                     network.Name,
    			EncryptedInterconnectRouter: pulumi.Bool(true),
    			Bgp: &compute.RouterBgpArgs{
    				Asn: pulumi.Int(16550),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		attachment1, err := compute.NewInterconnectAttachment(ctx, "attachment1", &compute.InterconnectAttachmentArgs{
    			Name:                   pulumi.String("test-interconnect-attachment1"),
    			EdgeAvailabilityDomain: pulumi.String("AVAILABILITY_DOMAIN_1"),
    			Type:                   pulumi.String("PARTNER"),
    			Router:                 router.ID(),
    			Encryption:             pulumi.String("IPSEC"),
    			IpsecInternalAddresses: pulumi.StringArray{
    				address1.SelfLink,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		address2, err := compute.NewAddress(ctx, "address2", &compute.AddressArgs{
    			Name:         pulumi.String("test-address2"),
    			AddressType:  pulumi.String("INTERNAL"),
    			Purpose:      pulumi.String("IPSEC_INTERCONNECT"),
    			Address:      pulumi.String("192.168.2.0"),
    			PrefixLength: pulumi.Int(29),
    			Network:      network.SelfLink,
    		})
    		if err != nil {
    			return err
    		}
    		attachment2, err := compute.NewInterconnectAttachment(ctx, "attachment2", &compute.InterconnectAttachmentArgs{
    			Name:                   pulumi.String("test-interconnect-attachment2"),
    			EdgeAvailabilityDomain: pulumi.String("AVAILABILITY_DOMAIN_2"),
    			Type:                   pulumi.String("PARTNER"),
    			Router:                 router.ID(),
    			Encryption:             pulumi.String("IPSEC"),
    			IpsecInternalAddresses: pulumi.StringArray{
    				address2.SelfLink,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewHaVpnGateway(ctx, "vpn-gateway", &compute.HaVpnGatewayArgs{
    			Name:    pulumi.String("test-ha-vpngw"),
    			Network: network.ID(),
    			VpnInterfaces: compute.HaVpnGatewayVpnInterfaceArray{
    				&compute.HaVpnGatewayVpnInterfaceArgs{
    					Id:                     pulumi.Int(0),
    					InterconnectAttachment: attachment1.SelfLink,
    				},
    				&compute.HaVpnGatewayVpnInterfaceArgs{
    					Id:                     pulumi.Int(1),
    					InterconnectAttachment: attachment2.SelfLink,
    				},
    			},
    		})
    		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 network = new Gcp.Compute.Network("network", new()
        {
            Name = "test-network",
            AutoCreateSubnetworks = false,
        });
    
        var address1 = new Gcp.Compute.Address("address1", new()
        {
            Name = "test-address1",
            AddressType = "INTERNAL",
            Purpose = "IPSEC_INTERCONNECT",
            IPAddress = "192.168.1.0",
            PrefixLength = 29,
            Network = network.SelfLink,
        });
    
        var router = new Gcp.Compute.Router("router", new()
        {
            Name = "test-router",
            Network = network.Name,
            EncryptedInterconnectRouter = true,
            Bgp = new Gcp.Compute.Inputs.RouterBgpArgs
            {
                Asn = 16550,
            },
        });
    
        var attachment1 = new Gcp.Compute.InterconnectAttachment("attachment1", new()
        {
            Name = "test-interconnect-attachment1",
            EdgeAvailabilityDomain = "AVAILABILITY_DOMAIN_1",
            Type = "PARTNER",
            Router = router.Id,
            Encryption = "IPSEC",
            IpsecInternalAddresses = new[]
            {
                address1.SelfLink,
            },
        });
    
        var address2 = new Gcp.Compute.Address("address2", new()
        {
            Name = "test-address2",
            AddressType = "INTERNAL",
            Purpose = "IPSEC_INTERCONNECT",
            IPAddress = "192.168.2.0",
            PrefixLength = 29,
            Network = network.SelfLink,
        });
    
        var attachment2 = new Gcp.Compute.InterconnectAttachment("attachment2", new()
        {
            Name = "test-interconnect-attachment2",
            EdgeAvailabilityDomain = "AVAILABILITY_DOMAIN_2",
            Type = "PARTNER",
            Router = router.Id,
            Encryption = "IPSEC",
            IpsecInternalAddresses = new[]
            {
                address2.SelfLink,
            },
        });
    
        var vpn_gateway = new Gcp.Compute.HaVpnGateway("vpn-gateway", new()
        {
            Name = "test-ha-vpngw",
            Network = network.Id,
            VpnInterfaces = new[]
            {
                new Gcp.Compute.Inputs.HaVpnGatewayVpnInterfaceArgs
                {
                    Id = 0,
                    InterconnectAttachment = attachment1.SelfLink,
                },
                new Gcp.Compute.Inputs.HaVpnGatewayVpnInterfaceArgs
                {
                    Id = 1,
                    InterconnectAttachment = attachment2.SelfLink,
                },
            },
        });
    
    });
    
    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.Address;
    import com.pulumi.gcp.compute.AddressArgs;
    import com.pulumi.gcp.compute.Router;
    import com.pulumi.gcp.compute.RouterArgs;
    import com.pulumi.gcp.compute.inputs.RouterBgpArgs;
    import com.pulumi.gcp.compute.InterconnectAttachment;
    import com.pulumi.gcp.compute.InterconnectAttachmentArgs;
    import com.pulumi.gcp.compute.HaVpnGateway;
    import com.pulumi.gcp.compute.HaVpnGatewayArgs;
    import com.pulumi.gcp.compute.inputs.HaVpnGatewayVpnInterfaceArgs;
    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 network = new Network("network", NetworkArgs.builder()
                .name("test-network")
                .autoCreateSubnetworks(false)
                .build());
    
            var address1 = new Address("address1", AddressArgs.builder()
                .name("test-address1")
                .addressType("INTERNAL")
                .purpose("IPSEC_INTERCONNECT")
                .address("192.168.1.0")
                .prefixLength(29)
                .network(network.selfLink())
                .build());
    
            var router = new Router("router", RouterArgs.builder()
                .name("test-router")
                .network(network.name())
                .encryptedInterconnectRouter(true)
                .bgp(RouterBgpArgs.builder()
                    .asn(16550)
                    .build())
                .build());
    
            var attachment1 = new InterconnectAttachment("attachment1", InterconnectAttachmentArgs.builder()
                .name("test-interconnect-attachment1")
                .edgeAvailabilityDomain("AVAILABILITY_DOMAIN_1")
                .type("PARTNER")
                .router(router.id())
                .encryption("IPSEC")
                .ipsecInternalAddresses(address1.selfLink())
                .build());
    
            var address2 = new Address("address2", AddressArgs.builder()
                .name("test-address2")
                .addressType("INTERNAL")
                .purpose("IPSEC_INTERCONNECT")
                .address("192.168.2.0")
                .prefixLength(29)
                .network(network.selfLink())
                .build());
    
            var attachment2 = new InterconnectAttachment("attachment2", InterconnectAttachmentArgs.builder()
                .name("test-interconnect-attachment2")
                .edgeAvailabilityDomain("AVAILABILITY_DOMAIN_2")
                .type("PARTNER")
                .router(router.id())
                .encryption("IPSEC")
                .ipsecInternalAddresses(address2.selfLink())
                .build());
    
            var vpn_gateway = new HaVpnGateway("vpn-gateway", HaVpnGatewayArgs.builder()
                .name("test-ha-vpngw")
                .network(network.id())
                .vpnInterfaces(            
                    HaVpnGatewayVpnInterfaceArgs.builder()
                        .id(0)
                        .interconnectAttachment(attachment1.selfLink())
                        .build(),
                    HaVpnGatewayVpnInterfaceArgs.builder()
                        .id(1)
                        .interconnectAttachment(attachment2.selfLink())
                        .build())
                .build());
    
        }
    }
    
    resources:
      vpn-gateway:
        type: gcp:compute:HaVpnGateway
        properties:
          name: test-ha-vpngw
          network: ${network.id}
          vpnInterfaces:
            - id: 0
              interconnectAttachment: ${attachment1.selfLink}
            - id: 1
              interconnectAttachment: ${attachment2.selfLink}
      attachment1:
        type: gcp:compute:InterconnectAttachment
        properties:
          name: test-interconnect-attachment1
          edgeAvailabilityDomain: AVAILABILITY_DOMAIN_1
          type: PARTNER
          router: ${router.id}
          encryption: IPSEC
          ipsecInternalAddresses:
            - ${address1.selfLink}
      attachment2:
        type: gcp:compute:InterconnectAttachment
        properties:
          name: test-interconnect-attachment2
          edgeAvailabilityDomain: AVAILABILITY_DOMAIN_2
          type: PARTNER
          router: ${router.id}
          encryption: IPSEC
          ipsecInternalAddresses:
            - ${address2.selfLink}
      address1:
        type: gcp:compute:Address
        properties:
          name: test-address1
          addressType: INTERNAL
          purpose: IPSEC_INTERCONNECT
          address: 192.168.1.0
          prefixLength: 29
          network: ${network.selfLink}
      address2:
        type: gcp:compute:Address
        properties:
          name: test-address2
          addressType: INTERNAL
          purpose: IPSEC_INTERCONNECT
          address: 192.168.2.0
          prefixLength: 29
          network: ${network.selfLink}
      router:
        type: gcp:compute:Router
        properties:
          name: test-router
          network: ${network.name}
          encryptedInterconnectRouter: true
          bgp:
            asn: 16550
      network:
        type: gcp:compute:Network
        properties:
          name: test-network
          autoCreateSubnetworks: false
    

    Create HaVpnGateway Resource

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

    Constructor syntax

    new HaVpnGateway(name: string, args: HaVpnGatewayArgs, opts?: CustomResourceOptions);
    @overload
    def HaVpnGateway(resource_name: str,
                     args: HaVpnGatewayArgs,
                     opts: Optional[ResourceOptions] = None)
    
    @overload
    def HaVpnGateway(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     network: Optional[str] = None,
                     description: Optional[str] = None,
                     gateway_ip_version: Optional[str] = None,
                     name: Optional[str] = None,
                     project: Optional[str] = None,
                     region: Optional[str] = None,
                     stack_type: Optional[str] = None,
                     vpn_interfaces: Optional[Sequence[HaVpnGatewayVpnInterfaceArgs]] = None)
    func NewHaVpnGateway(ctx *Context, name string, args HaVpnGatewayArgs, opts ...ResourceOption) (*HaVpnGateway, error)
    public HaVpnGateway(string name, HaVpnGatewayArgs args, CustomResourceOptions? opts = null)
    public HaVpnGateway(String name, HaVpnGatewayArgs args)
    public HaVpnGateway(String name, HaVpnGatewayArgs args, CustomResourceOptions options)
    
    type: gcp:compute:HaVpnGateway
    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 HaVpnGatewayArgs
    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 HaVpnGatewayArgs
    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 HaVpnGatewayArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args HaVpnGatewayArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args HaVpnGatewayArgs
    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 haVpnGatewayResource = new Gcp.Compute.HaVpnGateway("haVpnGatewayResource", new()
    {
        Network = "string",
        Description = "string",
        GatewayIpVersion = "string",
        Name = "string",
        Project = "string",
        Region = "string",
        StackType = "string",
        VpnInterfaces = new[]
        {
            new Gcp.Compute.Inputs.HaVpnGatewayVpnInterfaceArgs
            {
                Id = 0,
                InterconnectAttachment = "string",
                IpAddress = "string",
            },
        },
    });
    
    example, err := compute.NewHaVpnGateway(ctx, "haVpnGatewayResource", &compute.HaVpnGatewayArgs{
    	Network:          pulumi.String("string"),
    	Description:      pulumi.String("string"),
    	GatewayIpVersion: pulumi.String("string"),
    	Name:             pulumi.String("string"),
    	Project:          pulumi.String("string"),
    	Region:           pulumi.String("string"),
    	StackType:        pulumi.String("string"),
    	VpnInterfaces: compute.HaVpnGatewayVpnInterfaceArray{
    		&compute.HaVpnGatewayVpnInterfaceArgs{
    			Id:                     pulumi.Int(0),
    			InterconnectAttachment: pulumi.String("string"),
    			IpAddress:              pulumi.String("string"),
    		},
    	},
    })
    
    var haVpnGatewayResource = new HaVpnGateway("haVpnGatewayResource", HaVpnGatewayArgs.builder()
        .network("string")
        .description("string")
        .gatewayIpVersion("string")
        .name("string")
        .project("string")
        .region("string")
        .stackType("string")
        .vpnInterfaces(HaVpnGatewayVpnInterfaceArgs.builder()
            .id(0)
            .interconnectAttachment("string")
            .ipAddress("string")
            .build())
        .build());
    
    ha_vpn_gateway_resource = gcp.compute.HaVpnGateway("haVpnGatewayResource",
        network="string",
        description="string",
        gateway_ip_version="string",
        name="string",
        project="string",
        region="string",
        stack_type="string",
        vpn_interfaces=[{
            "id": 0,
            "interconnectAttachment": "string",
            "ipAddress": "string",
        }])
    
    const haVpnGatewayResource = new gcp.compute.HaVpnGateway("haVpnGatewayResource", {
        network: "string",
        description: "string",
        gatewayIpVersion: "string",
        name: "string",
        project: "string",
        region: "string",
        stackType: "string",
        vpnInterfaces: [{
            id: 0,
            interconnectAttachment: "string",
            ipAddress: "string",
        }],
    });
    
    type: gcp:compute:HaVpnGateway
    properties:
        description: string
        gatewayIpVersion: string
        name: string
        network: string
        project: string
        region: string
        stackType: string
        vpnInterfaces:
            - id: 0
              interconnectAttachment: string
              ipAddress: string
    

    HaVpnGateway 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 HaVpnGateway resource accepts the following input properties:

    Network string
    The network this VPN gateway is accepting traffic for.


    Description string
    An optional description of this resource.
    GatewayIpVersion string
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Region string
    The region this gateway should sit in.
    StackType string
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    VpnInterfaces List<HaVpnGatewayVpnInterface>
    A list of interfaces on this VPN gateway. Structure is documented below.
    Network string
    The network this VPN gateway is accepting traffic for.


    Description string
    An optional description of this resource.
    GatewayIpVersion string
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Region string
    The region this gateway should sit in.
    StackType string
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    VpnInterfaces []HaVpnGatewayVpnInterfaceArgs
    A list of interfaces on this VPN gateway. Structure is documented below.
    network String
    The network this VPN gateway is accepting traffic for.


    description String
    An optional description of this resource.
    gatewayIpVersion String
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region String
    The region this gateway should sit in.
    stackType String
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpnInterfaces List<HaVpnGatewayVpnInterface>
    A list of interfaces on this VPN gateway. Structure is documented below.
    network string
    The network this VPN gateway is accepting traffic for.


    description string
    An optional description of this resource.
    gatewayIpVersion string
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region string
    The region this gateway should sit in.
    stackType string
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpnInterfaces HaVpnGatewayVpnInterface[]
    A list of interfaces on this VPN gateway. Structure is documented below.
    network str
    The network this VPN gateway is accepting traffic for.


    description str
    An optional description of this resource.
    gateway_ip_version str
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name str
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region str
    The region this gateway should sit in.
    stack_type str
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpn_interfaces Sequence[HaVpnGatewayVpnInterfaceArgs]
    A list of interfaces on this VPN gateway. Structure is documented below.
    network String
    The network this VPN gateway is accepting traffic for.


    description String
    An optional description of this resource.
    gatewayIpVersion String
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region String
    The region this gateway should sit in.
    stackType String
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpnInterfaces List<Property Map>
    A list of interfaces on this VPN gateway. Structure is documented below.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the HaVpnGateway resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    SelfLink string
    The URI of the created resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    SelfLink string
    The URI of the created resource.
    id String
    The provider-assigned unique ID for this managed resource.
    selfLink String
    The URI of the created resource.
    id string
    The provider-assigned unique ID for this managed resource.
    selfLink string
    The URI of the created resource.
    id str
    The provider-assigned unique ID for this managed resource.
    self_link str
    The URI of the created resource.
    id String
    The provider-assigned unique ID for this managed resource.
    selfLink String
    The URI of the created resource.

    Look up Existing HaVpnGateway Resource

    Get an existing HaVpnGateway 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?: HaVpnGatewayState, opts?: CustomResourceOptions): HaVpnGateway
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            description: Optional[str] = None,
            gateway_ip_version: Optional[str] = None,
            name: Optional[str] = None,
            network: Optional[str] = None,
            project: Optional[str] = None,
            region: Optional[str] = None,
            self_link: Optional[str] = None,
            stack_type: Optional[str] = None,
            vpn_interfaces: Optional[Sequence[HaVpnGatewayVpnInterfaceArgs]] = None) -> HaVpnGateway
    func GetHaVpnGateway(ctx *Context, name string, id IDInput, state *HaVpnGatewayState, opts ...ResourceOption) (*HaVpnGateway, error)
    public static HaVpnGateway Get(string name, Input<string> id, HaVpnGatewayState? state, CustomResourceOptions? opts = null)
    public static HaVpnGateway get(String name, Output<String> id, HaVpnGatewayState 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.
    The following state arguments are supported:
    Description string
    An optional description of this resource.
    GatewayIpVersion string
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    Network string
    The network this VPN gateway is accepting traffic for.


    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Region string
    The region this gateway should sit in.
    SelfLink string
    The URI of the created resource.
    StackType string
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    VpnInterfaces List<HaVpnGatewayVpnInterface>
    A list of interfaces on this VPN gateway. Structure is documented below.
    Description string
    An optional description of this resource.
    GatewayIpVersion string
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    Network string
    The network this VPN gateway is accepting traffic for.


    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Region string
    The region this gateway should sit in.
    SelfLink string
    The URI of the created resource.
    StackType string
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    VpnInterfaces []HaVpnGatewayVpnInterfaceArgs
    A list of interfaces on this VPN gateway. Structure is documented below.
    description String
    An optional description of this resource.
    gatewayIpVersion String
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    network String
    The network this VPN gateway is accepting traffic for.


    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region String
    The region this gateway should sit in.
    selfLink String
    The URI of the created resource.
    stackType String
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpnInterfaces List<HaVpnGatewayVpnInterface>
    A list of interfaces on this VPN gateway. Structure is documented below.
    description string
    An optional description of this resource.
    gatewayIpVersion string
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    network string
    The network this VPN gateway is accepting traffic for.


    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region string
    The region this gateway should sit in.
    selfLink string
    The URI of the created resource.
    stackType string
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpnInterfaces HaVpnGatewayVpnInterface[]
    A list of interfaces on this VPN gateway. Structure is documented below.
    description str
    An optional description of this resource.
    gateway_ip_version str
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name str
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    network str
    The network this VPN gateway is accepting traffic for.


    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region str
    The region this gateway should sit in.
    self_link str
    The URI of the created resource.
    stack_type str
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpn_interfaces Sequence[HaVpnGatewayVpnInterfaceArgs]
    A list of interfaces on this VPN gateway. Structure is documented below.
    description String
    An optional description of this resource.
    gatewayIpVersion String
    The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used. Default value is IPV4. Possible values are: IPV4, IPV6.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
    network String
    The network this VPN gateway is accepting traffic for.


    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region String
    The region this gateway should sit in.
    selfLink String
    The URI of the created resource.
    stackType String
    The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used. Default value is IPV4_ONLY. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY.
    vpnInterfaces List<Property Map>
    A list of interfaces on this VPN gateway. Structure is documented below.

    Supporting Types

    HaVpnGatewayVpnInterface, HaVpnGatewayVpnInterfaceArgs

    Id int
    The numeric ID of this VPN gateway interface.
    InterconnectAttachment string
    URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource. Not currently available publicly.
    IpAddress string
    (Output) The external IP address for this VPN gateway interface.
    Id int
    The numeric ID of this VPN gateway interface.
    InterconnectAttachment string
    URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource. Not currently available publicly.
    IpAddress string
    (Output) The external IP address for this VPN gateway interface.
    id Integer
    The numeric ID of this VPN gateway interface.
    interconnectAttachment String
    URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource. Not currently available publicly.
    ipAddress String
    (Output) The external IP address for this VPN gateway interface.
    id number
    The numeric ID of this VPN gateway interface.
    interconnectAttachment string
    URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource. Not currently available publicly.
    ipAddress string
    (Output) The external IP address for this VPN gateway interface.
    id int
    The numeric ID of this VPN gateway interface.
    interconnect_attachment str
    URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource. Not currently available publicly.
    ip_address str
    (Output) The external IP address for this VPN gateway interface.
    id Number
    The numeric ID of this VPN gateway interface.
    interconnectAttachment String
    URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource. Not currently available publicly.
    ipAddress String
    (Output) The external IP address for this VPN gateway interface.

    Import

    HaVpnGateway can be imported using any of these accepted formats:

    • projects/{{project}}/regions/{{region}}/vpnGateways/{{name}}

    • {{project}}/{{region}}/{{name}}

    • {{region}}/{{name}}

    • {{name}}

    When using the pulumi import command, HaVpnGateway can be imported using one of the formats above. For example:

    $ pulumi import gcp:compute/haVpnGateway:HaVpnGateway default projects/{{project}}/regions/{{region}}/vpnGateways/{{name}}
    
    $ pulumi import gcp:compute/haVpnGateway:HaVpnGateway default {{project}}/{{region}}/{{name}}
    
    $ pulumi import gcp:compute/haVpnGateway:HaVpnGateway default {{region}}/{{name}}
    
    $ pulumi import gcp:compute/haVpnGateway:HaVpnGateway 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-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v8.3.1 published on Wednesday, Sep 25, 2024 by Pulumi