vpn

package
v3.25.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 25, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Connection

type Connection struct {
	pulumi.CustomResourceState

	// The configurations of the BGP routing protocol. See the following `Block bgpConfig`.
	BgpConfig ConnectionBgpConfigOutput `pulumi:"bgpConfig"`
	// The ID of the customer gateway.
	CustomerGatewayId pulumi.StringOutput `pulumi:"customerGatewayId"`
	// Whether to delete a successfully negotiated IPsec tunnel and initiate a negotiation again. Valid value:true,false.
	EffectImmediately pulumi.BoolPtrOutput `pulumi:"effectImmediately"`
	// Whether to enable NAT traversal.
	EnableDpd pulumi.BoolOutput `pulumi:"enableDpd"`
	// Whether to enable NAT traversal.
	EnableNatTraversal pulumi.BoolOutput `pulumi:"enableNatTraversal"`
	// The health check configurations. See the following `Block healthCheckConfig`.
	HealthCheckConfig ConnectionHealthCheckConfigOutput `pulumi:"healthCheckConfig"`
	// The configurations of phase-one negotiation. See the following `Block ikeConfig`.
	IkeConfig ConnectionIkeConfigOutput `pulumi:"ikeConfig"`
	// The configurations of phase-two negotiation. See the following `Block ipsecConfig`.
	IpsecConfig ConnectionIpsecConfigOutput `pulumi:"ipsecConfig"`
	// The CIDR block of the VPC to be connected with the local data center. This parameter is used for phase-two negotiation.
	LocalSubnets pulumi.StringArrayOutput `pulumi:"localSubnets"`
	// The name of the IPsec connection.
	Name pulumi.StringOutput `pulumi:"name"`
	// The CIDR block of the local data center. This parameter is used for phase-two negotiation.
	RemoteSubnets pulumi.StringArrayOutput `pulumi:"remoteSubnets"`
	// The status of VPN connection.
	Status pulumi.StringOutput `pulumi:"status"`
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringOutput `pulumi:"vpnGatewayId"`
}

## Example Usage

Basic Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		fooGateway, err := vpn.NewGateway(ctx, "fooGateway", &vpn.GatewayArgs{
			VpcId:              pulumi.String("vpc-fake-id"),
			Bandwidth:          pulumi.Int(10),
			EnableSsl:          pulumi.Bool(true),
			InstanceChargeType: pulumi.String("PostPaid"),
			Description:        pulumi.String("test_create_description"),
		})
		if err != nil {
			return err
		}
		fooCustomerGateway, err := vpn.NewCustomerGateway(ctx, "fooCustomerGateway", &vpn.CustomerGatewayArgs{
			IpAddress:   pulumi.String("42.104.22.228"),
			Description: pulumi.String("testAccVpnCgwDesc"),
		})
		if err != nil {
			return err
		}
		_, err = vpn.NewConnection(ctx, "fooConnection", &vpn.ConnectionArgs{
			VpnGatewayId:      fooGateway.ID(),
			CustomerGatewayId: fooCustomerGateway.ID(),
			LocalSubnets: pulumi.StringArray{
				pulumi.String("172.16.0.0/24"),
				pulumi.String("172.16.1.0/24"),
			},
			RemoteSubnets: pulumi.StringArray{
				pulumi.String("10.0.0.0/24"),
				pulumi.String("10.0.1.0/24"),
			},
			EffectImmediately: pulumi.Bool(true),
			IkeConfig: &vpn.ConnectionIkeConfigArgs{
				IkeAuthAlg:  pulumi.String("md5"),
				IkeEncAlg:   pulumi.String("des"),
				IkeVersion:  pulumi.String("ikev1"),
				IkeMode:     pulumi.String("main"),
				IkeLifetime: pulumi.Int(86400),
				Psk:         pulumi.String("tf-testvpn2"),
				IkePfs:      pulumi.String("group1"),
				IkeRemoteId: pulumi.String("testbob2"),
				IkeLocalId:  pulumi.String("testalice2"),
			},
			IpsecConfig: &vpn.ConnectionIpsecConfigArgs{
				IpsecPfs:      pulumi.String("group5"),
				IpsecEncAlg:   pulumi.String("des"),
				IpsecAuthAlg:  pulumi.String("md5"),
				IpsecLifetime: pulumi.Int(8640),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

VPN connection can be imported using the id, e.g.

```sh

$ pulumi import alicloud:vpn/connection:Connection example vco-abc123456

```

func GetConnection

func GetConnection(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ConnectionState, opts ...pulumi.ResourceOption) (*Connection, error)

GetConnection gets an existing Connection resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewConnection

func NewConnection(ctx *pulumi.Context,
	name string, args *ConnectionArgs, opts ...pulumi.ResourceOption) (*Connection, error)

NewConnection registers a new resource with the given unique name, arguments, and options.

func (*Connection) ElementType

func (*Connection) ElementType() reflect.Type

func (*Connection) ToConnectionOutput

func (i *Connection) ToConnectionOutput() ConnectionOutput

func (*Connection) ToConnectionOutputWithContext

func (i *Connection) ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput

type ConnectionArgs

type ConnectionArgs struct {
	// The configurations of the BGP routing protocol. See the following `Block bgpConfig`.
	BgpConfig ConnectionBgpConfigPtrInput
	// The ID of the customer gateway.
	CustomerGatewayId pulumi.StringInput
	// Whether to delete a successfully negotiated IPsec tunnel and initiate a negotiation again. Valid value:true,false.
	EffectImmediately pulumi.BoolPtrInput
	// Whether to enable NAT traversal.
	EnableDpd pulumi.BoolPtrInput
	// Whether to enable NAT traversal.
	EnableNatTraversal pulumi.BoolPtrInput
	// The health check configurations. See the following `Block healthCheckConfig`.
	HealthCheckConfig ConnectionHealthCheckConfigPtrInput
	// The configurations of phase-one negotiation. See the following `Block ikeConfig`.
	IkeConfig ConnectionIkeConfigPtrInput
	// The configurations of phase-two negotiation. See the following `Block ipsecConfig`.
	IpsecConfig ConnectionIpsecConfigPtrInput
	// The CIDR block of the VPC to be connected with the local data center. This parameter is used for phase-two negotiation.
	LocalSubnets pulumi.StringArrayInput
	// The name of the IPsec connection.
	Name pulumi.StringPtrInput
	// The CIDR block of the local data center. This parameter is used for phase-two negotiation.
	RemoteSubnets pulumi.StringArrayInput
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringInput
}

The set of arguments for constructing a Connection resource.

func (ConnectionArgs) ElementType

func (ConnectionArgs) ElementType() reflect.Type

type ConnectionArray

type ConnectionArray []ConnectionInput

func (ConnectionArray) ElementType

func (ConnectionArray) ElementType() reflect.Type

func (ConnectionArray) ToConnectionArrayOutput

func (i ConnectionArray) ToConnectionArrayOutput() ConnectionArrayOutput

func (ConnectionArray) ToConnectionArrayOutputWithContext

func (i ConnectionArray) ToConnectionArrayOutputWithContext(ctx context.Context) ConnectionArrayOutput

type ConnectionArrayInput

type ConnectionArrayInput interface {
	pulumi.Input

	ToConnectionArrayOutput() ConnectionArrayOutput
	ToConnectionArrayOutputWithContext(context.Context) ConnectionArrayOutput
}

ConnectionArrayInput is an input type that accepts ConnectionArray and ConnectionArrayOutput values. You can construct a concrete instance of `ConnectionArrayInput` via:

ConnectionArray{ ConnectionArgs{...} }

type ConnectionArrayOutput

type ConnectionArrayOutput struct{ *pulumi.OutputState }

func (ConnectionArrayOutput) ElementType

func (ConnectionArrayOutput) ElementType() reflect.Type

func (ConnectionArrayOutput) Index

func (ConnectionArrayOutput) ToConnectionArrayOutput

func (o ConnectionArrayOutput) ToConnectionArrayOutput() ConnectionArrayOutput

func (ConnectionArrayOutput) ToConnectionArrayOutputWithContext

func (o ConnectionArrayOutput) ToConnectionArrayOutputWithContext(ctx context.Context) ConnectionArrayOutput

type ConnectionBgpConfig added in v3.20.0

type ConnectionBgpConfig struct {
	// Whether to enable BGP.
	Enable *bool `pulumi:"enable"`
	// The ASN on the Alibaba Cloud side.
	LocalAsn *string `pulumi:"localAsn"`
	// The BGP IP address on the Alibaba Cloud side.
	LocalBgpIp *string `pulumi:"localBgpIp"`
	// The CIDR block of the IPsec tunnel. The CIDR block belongs to 169.254.0.0/16. The mask of the CIDR block is 30 bits in length.
	TunnelCidr *string `pulumi:"tunnelCidr"`
}

type ConnectionBgpConfigArgs added in v3.20.0

type ConnectionBgpConfigArgs struct {
	// Whether to enable BGP.
	Enable pulumi.BoolPtrInput `pulumi:"enable"`
	// The ASN on the Alibaba Cloud side.
	LocalAsn pulumi.StringPtrInput `pulumi:"localAsn"`
	// The BGP IP address on the Alibaba Cloud side.
	LocalBgpIp pulumi.StringPtrInput `pulumi:"localBgpIp"`
	// The CIDR block of the IPsec tunnel. The CIDR block belongs to 169.254.0.0/16. The mask of the CIDR block is 30 bits in length.
	TunnelCidr pulumi.StringPtrInput `pulumi:"tunnelCidr"`
}

func (ConnectionBgpConfigArgs) ElementType added in v3.20.0

func (ConnectionBgpConfigArgs) ElementType() reflect.Type

func (ConnectionBgpConfigArgs) ToConnectionBgpConfigOutput added in v3.20.0

func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigOutput() ConnectionBgpConfigOutput

func (ConnectionBgpConfigArgs) ToConnectionBgpConfigOutputWithContext added in v3.20.0

func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigOutputWithContext(ctx context.Context) ConnectionBgpConfigOutput

func (ConnectionBgpConfigArgs) ToConnectionBgpConfigPtrOutput added in v3.20.0

func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput

func (ConnectionBgpConfigArgs) ToConnectionBgpConfigPtrOutputWithContext added in v3.20.0

func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigPtrOutputWithContext(ctx context.Context) ConnectionBgpConfigPtrOutput

type ConnectionBgpConfigInput added in v3.20.0

type ConnectionBgpConfigInput interface {
	pulumi.Input

	ToConnectionBgpConfigOutput() ConnectionBgpConfigOutput
	ToConnectionBgpConfigOutputWithContext(context.Context) ConnectionBgpConfigOutput
}

ConnectionBgpConfigInput is an input type that accepts ConnectionBgpConfigArgs and ConnectionBgpConfigOutput values. You can construct a concrete instance of `ConnectionBgpConfigInput` via:

ConnectionBgpConfigArgs{...}

type ConnectionBgpConfigOutput added in v3.20.0

type ConnectionBgpConfigOutput struct{ *pulumi.OutputState }

func (ConnectionBgpConfigOutput) ElementType added in v3.20.0

func (ConnectionBgpConfigOutput) ElementType() reflect.Type

func (ConnectionBgpConfigOutput) Enable added in v3.20.0

Whether to enable BGP.

func (ConnectionBgpConfigOutput) LocalAsn added in v3.20.0

The ASN on the Alibaba Cloud side.

func (ConnectionBgpConfigOutput) LocalBgpIp added in v3.20.0

The BGP IP address on the Alibaba Cloud side.

func (ConnectionBgpConfigOutput) ToConnectionBgpConfigOutput added in v3.20.0

func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigOutput() ConnectionBgpConfigOutput

func (ConnectionBgpConfigOutput) ToConnectionBgpConfigOutputWithContext added in v3.20.0

func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigOutputWithContext(ctx context.Context) ConnectionBgpConfigOutput

func (ConnectionBgpConfigOutput) ToConnectionBgpConfigPtrOutput added in v3.20.0

func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput

func (ConnectionBgpConfigOutput) ToConnectionBgpConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigPtrOutputWithContext(ctx context.Context) ConnectionBgpConfigPtrOutput

func (ConnectionBgpConfigOutput) TunnelCidr added in v3.20.0

The CIDR block of the IPsec tunnel. The CIDR block belongs to 169.254.0.0/16. The mask of the CIDR block is 30 bits in length.

type ConnectionBgpConfigPtrInput added in v3.20.0

type ConnectionBgpConfigPtrInput interface {
	pulumi.Input

	ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput
	ToConnectionBgpConfigPtrOutputWithContext(context.Context) ConnectionBgpConfigPtrOutput
}

ConnectionBgpConfigPtrInput is an input type that accepts ConnectionBgpConfigArgs, ConnectionBgpConfigPtr and ConnectionBgpConfigPtrOutput values. You can construct a concrete instance of `ConnectionBgpConfigPtrInput` via:

        ConnectionBgpConfigArgs{...}

or:

        nil

func ConnectionBgpConfigPtr added in v3.20.0

func ConnectionBgpConfigPtr(v *ConnectionBgpConfigArgs) ConnectionBgpConfigPtrInput

type ConnectionBgpConfigPtrOutput added in v3.20.0

type ConnectionBgpConfigPtrOutput struct{ *pulumi.OutputState }

func (ConnectionBgpConfigPtrOutput) Elem added in v3.20.0

func (ConnectionBgpConfigPtrOutput) ElementType added in v3.20.0

func (ConnectionBgpConfigPtrOutput) Enable added in v3.20.0

Whether to enable BGP.

func (ConnectionBgpConfigPtrOutput) LocalAsn added in v3.20.0

The ASN on the Alibaba Cloud side.

func (ConnectionBgpConfigPtrOutput) LocalBgpIp added in v3.20.0

The BGP IP address on the Alibaba Cloud side.

func (ConnectionBgpConfigPtrOutput) ToConnectionBgpConfigPtrOutput added in v3.20.0

func (o ConnectionBgpConfigPtrOutput) ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput

func (ConnectionBgpConfigPtrOutput) ToConnectionBgpConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionBgpConfigPtrOutput) ToConnectionBgpConfigPtrOutputWithContext(ctx context.Context) ConnectionBgpConfigPtrOutput

func (ConnectionBgpConfigPtrOutput) TunnelCidr added in v3.20.0

The CIDR block of the IPsec tunnel. The CIDR block belongs to 169.254.0.0/16. The mask of the CIDR block is 30 bits in length.

type ConnectionHealthCheckConfig added in v3.20.0

type ConnectionHealthCheckConfig struct {
	// The destination IP address.
	Dip *string `pulumi:"dip"`
	// Whether to enable BGP.
	Enable *bool `pulumi:"enable"`
	// The interval between two consecutive health checks. Unit: seconds.
	Interval *int `pulumi:"interval"`
	// The maximum number of health check retries.
	Retry *int `pulumi:"retry"`
	// The source IP address.
	Sip *string `pulumi:"sip"`
}

type ConnectionHealthCheckConfigArgs added in v3.20.0

type ConnectionHealthCheckConfigArgs struct {
	// The destination IP address.
	Dip pulumi.StringPtrInput `pulumi:"dip"`
	// Whether to enable BGP.
	Enable pulumi.BoolPtrInput `pulumi:"enable"`
	// The interval between two consecutive health checks. Unit: seconds.
	Interval pulumi.IntPtrInput `pulumi:"interval"`
	// The maximum number of health check retries.
	Retry pulumi.IntPtrInput `pulumi:"retry"`
	// The source IP address.
	Sip pulumi.StringPtrInput `pulumi:"sip"`
}

func (ConnectionHealthCheckConfigArgs) ElementType added in v3.20.0

func (ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigOutput added in v3.20.0

func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigOutput() ConnectionHealthCheckConfigOutput

func (ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigOutputWithContext added in v3.20.0

func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigOutput

func (ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigPtrOutput added in v3.20.0

func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput

func (ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigPtrOutputWithContext added in v3.20.0

func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigPtrOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigPtrOutput

type ConnectionHealthCheckConfigInput added in v3.20.0

type ConnectionHealthCheckConfigInput interface {
	pulumi.Input

	ToConnectionHealthCheckConfigOutput() ConnectionHealthCheckConfigOutput
	ToConnectionHealthCheckConfigOutputWithContext(context.Context) ConnectionHealthCheckConfigOutput
}

ConnectionHealthCheckConfigInput is an input type that accepts ConnectionHealthCheckConfigArgs and ConnectionHealthCheckConfigOutput values. You can construct a concrete instance of `ConnectionHealthCheckConfigInput` via:

ConnectionHealthCheckConfigArgs{...}

type ConnectionHealthCheckConfigOutput added in v3.20.0

type ConnectionHealthCheckConfigOutput struct{ *pulumi.OutputState }

func (ConnectionHealthCheckConfigOutput) Dip added in v3.20.0

The destination IP address.

func (ConnectionHealthCheckConfigOutput) ElementType added in v3.20.0

func (ConnectionHealthCheckConfigOutput) Enable added in v3.20.0

Whether to enable BGP.

func (ConnectionHealthCheckConfigOutput) Interval added in v3.20.0

The interval between two consecutive health checks. Unit: seconds.

func (ConnectionHealthCheckConfigOutput) Retry added in v3.20.0

The maximum number of health check retries.

func (ConnectionHealthCheckConfigOutput) Sip added in v3.20.0

The source IP address.

func (ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigOutput added in v3.20.0

func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigOutput() ConnectionHealthCheckConfigOutput

func (ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigOutputWithContext added in v3.20.0

func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigOutput

func (ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigPtrOutput added in v3.20.0

func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput

func (ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigPtrOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigPtrOutput

type ConnectionHealthCheckConfigPtrInput added in v3.20.0

type ConnectionHealthCheckConfigPtrInput interface {
	pulumi.Input

	ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput
	ToConnectionHealthCheckConfigPtrOutputWithContext(context.Context) ConnectionHealthCheckConfigPtrOutput
}

ConnectionHealthCheckConfigPtrInput is an input type that accepts ConnectionHealthCheckConfigArgs, ConnectionHealthCheckConfigPtr and ConnectionHealthCheckConfigPtrOutput values. You can construct a concrete instance of `ConnectionHealthCheckConfigPtrInput` via:

        ConnectionHealthCheckConfigArgs{...}

or:

        nil

func ConnectionHealthCheckConfigPtr added in v3.20.0

type ConnectionHealthCheckConfigPtrOutput added in v3.20.0

type ConnectionHealthCheckConfigPtrOutput struct{ *pulumi.OutputState }

func (ConnectionHealthCheckConfigPtrOutput) Dip added in v3.20.0

The destination IP address.

func (ConnectionHealthCheckConfigPtrOutput) Elem added in v3.20.0

func (ConnectionHealthCheckConfigPtrOutput) ElementType added in v3.20.0

func (ConnectionHealthCheckConfigPtrOutput) Enable added in v3.20.0

Whether to enable BGP.

func (ConnectionHealthCheckConfigPtrOutput) Interval added in v3.20.0

The interval between two consecutive health checks. Unit: seconds.

func (ConnectionHealthCheckConfigPtrOutput) Retry added in v3.20.0

The maximum number of health check retries.

func (ConnectionHealthCheckConfigPtrOutput) Sip added in v3.20.0

The source IP address.

func (ConnectionHealthCheckConfigPtrOutput) ToConnectionHealthCheckConfigPtrOutput added in v3.20.0

func (o ConnectionHealthCheckConfigPtrOutput) ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput

func (ConnectionHealthCheckConfigPtrOutput) ToConnectionHealthCheckConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionHealthCheckConfigPtrOutput) ToConnectionHealthCheckConfigPtrOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigPtrOutput

type ConnectionIkeConfig

type ConnectionIkeConfig struct {
	// The authentication algorithm of phase-one negotiation. Valid value: md5 | sha1 . Default value: md5
	IkeAuthAlg *string `pulumi:"ikeAuthAlg"`
	// The encryption algorithm of phase-one negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default Valid value: aes
	IkeEncAlg *string `pulumi:"ikeEncAlg"`
	// The SA lifecycle as the result of phase-one negotiation. The valid value of n is [0, 86400], the unit is second and the default value is 86400.
	IkeLifetime *int `pulumi:"ikeLifetime"`
	// The identification of the VPN gateway.
	IkeLocalId *string `pulumi:"ikeLocalId"`
	// The negotiation mode of IKE V1. Valid value: main (main mode) | aggressive (aggressive mode). Default value: main
	IkeMode *string `pulumi:"ikeMode"`
	// The Diffie-Hellman key exchange algorithm used by phase-one negotiation. Valid value: group1 | group2 | group5 | group14 | group24. Default value: group2
	IkePfs *string `pulumi:"ikePfs"`
	// The identification of the customer gateway.
	IkeRemoteId *string `pulumi:"ikeRemoteId"`
	// The version of the IKE protocol. Valid value: ikev1 | ikev2. Default value: ikev1
	IkeVersion *string `pulumi:"ikeVersion"`
	// Used for authentication between the IPsec VPN gateway and the customer gateway.
	Psk *string `pulumi:"psk"`
}

type ConnectionIkeConfigArgs

type ConnectionIkeConfigArgs struct {
	// The authentication algorithm of phase-one negotiation. Valid value: md5 | sha1 . Default value: md5
	IkeAuthAlg pulumi.StringPtrInput `pulumi:"ikeAuthAlg"`
	// The encryption algorithm of phase-one negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default Valid value: aes
	IkeEncAlg pulumi.StringPtrInput `pulumi:"ikeEncAlg"`
	// The SA lifecycle as the result of phase-one negotiation. The valid value of n is [0, 86400], the unit is second and the default value is 86400.
	IkeLifetime pulumi.IntPtrInput `pulumi:"ikeLifetime"`
	// The identification of the VPN gateway.
	IkeLocalId pulumi.StringPtrInput `pulumi:"ikeLocalId"`
	// The negotiation mode of IKE V1. Valid value: main (main mode) | aggressive (aggressive mode). Default value: main
	IkeMode pulumi.StringPtrInput `pulumi:"ikeMode"`
	// The Diffie-Hellman key exchange algorithm used by phase-one negotiation. Valid value: group1 | group2 | group5 | group14 | group24. Default value: group2
	IkePfs pulumi.StringPtrInput `pulumi:"ikePfs"`
	// The identification of the customer gateway.
	IkeRemoteId pulumi.StringPtrInput `pulumi:"ikeRemoteId"`
	// The version of the IKE protocol. Valid value: ikev1 | ikev2. Default value: ikev1
	IkeVersion pulumi.StringPtrInput `pulumi:"ikeVersion"`
	// Used for authentication between the IPsec VPN gateway and the customer gateway.
	Psk pulumi.StringPtrInput `pulumi:"psk"`
}

func (ConnectionIkeConfigArgs) ElementType

func (ConnectionIkeConfigArgs) ElementType() reflect.Type

func (ConnectionIkeConfigArgs) ToConnectionIkeConfigOutput

func (i ConnectionIkeConfigArgs) ToConnectionIkeConfigOutput() ConnectionIkeConfigOutput

func (ConnectionIkeConfigArgs) ToConnectionIkeConfigOutputWithContext

func (i ConnectionIkeConfigArgs) ToConnectionIkeConfigOutputWithContext(ctx context.Context) ConnectionIkeConfigOutput

func (ConnectionIkeConfigArgs) ToConnectionIkeConfigPtrOutput added in v3.20.0

func (i ConnectionIkeConfigArgs) ToConnectionIkeConfigPtrOutput() ConnectionIkeConfigPtrOutput

func (ConnectionIkeConfigArgs) ToConnectionIkeConfigPtrOutputWithContext added in v3.20.0

func (i ConnectionIkeConfigArgs) ToConnectionIkeConfigPtrOutputWithContext(ctx context.Context) ConnectionIkeConfigPtrOutput

type ConnectionIkeConfigInput

type ConnectionIkeConfigInput interface {
	pulumi.Input

	ToConnectionIkeConfigOutput() ConnectionIkeConfigOutput
	ToConnectionIkeConfigOutputWithContext(context.Context) ConnectionIkeConfigOutput
}

ConnectionIkeConfigInput is an input type that accepts ConnectionIkeConfigArgs and ConnectionIkeConfigOutput values. You can construct a concrete instance of `ConnectionIkeConfigInput` via:

ConnectionIkeConfigArgs{...}

type ConnectionIkeConfigOutput

type ConnectionIkeConfigOutput struct{ *pulumi.OutputState }

func (ConnectionIkeConfigOutput) ElementType

func (ConnectionIkeConfigOutput) ElementType() reflect.Type

func (ConnectionIkeConfigOutput) IkeAuthAlg

The authentication algorithm of phase-one negotiation. Valid value: md5 | sha1 . Default value: md5

func (ConnectionIkeConfigOutput) IkeEncAlg

The encryption algorithm of phase-one negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default Valid value: aes

func (ConnectionIkeConfigOutput) IkeLifetime

The SA lifecycle as the result of phase-one negotiation. The valid value of n is [0, 86400], the unit is second and the default value is 86400.

func (ConnectionIkeConfigOutput) IkeLocalId

The identification of the VPN gateway.

func (ConnectionIkeConfigOutput) IkeMode

The negotiation mode of IKE V1. Valid value: main (main mode) | aggressive (aggressive mode). Default value: main

func (ConnectionIkeConfigOutput) IkePfs

The Diffie-Hellman key exchange algorithm used by phase-one negotiation. Valid value: group1 | group2 | group5 | group14 | group24. Default value: group2

func (ConnectionIkeConfigOutput) IkeRemoteId

The identification of the customer gateway.

func (ConnectionIkeConfigOutput) IkeVersion

The version of the IKE protocol. Valid value: ikev1 | ikev2. Default value: ikev1

func (ConnectionIkeConfigOutput) Psk

Used for authentication between the IPsec VPN gateway and the customer gateway.

func (ConnectionIkeConfigOutput) ToConnectionIkeConfigOutput

func (o ConnectionIkeConfigOutput) ToConnectionIkeConfigOutput() ConnectionIkeConfigOutput

func (ConnectionIkeConfigOutput) ToConnectionIkeConfigOutputWithContext

func (o ConnectionIkeConfigOutput) ToConnectionIkeConfigOutputWithContext(ctx context.Context) ConnectionIkeConfigOutput

func (ConnectionIkeConfigOutput) ToConnectionIkeConfigPtrOutput added in v3.20.0

func (o ConnectionIkeConfigOutput) ToConnectionIkeConfigPtrOutput() ConnectionIkeConfigPtrOutput

func (ConnectionIkeConfigOutput) ToConnectionIkeConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionIkeConfigOutput) ToConnectionIkeConfigPtrOutputWithContext(ctx context.Context) ConnectionIkeConfigPtrOutput

type ConnectionIkeConfigPtrInput added in v3.20.0

type ConnectionIkeConfigPtrInput interface {
	pulumi.Input

	ToConnectionIkeConfigPtrOutput() ConnectionIkeConfigPtrOutput
	ToConnectionIkeConfigPtrOutputWithContext(context.Context) ConnectionIkeConfigPtrOutput
}

ConnectionIkeConfigPtrInput is an input type that accepts ConnectionIkeConfigArgs, ConnectionIkeConfigPtr and ConnectionIkeConfigPtrOutput values. You can construct a concrete instance of `ConnectionIkeConfigPtrInput` via:

        ConnectionIkeConfigArgs{...}

or:

        nil

func ConnectionIkeConfigPtr added in v3.20.0

func ConnectionIkeConfigPtr(v *ConnectionIkeConfigArgs) ConnectionIkeConfigPtrInput

type ConnectionIkeConfigPtrOutput added in v3.20.0

type ConnectionIkeConfigPtrOutput struct{ *pulumi.OutputState }

func (ConnectionIkeConfigPtrOutput) Elem added in v3.20.0

func (ConnectionIkeConfigPtrOutput) ElementType added in v3.20.0

func (ConnectionIkeConfigPtrOutput) IkeAuthAlg added in v3.20.0

The authentication algorithm of phase-one negotiation. Valid value: md5 | sha1 . Default value: md5

func (ConnectionIkeConfigPtrOutput) IkeEncAlg added in v3.20.0

The encryption algorithm of phase-one negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default Valid value: aes

func (ConnectionIkeConfigPtrOutput) IkeLifetime added in v3.20.0

The SA lifecycle as the result of phase-one negotiation. The valid value of n is [0, 86400], the unit is second and the default value is 86400.

func (ConnectionIkeConfigPtrOutput) IkeLocalId added in v3.20.0

The identification of the VPN gateway.

func (ConnectionIkeConfigPtrOutput) IkeMode added in v3.20.0

The negotiation mode of IKE V1. Valid value: main (main mode) | aggressive (aggressive mode). Default value: main

func (ConnectionIkeConfigPtrOutput) IkePfs added in v3.20.0

The Diffie-Hellman key exchange algorithm used by phase-one negotiation. Valid value: group1 | group2 | group5 | group14 | group24. Default value: group2

func (ConnectionIkeConfigPtrOutput) IkeRemoteId added in v3.20.0

The identification of the customer gateway.

func (ConnectionIkeConfigPtrOutput) IkeVersion added in v3.20.0

The version of the IKE protocol. Valid value: ikev1 | ikev2. Default value: ikev1

func (ConnectionIkeConfigPtrOutput) Psk added in v3.20.0

Used for authentication between the IPsec VPN gateway and the customer gateway.

func (ConnectionIkeConfigPtrOutput) ToConnectionIkeConfigPtrOutput added in v3.20.0

func (o ConnectionIkeConfigPtrOutput) ToConnectionIkeConfigPtrOutput() ConnectionIkeConfigPtrOutput

func (ConnectionIkeConfigPtrOutput) ToConnectionIkeConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionIkeConfigPtrOutput) ToConnectionIkeConfigPtrOutputWithContext(ctx context.Context) ConnectionIkeConfigPtrOutput

type ConnectionInput

type ConnectionInput interface {
	pulumi.Input

	ToConnectionOutput() ConnectionOutput
	ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput
}

type ConnectionIpsecConfig

type ConnectionIpsecConfig struct {
	// The authentication algorithm of phase-two negotiation. Valid value: md5 | sha1 | sha256 | sha384 | sha512 |. Default value: sha1
	IpsecAuthAlg *string `pulumi:"ipsecAuthAlg"`
	// The encryption algorithm of phase-two negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default value: aes
	IpsecEncAlg *string `pulumi:"ipsecEncAlg"`
	// The SA lifecycle as the result of phase-two negotiation. The valid value is [0, 86400], the unit is second and the default value is 86400.
	IpsecLifetime *int `pulumi:"ipsecLifetime"`
	// The Diffie-Hellman key exchange algorithm used by phase-two negotiation. Valid value: group1 | group2 | group5 | group14 | group24| disabled. Default value: group2
	IpsecPfs *string `pulumi:"ipsecPfs"`
}

type ConnectionIpsecConfigArgs

type ConnectionIpsecConfigArgs struct {
	// The authentication algorithm of phase-two negotiation. Valid value: md5 | sha1 | sha256 | sha384 | sha512 |. Default value: sha1
	IpsecAuthAlg pulumi.StringPtrInput `pulumi:"ipsecAuthAlg"`
	// The encryption algorithm of phase-two negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default value: aes
	IpsecEncAlg pulumi.StringPtrInput `pulumi:"ipsecEncAlg"`
	// The SA lifecycle as the result of phase-two negotiation. The valid value is [0, 86400], the unit is second and the default value is 86400.
	IpsecLifetime pulumi.IntPtrInput `pulumi:"ipsecLifetime"`
	// The Diffie-Hellman key exchange algorithm used by phase-two negotiation. Valid value: group1 | group2 | group5 | group14 | group24| disabled. Default value: group2
	IpsecPfs pulumi.StringPtrInput `pulumi:"ipsecPfs"`
}

func (ConnectionIpsecConfigArgs) ElementType

func (ConnectionIpsecConfigArgs) ElementType() reflect.Type

func (ConnectionIpsecConfigArgs) ToConnectionIpsecConfigOutput

func (i ConnectionIpsecConfigArgs) ToConnectionIpsecConfigOutput() ConnectionIpsecConfigOutput

func (ConnectionIpsecConfigArgs) ToConnectionIpsecConfigOutputWithContext

func (i ConnectionIpsecConfigArgs) ToConnectionIpsecConfigOutputWithContext(ctx context.Context) ConnectionIpsecConfigOutput

func (ConnectionIpsecConfigArgs) ToConnectionIpsecConfigPtrOutput added in v3.20.0

func (i ConnectionIpsecConfigArgs) ToConnectionIpsecConfigPtrOutput() ConnectionIpsecConfigPtrOutput

func (ConnectionIpsecConfigArgs) ToConnectionIpsecConfigPtrOutputWithContext added in v3.20.0

func (i ConnectionIpsecConfigArgs) ToConnectionIpsecConfigPtrOutputWithContext(ctx context.Context) ConnectionIpsecConfigPtrOutput

type ConnectionIpsecConfigInput

type ConnectionIpsecConfigInput interface {
	pulumi.Input

	ToConnectionIpsecConfigOutput() ConnectionIpsecConfigOutput
	ToConnectionIpsecConfigOutputWithContext(context.Context) ConnectionIpsecConfigOutput
}

ConnectionIpsecConfigInput is an input type that accepts ConnectionIpsecConfigArgs and ConnectionIpsecConfigOutput values. You can construct a concrete instance of `ConnectionIpsecConfigInput` via:

ConnectionIpsecConfigArgs{...}

type ConnectionIpsecConfigOutput

type ConnectionIpsecConfigOutput struct{ *pulumi.OutputState }

func (ConnectionIpsecConfigOutput) ElementType

func (ConnectionIpsecConfigOutput) IpsecAuthAlg

The authentication algorithm of phase-two negotiation. Valid value: md5 | sha1 | sha256 | sha384 | sha512 |. Default value: sha1

func (ConnectionIpsecConfigOutput) IpsecEncAlg

The encryption algorithm of phase-two negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default value: aes

func (ConnectionIpsecConfigOutput) IpsecLifetime

The SA lifecycle as the result of phase-two negotiation. The valid value is [0, 86400], the unit is second and the default value is 86400.

func (ConnectionIpsecConfigOutput) IpsecPfs

The Diffie-Hellman key exchange algorithm used by phase-two negotiation. Valid value: group1 | group2 | group5 | group14 | group24| disabled. Default value: group2

func (ConnectionIpsecConfigOutput) ToConnectionIpsecConfigOutput

func (o ConnectionIpsecConfigOutput) ToConnectionIpsecConfigOutput() ConnectionIpsecConfigOutput

func (ConnectionIpsecConfigOutput) ToConnectionIpsecConfigOutputWithContext

func (o ConnectionIpsecConfigOutput) ToConnectionIpsecConfigOutputWithContext(ctx context.Context) ConnectionIpsecConfigOutput

func (ConnectionIpsecConfigOutput) ToConnectionIpsecConfigPtrOutput added in v3.20.0

func (o ConnectionIpsecConfigOutput) ToConnectionIpsecConfigPtrOutput() ConnectionIpsecConfigPtrOutput

func (ConnectionIpsecConfigOutput) ToConnectionIpsecConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionIpsecConfigOutput) ToConnectionIpsecConfigPtrOutputWithContext(ctx context.Context) ConnectionIpsecConfigPtrOutput

type ConnectionIpsecConfigPtrInput added in v3.20.0

type ConnectionIpsecConfigPtrInput interface {
	pulumi.Input

	ToConnectionIpsecConfigPtrOutput() ConnectionIpsecConfigPtrOutput
	ToConnectionIpsecConfigPtrOutputWithContext(context.Context) ConnectionIpsecConfigPtrOutput
}

ConnectionIpsecConfigPtrInput is an input type that accepts ConnectionIpsecConfigArgs, ConnectionIpsecConfigPtr and ConnectionIpsecConfigPtrOutput values. You can construct a concrete instance of `ConnectionIpsecConfigPtrInput` via:

        ConnectionIpsecConfigArgs{...}

or:

        nil

func ConnectionIpsecConfigPtr added in v3.20.0

func ConnectionIpsecConfigPtr(v *ConnectionIpsecConfigArgs) ConnectionIpsecConfigPtrInput

type ConnectionIpsecConfigPtrOutput added in v3.20.0

type ConnectionIpsecConfigPtrOutput struct{ *pulumi.OutputState }

func (ConnectionIpsecConfigPtrOutput) Elem added in v3.20.0

func (ConnectionIpsecConfigPtrOutput) ElementType added in v3.20.0

func (ConnectionIpsecConfigPtrOutput) IpsecAuthAlg added in v3.20.0

The authentication algorithm of phase-two negotiation. Valid value: md5 | sha1 | sha256 | sha384 | sha512 |. Default value: sha1

func (ConnectionIpsecConfigPtrOutput) IpsecEncAlg added in v3.20.0

The encryption algorithm of phase-two negotiation. Valid value: aes | aes192 | aes256 | des | 3des. Default value: aes

func (ConnectionIpsecConfigPtrOutput) IpsecLifetime added in v3.20.0

The SA lifecycle as the result of phase-two negotiation. The valid value is [0, 86400], the unit is second and the default value is 86400.

func (ConnectionIpsecConfigPtrOutput) IpsecPfs added in v3.20.0

The Diffie-Hellman key exchange algorithm used by phase-two negotiation. Valid value: group1 | group2 | group5 | group14 | group24| disabled. Default value: group2

func (ConnectionIpsecConfigPtrOutput) ToConnectionIpsecConfigPtrOutput added in v3.20.0

func (o ConnectionIpsecConfigPtrOutput) ToConnectionIpsecConfigPtrOutput() ConnectionIpsecConfigPtrOutput

func (ConnectionIpsecConfigPtrOutput) ToConnectionIpsecConfigPtrOutputWithContext added in v3.20.0

func (o ConnectionIpsecConfigPtrOutput) ToConnectionIpsecConfigPtrOutputWithContext(ctx context.Context) ConnectionIpsecConfigPtrOutput

type ConnectionMap

type ConnectionMap map[string]ConnectionInput

func (ConnectionMap) ElementType

func (ConnectionMap) ElementType() reflect.Type

func (ConnectionMap) ToConnectionMapOutput

func (i ConnectionMap) ToConnectionMapOutput() ConnectionMapOutput

func (ConnectionMap) ToConnectionMapOutputWithContext

func (i ConnectionMap) ToConnectionMapOutputWithContext(ctx context.Context) ConnectionMapOutput

type ConnectionMapInput

type ConnectionMapInput interface {
	pulumi.Input

	ToConnectionMapOutput() ConnectionMapOutput
	ToConnectionMapOutputWithContext(context.Context) ConnectionMapOutput
}

ConnectionMapInput is an input type that accepts ConnectionMap and ConnectionMapOutput values. You can construct a concrete instance of `ConnectionMapInput` via:

ConnectionMap{ "key": ConnectionArgs{...} }

type ConnectionMapOutput

type ConnectionMapOutput struct{ *pulumi.OutputState }

func (ConnectionMapOutput) ElementType

func (ConnectionMapOutput) ElementType() reflect.Type

func (ConnectionMapOutput) MapIndex

func (ConnectionMapOutput) ToConnectionMapOutput

func (o ConnectionMapOutput) ToConnectionMapOutput() ConnectionMapOutput

func (ConnectionMapOutput) ToConnectionMapOutputWithContext

func (o ConnectionMapOutput) ToConnectionMapOutputWithContext(ctx context.Context) ConnectionMapOutput

type ConnectionOutput

type ConnectionOutput struct{ *pulumi.OutputState }

func (ConnectionOutput) ElementType

func (ConnectionOutput) ElementType() reflect.Type

func (ConnectionOutput) ToConnectionOutput

func (o ConnectionOutput) ToConnectionOutput() ConnectionOutput

func (ConnectionOutput) ToConnectionOutputWithContext

func (o ConnectionOutput) ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput

type ConnectionState

type ConnectionState struct {
	// The configurations of the BGP routing protocol. See the following `Block bgpConfig`.
	BgpConfig ConnectionBgpConfigPtrInput
	// The ID of the customer gateway.
	CustomerGatewayId pulumi.StringPtrInput
	// Whether to delete a successfully negotiated IPsec tunnel and initiate a negotiation again. Valid value:true,false.
	EffectImmediately pulumi.BoolPtrInput
	// Whether to enable NAT traversal.
	EnableDpd pulumi.BoolPtrInput
	// Whether to enable NAT traversal.
	EnableNatTraversal pulumi.BoolPtrInput
	// The health check configurations. See the following `Block healthCheckConfig`.
	HealthCheckConfig ConnectionHealthCheckConfigPtrInput
	// The configurations of phase-one negotiation. See the following `Block ikeConfig`.
	IkeConfig ConnectionIkeConfigPtrInput
	// The configurations of phase-two negotiation. See the following `Block ipsecConfig`.
	IpsecConfig ConnectionIpsecConfigPtrInput
	// The CIDR block of the VPC to be connected with the local data center. This parameter is used for phase-two negotiation.
	LocalSubnets pulumi.StringArrayInput
	// The name of the IPsec connection.
	Name pulumi.StringPtrInput
	// The CIDR block of the local data center. This parameter is used for phase-two negotiation.
	RemoteSubnets pulumi.StringArrayInput
	// The status of VPN connection.
	Status pulumi.StringPtrInput
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringPtrInput
}

func (ConnectionState) ElementType

func (ConnectionState) ElementType() reflect.Type

type CustomerGateway

type CustomerGateway struct {
	pulumi.CustomResourceState

	// The autonomous system number of the gateway device in the data center. The `asn` is a 4-byte number. You can enter the number in two segments and separate the first 16 bits from the following 16 bits with a period (.). Enter the number in each segment in the decimal format.
	Asn pulumi.StringPtrOutput `pulumi:"asn"`
	// The description of the VPN customer gateway instance.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The IP address of the customer gateway.
	IpAddress pulumi.StringOutput `pulumi:"ipAddress"`
	// The name of the VPN customer gateway. Defaults to null.
	Name pulumi.StringOutput `pulumi:"name"`
}

## Example Usage

Basic Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := vpn.NewCustomerGateway(ctx, "foo", &vpn.CustomerGatewayArgs{
			Description: pulumi.String("vpnCgwDescriptionExample"),
			IpAddress:   pulumi.String("43.104.22.228"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

VPN customer gateway can be imported using the id, e.g.

```sh

$ pulumi import alicloud:vpn/customerGateway:CustomerGateway example cgw-abc123456

```

func GetCustomerGateway

func GetCustomerGateway(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *CustomerGatewayState, opts ...pulumi.ResourceOption) (*CustomerGateway, error)

GetCustomerGateway gets an existing CustomerGateway resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewCustomerGateway

func NewCustomerGateway(ctx *pulumi.Context,
	name string, args *CustomerGatewayArgs, opts ...pulumi.ResourceOption) (*CustomerGateway, error)

NewCustomerGateway registers a new resource with the given unique name, arguments, and options.

func (*CustomerGateway) ElementType

func (*CustomerGateway) ElementType() reflect.Type

func (*CustomerGateway) ToCustomerGatewayOutput

func (i *CustomerGateway) ToCustomerGatewayOutput() CustomerGatewayOutput

func (*CustomerGateway) ToCustomerGatewayOutputWithContext

func (i *CustomerGateway) ToCustomerGatewayOutputWithContext(ctx context.Context) CustomerGatewayOutput

type CustomerGatewayArgs

type CustomerGatewayArgs struct {
	// The autonomous system number of the gateway device in the data center. The `asn` is a 4-byte number. You can enter the number in two segments and separate the first 16 bits from the following 16 bits with a period (.). Enter the number in each segment in the decimal format.
	Asn pulumi.StringPtrInput
	// The description of the VPN customer gateway instance.
	Description pulumi.StringPtrInput
	// The IP address of the customer gateway.
	IpAddress pulumi.StringInput
	// The name of the VPN customer gateway. Defaults to null.
	Name pulumi.StringPtrInput
}

The set of arguments for constructing a CustomerGateway resource.

func (CustomerGatewayArgs) ElementType

func (CustomerGatewayArgs) ElementType() reflect.Type

type CustomerGatewayArray

type CustomerGatewayArray []CustomerGatewayInput

func (CustomerGatewayArray) ElementType

func (CustomerGatewayArray) ElementType() reflect.Type

func (CustomerGatewayArray) ToCustomerGatewayArrayOutput

func (i CustomerGatewayArray) ToCustomerGatewayArrayOutput() CustomerGatewayArrayOutput

func (CustomerGatewayArray) ToCustomerGatewayArrayOutputWithContext

func (i CustomerGatewayArray) ToCustomerGatewayArrayOutputWithContext(ctx context.Context) CustomerGatewayArrayOutput

type CustomerGatewayArrayInput

type CustomerGatewayArrayInput interface {
	pulumi.Input

	ToCustomerGatewayArrayOutput() CustomerGatewayArrayOutput
	ToCustomerGatewayArrayOutputWithContext(context.Context) CustomerGatewayArrayOutput
}

CustomerGatewayArrayInput is an input type that accepts CustomerGatewayArray and CustomerGatewayArrayOutput values. You can construct a concrete instance of `CustomerGatewayArrayInput` via:

CustomerGatewayArray{ CustomerGatewayArgs{...} }

type CustomerGatewayArrayOutput

type CustomerGatewayArrayOutput struct{ *pulumi.OutputState }

func (CustomerGatewayArrayOutput) ElementType

func (CustomerGatewayArrayOutput) ElementType() reflect.Type

func (CustomerGatewayArrayOutput) Index

func (CustomerGatewayArrayOutput) ToCustomerGatewayArrayOutput

func (o CustomerGatewayArrayOutput) ToCustomerGatewayArrayOutput() CustomerGatewayArrayOutput

func (CustomerGatewayArrayOutput) ToCustomerGatewayArrayOutputWithContext

func (o CustomerGatewayArrayOutput) ToCustomerGatewayArrayOutputWithContext(ctx context.Context) CustomerGatewayArrayOutput

type CustomerGatewayInput

type CustomerGatewayInput interface {
	pulumi.Input

	ToCustomerGatewayOutput() CustomerGatewayOutput
	ToCustomerGatewayOutputWithContext(ctx context.Context) CustomerGatewayOutput
}

type CustomerGatewayMap

type CustomerGatewayMap map[string]CustomerGatewayInput

func (CustomerGatewayMap) ElementType

func (CustomerGatewayMap) ElementType() reflect.Type

func (CustomerGatewayMap) ToCustomerGatewayMapOutput

func (i CustomerGatewayMap) ToCustomerGatewayMapOutput() CustomerGatewayMapOutput

func (CustomerGatewayMap) ToCustomerGatewayMapOutputWithContext

func (i CustomerGatewayMap) ToCustomerGatewayMapOutputWithContext(ctx context.Context) CustomerGatewayMapOutput

type CustomerGatewayMapInput

type CustomerGatewayMapInput interface {
	pulumi.Input

	ToCustomerGatewayMapOutput() CustomerGatewayMapOutput
	ToCustomerGatewayMapOutputWithContext(context.Context) CustomerGatewayMapOutput
}

CustomerGatewayMapInput is an input type that accepts CustomerGatewayMap and CustomerGatewayMapOutput values. You can construct a concrete instance of `CustomerGatewayMapInput` via:

CustomerGatewayMap{ "key": CustomerGatewayArgs{...} }

type CustomerGatewayMapOutput

type CustomerGatewayMapOutput struct{ *pulumi.OutputState }

func (CustomerGatewayMapOutput) ElementType

func (CustomerGatewayMapOutput) ElementType() reflect.Type

func (CustomerGatewayMapOutput) MapIndex

func (CustomerGatewayMapOutput) ToCustomerGatewayMapOutput

func (o CustomerGatewayMapOutput) ToCustomerGatewayMapOutput() CustomerGatewayMapOutput

func (CustomerGatewayMapOutput) ToCustomerGatewayMapOutputWithContext

func (o CustomerGatewayMapOutput) ToCustomerGatewayMapOutputWithContext(ctx context.Context) CustomerGatewayMapOutput

type CustomerGatewayOutput

type CustomerGatewayOutput struct{ *pulumi.OutputState }

func (CustomerGatewayOutput) ElementType

func (CustomerGatewayOutput) ElementType() reflect.Type

func (CustomerGatewayOutput) ToCustomerGatewayOutput

func (o CustomerGatewayOutput) ToCustomerGatewayOutput() CustomerGatewayOutput

func (CustomerGatewayOutput) ToCustomerGatewayOutputWithContext

func (o CustomerGatewayOutput) ToCustomerGatewayOutputWithContext(ctx context.Context) CustomerGatewayOutput

type CustomerGatewayState

type CustomerGatewayState struct {
	// The autonomous system number of the gateway device in the data center. The `asn` is a 4-byte number. You can enter the number in two segments and separate the first 16 bits from the following 16 bits with a period (.). Enter the number in each segment in the decimal format.
	Asn pulumi.StringPtrInput
	// The description of the VPN customer gateway instance.
	Description pulumi.StringPtrInput
	// The IP address of the customer gateway.
	IpAddress pulumi.StringPtrInput
	// The name of the VPN customer gateway. Defaults to null.
	Name pulumi.StringPtrInput
}

func (CustomerGatewayState) ElementType

func (CustomerGatewayState) ElementType() reflect.Type

type Gateway

type Gateway struct {
	pulumi.CustomResourceState

	// Whether to pay automatically. Default value: `true`. Valid values:
	// `false`: If automatic payment is not enabled, you need to go to the order center to complete the payment after the order is generated.
	// `true`: Enable automatic payment, automatic payment order.
	AutoPay   pulumi.BoolPtrOutput `pulumi:"autoPay"`
	Bandwidth pulumi.IntOutput     `pulumi:"bandwidth"`
	// The business status of the VPN gateway.
	BusinessStatus pulumi.StringOutput `pulumi:"businessStatus"`
	// The description of the VPN instance.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Enable or Disable IPSec VPN. At least one type of VPN should be enabled.
	EnableIpsec pulumi.BoolPtrOutput `pulumi:"enableIpsec"`
	// Enable or Disable SSL VPN.  At least one type of VPN should be enabled.
	EnableSsl pulumi.BoolPtrOutput `pulumi:"enableSsl"`
	// The charge type for instance. If it is an international site account, the valid value is PostPaid, otherwise PrePaid.
	// Default to PostPaid.
	InstanceChargeType pulumi.StringPtrOutput `pulumi:"instanceChargeType"`
	// The internet ip of the VPN.
	InternetIp pulumi.StringOutput `pulumi:"internetIp"`
	// The name of the VPN. Defaults to null.
	Name pulumi.StringOutput `pulumi:"name"`
	// The filed is only required while the InstanceChargeType is PrePaid. Valid values: [1-9, 12, 24, 36]. Default to 1.
	Period pulumi.IntPtrOutput `pulumi:"period"`
	// The max connections of SSL VPN. Default to 5. The number of connections supported by each account is different.
	// This field is ignored when enableSsl is false.
	SslConnections pulumi.IntPtrOutput `pulumi:"sslConnections"`
	// The status of the VPN gateway.
	Status pulumi.StringOutput `pulumi:"status"`
	// The tags of VPN gateway.
	Tags pulumi.MapOutput `pulumi:"tags"`
	// The VPN belongs the vpc_id, the field can't be changed.
	VpcId pulumi.StringOutput `pulumi:"vpcId"`
	// The VPN belongs the vswitch_id, the field can't be changed.
	VswitchId pulumi.StringOutput `pulumi:"vswitchId"`
}

## Import

VPN gateway can be imported using the id, e.g.

```sh

$ pulumi import alicloud:vpn/gateway:Gateway example vpn-abc123456

```

func GetGateway

func GetGateway(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GatewayState, opts ...pulumi.ResourceOption) (*Gateway, error)

GetGateway gets an existing Gateway resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewGateway

func NewGateway(ctx *pulumi.Context,
	name string, args *GatewayArgs, opts ...pulumi.ResourceOption) (*Gateway, error)

NewGateway registers a new resource with the given unique name, arguments, and options.

func (*Gateway) ElementType

func (*Gateway) ElementType() reflect.Type

func (*Gateway) ToGatewayOutput

func (i *Gateway) ToGatewayOutput() GatewayOutput

func (*Gateway) ToGatewayOutputWithContext

func (i *Gateway) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput

type GatewayArgs

type GatewayArgs struct {
	// Whether to pay automatically. Default value: `true`. Valid values:
	// `false`: If automatic payment is not enabled, you need to go to the order center to complete the payment after the order is generated.
	// `true`: Enable automatic payment, automatic payment order.
	AutoPay   pulumi.BoolPtrInput
	Bandwidth pulumi.IntInput
	// The description of the VPN instance.
	Description pulumi.StringPtrInput
	// Enable or Disable IPSec VPN. At least one type of VPN should be enabled.
	EnableIpsec pulumi.BoolPtrInput
	// Enable or Disable SSL VPN.  At least one type of VPN should be enabled.
	EnableSsl pulumi.BoolPtrInput
	// The charge type for instance. If it is an international site account, the valid value is PostPaid, otherwise PrePaid.
	// Default to PostPaid.
	InstanceChargeType pulumi.StringPtrInput
	// The name of the VPN. Defaults to null.
	Name pulumi.StringPtrInput
	// The filed is only required while the InstanceChargeType is PrePaid. Valid values: [1-9, 12, 24, 36]. Default to 1.
	Period pulumi.IntPtrInput
	// The max connections of SSL VPN. Default to 5. The number of connections supported by each account is different.
	// This field is ignored when enableSsl is false.
	SslConnections pulumi.IntPtrInput
	// The tags of VPN gateway.
	Tags pulumi.MapInput
	// The VPN belongs the vpc_id, the field can't be changed.
	VpcId pulumi.StringInput
	// The VPN belongs the vswitch_id, the field can't be changed.
	VswitchId pulumi.StringPtrInput
}

The set of arguments for constructing a Gateway resource.

func (GatewayArgs) ElementType

func (GatewayArgs) ElementType() reflect.Type

type GatewayArray

type GatewayArray []GatewayInput

func (GatewayArray) ElementType

func (GatewayArray) ElementType() reflect.Type

func (GatewayArray) ToGatewayArrayOutput

func (i GatewayArray) ToGatewayArrayOutput() GatewayArrayOutput

func (GatewayArray) ToGatewayArrayOutputWithContext

func (i GatewayArray) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput

type GatewayArrayInput

type GatewayArrayInput interface {
	pulumi.Input

	ToGatewayArrayOutput() GatewayArrayOutput
	ToGatewayArrayOutputWithContext(context.Context) GatewayArrayOutput
}

GatewayArrayInput is an input type that accepts GatewayArray and GatewayArrayOutput values. You can construct a concrete instance of `GatewayArrayInput` via:

GatewayArray{ GatewayArgs{...} }

type GatewayArrayOutput

type GatewayArrayOutput struct{ *pulumi.OutputState }

func (GatewayArrayOutput) ElementType

func (GatewayArrayOutput) ElementType() reflect.Type

func (GatewayArrayOutput) Index

func (GatewayArrayOutput) ToGatewayArrayOutput

func (o GatewayArrayOutput) ToGatewayArrayOutput() GatewayArrayOutput

func (GatewayArrayOutput) ToGatewayArrayOutputWithContext

func (o GatewayArrayOutput) ToGatewayArrayOutputWithContext(ctx context.Context) GatewayArrayOutput

type GatewayInput

type GatewayInput interface {
	pulumi.Input

	ToGatewayOutput() GatewayOutput
	ToGatewayOutputWithContext(ctx context.Context) GatewayOutput
}

type GatewayMap

type GatewayMap map[string]GatewayInput

func (GatewayMap) ElementType

func (GatewayMap) ElementType() reflect.Type

func (GatewayMap) ToGatewayMapOutput

func (i GatewayMap) ToGatewayMapOutput() GatewayMapOutput

func (GatewayMap) ToGatewayMapOutputWithContext

func (i GatewayMap) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput

type GatewayMapInput

type GatewayMapInput interface {
	pulumi.Input

	ToGatewayMapOutput() GatewayMapOutput
	ToGatewayMapOutputWithContext(context.Context) GatewayMapOutput
}

GatewayMapInput is an input type that accepts GatewayMap and GatewayMapOutput values. You can construct a concrete instance of `GatewayMapInput` via:

GatewayMap{ "key": GatewayArgs{...} }

type GatewayMapOutput

type GatewayMapOutput struct{ *pulumi.OutputState }

func (GatewayMapOutput) ElementType

func (GatewayMapOutput) ElementType() reflect.Type

func (GatewayMapOutput) MapIndex

func (GatewayMapOutput) ToGatewayMapOutput

func (o GatewayMapOutput) ToGatewayMapOutput() GatewayMapOutput

func (GatewayMapOutput) ToGatewayMapOutputWithContext

func (o GatewayMapOutput) ToGatewayMapOutputWithContext(ctx context.Context) GatewayMapOutput

type GatewayOutput

type GatewayOutput struct{ *pulumi.OutputState }

func (GatewayOutput) ElementType

func (GatewayOutput) ElementType() reflect.Type

func (GatewayOutput) ToGatewayOutput

func (o GatewayOutput) ToGatewayOutput() GatewayOutput

func (GatewayOutput) ToGatewayOutputWithContext

func (o GatewayOutput) ToGatewayOutputWithContext(ctx context.Context) GatewayOutput

type GatewayState

type GatewayState struct {
	// Whether to pay automatically. Default value: `true`. Valid values:
	// `false`: If automatic payment is not enabled, you need to go to the order center to complete the payment after the order is generated.
	// `true`: Enable automatic payment, automatic payment order.
	AutoPay   pulumi.BoolPtrInput
	Bandwidth pulumi.IntPtrInput
	// The business status of the VPN gateway.
	BusinessStatus pulumi.StringPtrInput
	// The description of the VPN instance.
	Description pulumi.StringPtrInput
	// Enable or Disable IPSec VPN. At least one type of VPN should be enabled.
	EnableIpsec pulumi.BoolPtrInput
	// Enable or Disable SSL VPN.  At least one type of VPN should be enabled.
	EnableSsl pulumi.BoolPtrInput
	// The charge type for instance. If it is an international site account, the valid value is PostPaid, otherwise PrePaid.
	// Default to PostPaid.
	InstanceChargeType pulumi.StringPtrInput
	// The internet ip of the VPN.
	InternetIp pulumi.StringPtrInput
	// The name of the VPN. Defaults to null.
	Name pulumi.StringPtrInput
	// The filed is only required while the InstanceChargeType is PrePaid. Valid values: [1-9, 12, 24, 36]. Default to 1.
	Period pulumi.IntPtrInput
	// The max connections of SSL VPN. Default to 5. The number of connections supported by each account is different.
	// This field is ignored when enableSsl is false.
	SslConnections pulumi.IntPtrInput
	// The status of the VPN gateway.
	Status pulumi.StringPtrInput
	// The tags of VPN gateway.
	Tags pulumi.MapInput
	// The VPN belongs the vpc_id, the field can't be changed.
	VpcId pulumi.StringPtrInput
	// The VPN belongs the vswitch_id, the field can't be changed.
	VswitchId pulumi.StringPtrInput
}

func (GatewayState) ElementType

func (GatewayState) ElementType() reflect.Type

type GetConnectionsArgs

type GetConnectionsArgs struct {
	// Use the VPN customer gateway ID as the search key.
	CustomerGatewayId *string `pulumi:"customerGatewayId"`
	// IDs of the VPN connections.
	Ids []string `pulumi:"ids"`
	// A regex string of VPN connection name.
	NameRegex *string `pulumi:"nameRegex"`
	// Save the result to the file.
	OutputFile *string `pulumi:"outputFile"`
	// Use the VPN gateway ID as the search key.
	VpnGatewayId *string `pulumi:"vpnGatewayId"`
}

A collection of arguments for invoking getConnections.

type GetConnectionsConnection

type GetConnectionsConnection struct {
	CreateTime string `pulumi:"createTime"`
	// Use the VPN customer gateway ID as the search key.
	CustomerGatewayId string `pulumi:"customerGatewayId"`
	EffectImmediately bool   `pulumi:"effectImmediately"`
	// ID of the VPN connection.
	Id string `pulumi:"id"`
	// The configurations of phase-one negotiation.
	IkeConfigs []GetConnectionsConnectionIkeConfig `pulumi:"ikeConfigs"`
	// The configurations of phase-two negotiation.
	IpsecConfigs []GetConnectionsConnectionIpsecConfig `pulumi:"ipsecConfigs"`
	// The local subnet of the VPN connection.
	LocalSubnet string `pulumi:"localSubnet"`
	// The name of the VPN connection.
	Name string `pulumi:"name"`
	// The remote subnet of the VPN connection.
	RemoteSubnet string `pulumi:"remoteSubnet"`
	// The status of the VPN connection, valid value:ike_sa_not_established, ike_sa_established, ipsec_sa_not_established, ipsec_sa_established.
	Status string `pulumi:"status"`
	// Use the VPN gateway ID as the search key.
	VpnGatewayId string `pulumi:"vpnGatewayId"`
}

type GetConnectionsConnectionArgs

type GetConnectionsConnectionArgs struct {
	CreateTime pulumi.StringInput `pulumi:"createTime"`
	// Use the VPN customer gateway ID as the search key.
	CustomerGatewayId pulumi.StringInput `pulumi:"customerGatewayId"`
	EffectImmediately pulumi.BoolInput   `pulumi:"effectImmediately"`
	// ID of the VPN connection.
	Id pulumi.StringInput `pulumi:"id"`
	// The configurations of phase-one negotiation.
	IkeConfigs GetConnectionsConnectionIkeConfigArrayInput `pulumi:"ikeConfigs"`
	// The configurations of phase-two negotiation.
	IpsecConfigs GetConnectionsConnectionIpsecConfigArrayInput `pulumi:"ipsecConfigs"`
	// The local subnet of the VPN connection.
	LocalSubnet pulumi.StringInput `pulumi:"localSubnet"`
	// The name of the VPN connection.
	Name pulumi.StringInput `pulumi:"name"`
	// The remote subnet of the VPN connection.
	RemoteSubnet pulumi.StringInput `pulumi:"remoteSubnet"`
	// The status of the VPN connection, valid value:ike_sa_not_established, ike_sa_established, ipsec_sa_not_established, ipsec_sa_established.
	Status pulumi.StringInput `pulumi:"status"`
	// Use the VPN gateway ID as the search key.
	VpnGatewayId pulumi.StringInput `pulumi:"vpnGatewayId"`
}

func (GetConnectionsConnectionArgs) ElementType

func (GetConnectionsConnectionArgs) ToGetConnectionsConnectionOutput

func (i GetConnectionsConnectionArgs) ToGetConnectionsConnectionOutput() GetConnectionsConnectionOutput

func (GetConnectionsConnectionArgs) ToGetConnectionsConnectionOutputWithContext

func (i GetConnectionsConnectionArgs) ToGetConnectionsConnectionOutputWithContext(ctx context.Context) GetConnectionsConnectionOutput

type GetConnectionsConnectionArray

type GetConnectionsConnectionArray []GetConnectionsConnectionInput

func (GetConnectionsConnectionArray) ElementType

func (GetConnectionsConnectionArray) ToGetConnectionsConnectionArrayOutput

func (i GetConnectionsConnectionArray) ToGetConnectionsConnectionArrayOutput() GetConnectionsConnectionArrayOutput

func (GetConnectionsConnectionArray) ToGetConnectionsConnectionArrayOutputWithContext

func (i GetConnectionsConnectionArray) ToGetConnectionsConnectionArrayOutputWithContext(ctx context.Context) GetConnectionsConnectionArrayOutput

type GetConnectionsConnectionArrayInput

type GetConnectionsConnectionArrayInput interface {
	pulumi.Input

	ToGetConnectionsConnectionArrayOutput() GetConnectionsConnectionArrayOutput
	ToGetConnectionsConnectionArrayOutputWithContext(context.Context) GetConnectionsConnectionArrayOutput
}

GetConnectionsConnectionArrayInput is an input type that accepts GetConnectionsConnectionArray and GetConnectionsConnectionArrayOutput values. You can construct a concrete instance of `GetConnectionsConnectionArrayInput` via:

GetConnectionsConnectionArray{ GetConnectionsConnectionArgs{...} }

type GetConnectionsConnectionArrayOutput

type GetConnectionsConnectionArrayOutput struct{ *pulumi.OutputState }

func (GetConnectionsConnectionArrayOutput) ElementType

func (GetConnectionsConnectionArrayOutput) Index

func (GetConnectionsConnectionArrayOutput) ToGetConnectionsConnectionArrayOutput

func (o GetConnectionsConnectionArrayOutput) ToGetConnectionsConnectionArrayOutput() GetConnectionsConnectionArrayOutput

func (GetConnectionsConnectionArrayOutput) ToGetConnectionsConnectionArrayOutputWithContext

func (o GetConnectionsConnectionArrayOutput) ToGetConnectionsConnectionArrayOutputWithContext(ctx context.Context) GetConnectionsConnectionArrayOutput

type GetConnectionsConnectionIkeConfig

type GetConnectionsConnectionIkeConfig struct {
	// The authentication algorithm of phase-one negotiation.
	IkeAuthAlg *string `pulumi:"ikeAuthAlg"`
	// The encryption algorithm of phase-one negotiation.
	IkeEncAlg *string `pulumi:"ikeEncAlg"`
	// The SA lifecycle as the result of phase-one negotiation.
	IkeLifetime *int `pulumi:"ikeLifetime"`
	// The identification of the VPN gateway.
	IkeLocalId *string `pulumi:"ikeLocalId"`
	// The negotiation mode of IKE phase-one.
	IkeMode *string `pulumi:"ikeMode"`
	// The Diffie-Hellman key exchange algorithm used by phase-one negotiation.
	IkePfs *string `pulumi:"ikePfs"`
	// The identification of the customer gateway.
	IkeRemoteId *string `pulumi:"ikeRemoteId"`
	// The version of the IKE protocol.
	IkeVersion *string `pulumi:"ikeVersion"`
	// Used for authentication between the IPsec VPN gateway and the customer gateway.
	Psk *string `pulumi:"psk"`
}

type GetConnectionsConnectionIkeConfigArgs

type GetConnectionsConnectionIkeConfigArgs struct {
	// The authentication algorithm of phase-one negotiation.
	IkeAuthAlg pulumi.StringPtrInput `pulumi:"ikeAuthAlg"`
	// The encryption algorithm of phase-one negotiation.
	IkeEncAlg pulumi.StringPtrInput `pulumi:"ikeEncAlg"`
	// The SA lifecycle as the result of phase-one negotiation.
	IkeLifetime pulumi.IntPtrInput `pulumi:"ikeLifetime"`
	// The identification of the VPN gateway.
	IkeLocalId pulumi.StringPtrInput `pulumi:"ikeLocalId"`
	// The negotiation mode of IKE phase-one.
	IkeMode pulumi.StringPtrInput `pulumi:"ikeMode"`
	// The Diffie-Hellman key exchange algorithm used by phase-one negotiation.
	IkePfs pulumi.StringPtrInput `pulumi:"ikePfs"`
	// The identification of the customer gateway.
	IkeRemoteId pulumi.StringPtrInput `pulumi:"ikeRemoteId"`
	// The version of the IKE protocol.
	IkeVersion pulumi.StringPtrInput `pulumi:"ikeVersion"`
	// Used for authentication between the IPsec VPN gateway and the customer gateway.
	Psk pulumi.StringPtrInput `pulumi:"psk"`
}

func (GetConnectionsConnectionIkeConfigArgs) ElementType

func (GetConnectionsConnectionIkeConfigArgs) ToGetConnectionsConnectionIkeConfigOutput

func (i GetConnectionsConnectionIkeConfigArgs) ToGetConnectionsConnectionIkeConfigOutput() GetConnectionsConnectionIkeConfigOutput

func (GetConnectionsConnectionIkeConfigArgs) ToGetConnectionsConnectionIkeConfigOutputWithContext

func (i GetConnectionsConnectionIkeConfigArgs) ToGetConnectionsConnectionIkeConfigOutputWithContext(ctx context.Context) GetConnectionsConnectionIkeConfigOutput

type GetConnectionsConnectionIkeConfigArray

type GetConnectionsConnectionIkeConfigArray []GetConnectionsConnectionIkeConfigInput

func (GetConnectionsConnectionIkeConfigArray) ElementType

func (GetConnectionsConnectionIkeConfigArray) ToGetConnectionsConnectionIkeConfigArrayOutput

func (i GetConnectionsConnectionIkeConfigArray) ToGetConnectionsConnectionIkeConfigArrayOutput() GetConnectionsConnectionIkeConfigArrayOutput

func (GetConnectionsConnectionIkeConfigArray) ToGetConnectionsConnectionIkeConfigArrayOutputWithContext

func (i GetConnectionsConnectionIkeConfigArray) ToGetConnectionsConnectionIkeConfigArrayOutputWithContext(ctx context.Context) GetConnectionsConnectionIkeConfigArrayOutput

type GetConnectionsConnectionIkeConfigArrayInput

type GetConnectionsConnectionIkeConfigArrayInput interface {
	pulumi.Input

	ToGetConnectionsConnectionIkeConfigArrayOutput() GetConnectionsConnectionIkeConfigArrayOutput
	ToGetConnectionsConnectionIkeConfigArrayOutputWithContext(context.Context) GetConnectionsConnectionIkeConfigArrayOutput
}

GetConnectionsConnectionIkeConfigArrayInput is an input type that accepts GetConnectionsConnectionIkeConfigArray and GetConnectionsConnectionIkeConfigArrayOutput values. You can construct a concrete instance of `GetConnectionsConnectionIkeConfigArrayInput` via:

GetConnectionsConnectionIkeConfigArray{ GetConnectionsConnectionIkeConfigArgs{...} }

type GetConnectionsConnectionIkeConfigArrayOutput

type GetConnectionsConnectionIkeConfigArrayOutput struct{ *pulumi.OutputState }

func (GetConnectionsConnectionIkeConfigArrayOutput) ElementType

func (GetConnectionsConnectionIkeConfigArrayOutput) Index

func (GetConnectionsConnectionIkeConfigArrayOutput) ToGetConnectionsConnectionIkeConfigArrayOutput

func (o GetConnectionsConnectionIkeConfigArrayOutput) ToGetConnectionsConnectionIkeConfigArrayOutput() GetConnectionsConnectionIkeConfigArrayOutput

func (GetConnectionsConnectionIkeConfigArrayOutput) ToGetConnectionsConnectionIkeConfigArrayOutputWithContext

func (o GetConnectionsConnectionIkeConfigArrayOutput) ToGetConnectionsConnectionIkeConfigArrayOutputWithContext(ctx context.Context) GetConnectionsConnectionIkeConfigArrayOutput

type GetConnectionsConnectionIkeConfigInput

type GetConnectionsConnectionIkeConfigInput interface {
	pulumi.Input

	ToGetConnectionsConnectionIkeConfigOutput() GetConnectionsConnectionIkeConfigOutput
	ToGetConnectionsConnectionIkeConfigOutputWithContext(context.Context) GetConnectionsConnectionIkeConfigOutput
}

GetConnectionsConnectionIkeConfigInput is an input type that accepts GetConnectionsConnectionIkeConfigArgs and GetConnectionsConnectionIkeConfigOutput values. You can construct a concrete instance of `GetConnectionsConnectionIkeConfigInput` via:

GetConnectionsConnectionIkeConfigArgs{...}

type GetConnectionsConnectionIkeConfigOutput

type GetConnectionsConnectionIkeConfigOutput struct{ *pulumi.OutputState }

func (GetConnectionsConnectionIkeConfigOutput) ElementType

func (GetConnectionsConnectionIkeConfigOutput) IkeAuthAlg

The authentication algorithm of phase-one negotiation.

func (GetConnectionsConnectionIkeConfigOutput) IkeEncAlg

The encryption algorithm of phase-one negotiation.

func (GetConnectionsConnectionIkeConfigOutput) IkeLifetime

The SA lifecycle as the result of phase-one negotiation.

func (GetConnectionsConnectionIkeConfigOutput) IkeLocalId

The identification of the VPN gateway.

func (GetConnectionsConnectionIkeConfigOutput) IkeMode

The negotiation mode of IKE phase-one.

func (GetConnectionsConnectionIkeConfigOutput) IkePfs

The Diffie-Hellman key exchange algorithm used by phase-one negotiation.

func (GetConnectionsConnectionIkeConfigOutput) IkeRemoteId

The identification of the customer gateway.

func (GetConnectionsConnectionIkeConfigOutput) IkeVersion

The version of the IKE protocol.

func (GetConnectionsConnectionIkeConfigOutput) Psk

Used for authentication between the IPsec VPN gateway and the customer gateway.

func (GetConnectionsConnectionIkeConfigOutput) ToGetConnectionsConnectionIkeConfigOutput

func (o GetConnectionsConnectionIkeConfigOutput) ToGetConnectionsConnectionIkeConfigOutput() GetConnectionsConnectionIkeConfigOutput

func (GetConnectionsConnectionIkeConfigOutput) ToGetConnectionsConnectionIkeConfigOutputWithContext

func (o GetConnectionsConnectionIkeConfigOutput) ToGetConnectionsConnectionIkeConfigOutputWithContext(ctx context.Context) GetConnectionsConnectionIkeConfigOutput

type GetConnectionsConnectionInput

type GetConnectionsConnectionInput interface {
	pulumi.Input

	ToGetConnectionsConnectionOutput() GetConnectionsConnectionOutput
	ToGetConnectionsConnectionOutputWithContext(context.Context) GetConnectionsConnectionOutput
}

GetConnectionsConnectionInput is an input type that accepts GetConnectionsConnectionArgs and GetConnectionsConnectionOutput values. You can construct a concrete instance of `GetConnectionsConnectionInput` via:

GetConnectionsConnectionArgs{...}

type GetConnectionsConnectionIpsecConfig

type GetConnectionsConnectionIpsecConfig struct {
	// The authentication algorithm of phase-two negotiation.
	IpsecAuthAlg *string `pulumi:"ipsecAuthAlg"`
	// The encryption algorithm of phase-two negotiation.
	IpsecEncAlg *string `pulumi:"ipsecEncAlg"`
	// The SA lifecycle as the result of phase-two negotiation.
	IpsecLifetime *int `pulumi:"ipsecLifetime"`
	// The Diffie-Hellman key exchange algorithm used by phase-two negotiation.
	IpsecPfs *string `pulumi:"ipsecPfs"`
}

type GetConnectionsConnectionIpsecConfigArgs

type GetConnectionsConnectionIpsecConfigArgs struct {
	// The authentication algorithm of phase-two negotiation.
	IpsecAuthAlg pulumi.StringPtrInput `pulumi:"ipsecAuthAlg"`
	// The encryption algorithm of phase-two negotiation.
	IpsecEncAlg pulumi.StringPtrInput `pulumi:"ipsecEncAlg"`
	// The SA lifecycle as the result of phase-two negotiation.
	IpsecLifetime pulumi.IntPtrInput `pulumi:"ipsecLifetime"`
	// The Diffie-Hellman key exchange algorithm used by phase-two negotiation.
	IpsecPfs pulumi.StringPtrInput `pulumi:"ipsecPfs"`
}

func (GetConnectionsConnectionIpsecConfigArgs) ElementType

func (GetConnectionsConnectionIpsecConfigArgs) ToGetConnectionsConnectionIpsecConfigOutput

func (i GetConnectionsConnectionIpsecConfigArgs) ToGetConnectionsConnectionIpsecConfigOutput() GetConnectionsConnectionIpsecConfigOutput

func (GetConnectionsConnectionIpsecConfigArgs) ToGetConnectionsConnectionIpsecConfigOutputWithContext

func (i GetConnectionsConnectionIpsecConfigArgs) ToGetConnectionsConnectionIpsecConfigOutputWithContext(ctx context.Context) GetConnectionsConnectionIpsecConfigOutput

type GetConnectionsConnectionIpsecConfigArray

type GetConnectionsConnectionIpsecConfigArray []GetConnectionsConnectionIpsecConfigInput

func (GetConnectionsConnectionIpsecConfigArray) ElementType

func (GetConnectionsConnectionIpsecConfigArray) ToGetConnectionsConnectionIpsecConfigArrayOutput

func (i GetConnectionsConnectionIpsecConfigArray) ToGetConnectionsConnectionIpsecConfigArrayOutput() GetConnectionsConnectionIpsecConfigArrayOutput

func (GetConnectionsConnectionIpsecConfigArray) ToGetConnectionsConnectionIpsecConfigArrayOutputWithContext

func (i GetConnectionsConnectionIpsecConfigArray) ToGetConnectionsConnectionIpsecConfigArrayOutputWithContext(ctx context.Context) GetConnectionsConnectionIpsecConfigArrayOutput

type GetConnectionsConnectionIpsecConfigArrayInput

type GetConnectionsConnectionIpsecConfigArrayInput interface {
	pulumi.Input

	ToGetConnectionsConnectionIpsecConfigArrayOutput() GetConnectionsConnectionIpsecConfigArrayOutput
	ToGetConnectionsConnectionIpsecConfigArrayOutputWithContext(context.Context) GetConnectionsConnectionIpsecConfigArrayOutput
}

GetConnectionsConnectionIpsecConfigArrayInput is an input type that accepts GetConnectionsConnectionIpsecConfigArray and GetConnectionsConnectionIpsecConfigArrayOutput values. You can construct a concrete instance of `GetConnectionsConnectionIpsecConfigArrayInput` via:

GetConnectionsConnectionIpsecConfigArray{ GetConnectionsConnectionIpsecConfigArgs{...} }

type GetConnectionsConnectionIpsecConfigArrayOutput

type GetConnectionsConnectionIpsecConfigArrayOutput struct{ *pulumi.OutputState }

func (GetConnectionsConnectionIpsecConfigArrayOutput) ElementType

func (GetConnectionsConnectionIpsecConfigArrayOutput) Index

func (GetConnectionsConnectionIpsecConfigArrayOutput) ToGetConnectionsConnectionIpsecConfigArrayOutput

func (o GetConnectionsConnectionIpsecConfigArrayOutput) ToGetConnectionsConnectionIpsecConfigArrayOutput() GetConnectionsConnectionIpsecConfigArrayOutput

func (GetConnectionsConnectionIpsecConfigArrayOutput) ToGetConnectionsConnectionIpsecConfigArrayOutputWithContext

func (o GetConnectionsConnectionIpsecConfigArrayOutput) ToGetConnectionsConnectionIpsecConfigArrayOutputWithContext(ctx context.Context) GetConnectionsConnectionIpsecConfigArrayOutput

type GetConnectionsConnectionIpsecConfigInput

type GetConnectionsConnectionIpsecConfigInput interface {
	pulumi.Input

	ToGetConnectionsConnectionIpsecConfigOutput() GetConnectionsConnectionIpsecConfigOutput
	ToGetConnectionsConnectionIpsecConfigOutputWithContext(context.Context) GetConnectionsConnectionIpsecConfigOutput
}

GetConnectionsConnectionIpsecConfigInput is an input type that accepts GetConnectionsConnectionIpsecConfigArgs and GetConnectionsConnectionIpsecConfigOutput values. You can construct a concrete instance of `GetConnectionsConnectionIpsecConfigInput` via:

GetConnectionsConnectionIpsecConfigArgs{...}

type GetConnectionsConnectionIpsecConfigOutput

type GetConnectionsConnectionIpsecConfigOutput struct{ *pulumi.OutputState }

func (GetConnectionsConnectionIpsecConfigOutput) ElementType

func (GetConnectionsConnectionIpsecConfigOutput) IpsecAuthAlg

The authentication algorithm of phase-two negotiation.

func (GetConnectionsConnectionIpsecConfigOutput) IpsecEncAlg

The encryption algorithm of phase-two negotiation.

func (GetConnectionsConnectionIpsecConfigOutput) IpsecLifetime

The SA lifecycle as the result of phase-two negotiation.

func (GetConnectionsConnectionIpsecConfigOutput) IpsecPfs

The Diffie-Hellman key exchange algorithm used by phase-two negotiation.

func (GetConnectionsConnectionIpsecConfigOutput) ToGetConnectionsConnectionIpsecConfigOutput

func (o GetConnectionsConnectionIpsecConfigOutput) ToGetConnectionsConnectionIpsecConfigOutput() GetConnectionsConnectionIpsecConfigOutput

func (GetConnectionsConnectionIpsecConfigOutput) ToGetConnectionsConnectionIpsecConfigOutputWithContext

func (o GetConnectionsConnectionIpsecConfigOutput) ToGetConnectionsConnectionIpsecConfigOutputWithContext(ctx context.Context) GetConnectionsConnectionIpsecConfigOutput

type GetConnectionsConnectionOutput

type GetConnectionsConnectionOutput struct{ *pulumi.OutputState }

func (GetConnectionsConnectionOutput) CreateTime

func (GetConnectionsConnectionOutput) CustomerGatewayId

func (o GetConnectionsConnectionOutput) CustomerGatewayId() pulumi.StringOutput

Use the VPN customer gateway ID as the search key.

func (GetConnectionsConnectionOutput) EffectImmediately

func (o GetConnectionsConnectionOutput) EffectImmediately() pulumi.BoolOutput

func (GetConnectionsConnectionOutput) ElementType

func (GetConnectionsConnectionOutput) Id

ID of the VPN connection.

func (GetConnectionsConnectionOutput) IkeConfigs

The configurations of phase-one negotiation.

func (GetConnectionsConnectionOutput) IpsecConfigs

The configurations of phase-two negotiation.

func (GetConnectionsConnectionOutput) LocalSubnet

The local subnet of the VPN connection.

func (GetConnectionsConnectionOutput) Name

The name of the VPN connection.

func (GetConnectionsConnectionOutput) RemoteSubnet

The remote subnet of the VPN connection.

func (GetConnectionsConnectionOutput) Status

The status of the VPN connection, valid value:ike_sa_not_established, ike_sa_established, ipsec_sa_not_established, ipsec_sa_established.

func (GetConnectionsConnectionOutput) ToGetConnectionsConnectionOutput

func (o GetConnectionsConnectionOutput) ToGetConnectionsConnectionOutput() GetConnectionsConnectionOutput

func (GetConnectionsConnectionOutput) ToGetConnectionsConnectionOutputWithContext

func (o GetConnectionsConnectionOutput) ToGetConnectionsConnectionOutputWithContext(ctx context.Context) GetConnectionsConnectionOutput

func (GetConnectionsConnectionOutput) VpnGatewayId

Use the VPN gateway ID as the search key.

type GetConnectionsOutputArgs added in v3.9.0

type GetConnectionsOutputArgs struct {
	// Use the VPN customer gateway ID as the search key.
	CustomerGatewayId pulumi.StringPtrInput `pulumi:"customerGatewayId"`
	// IDs of the VPN connections.
	Ids pulumi.StringArrayInput `pulumi:"ids"`
	// A regex string of VPN connection name.
	NameRegex pulumi.StringPtrInput `pulumi:"nameRegex"`
	// Save the result to the file.
	OutputFile pulumi.StringPtrInput `pulumi:"outputFile"`
	// Use the VPN gateway ID as the search key.
	VpnGatewayId pulumi.StringPtrInput `pulumi:"vpnGatewayId"`
}

A collection of arguments for invoking getConnections.

func (GetConnectionsOutputArgs) ElementType added in v3.9.0

func (GetConnectionsOutputArgs) ElementType() reflect.Type

type GetConnectionsResult

type GetConnectionsResult struct {
	// A list of VPN connections. Each element contains the following attributes:
	Connections []GetConnectionsConnection `pulumi:"connections"`
	// ID of the VPN customer gateway.
	CustomerGatewayId *string `pulumi:"customerGatewayId"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Optional) IDs of the VPN connections.
	Ids       []string `pulumi:"ids"`
	NameRegex *string  `pulumi:"nameRegex"`
	// (Optional) names of the VPN connections.
	Names      []string `pulumi:"names"`
	OutputFile *string  `pulumi:"outputFile"`
	// ID of the VPN gateway.
	VpnGatewayId *string `pulumi:"vpnGatewayId"`
}

A collection of values returned by getConnections.

func GetConnections

func GetConnections(ctx *pulumi.Context, args *GetConnectionsArgs, opts ...pulumi.InvokeOption) (*GetConnectionsResult, error)

The VPN connections data source lists lots of VPN connections resource information owned by an Alicloud account.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := vpn.GetConnections(ctx, &vpn.GetConnectionsArgs{
			CustomerGatewayId: pulumi.StringRef("fake-cgw-id"),
			Ids: []string{
				"fake-conn-id",
			},
			OutputFile:   pulumi.StringRef("/tmp/vpnconn"),
			VpnGatewayId: pulumi.StringRef("fake-vpn-id"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetConnectionsResultOutput added in v3.9.0

type GetConnectionsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getConnections.

func GetConnectionsOutput added in v3.9.0

func GetConnectionsOutput(ctx *pulumi.Context, args GetConnectionsOutputArgs, opts ...pulumi.InvokeOption) GetConnectionsResultOutput

func (GetConnectionsResultOutput) Connections added in v3.9.0

A list of VPN connections. Each element contains the following attributes:

func (GetConnectionsResultOutput) CustomerGatewayId added in v3.9.0

func (o GetConnectionsResultOutput) CustomerGatewayId() pulumi.StringPtrOutput

ID of the VPN customer gateway.

func (GetConnectionsResultOutput) ElementType added in v3.9.0

func (GetConnectionsResultOutput) ElementType() reflect.Type

func (GetConnectionsResultOutput) Id added in v3.9.0

The provider-assigned unique ID for this managed resource.

func (GetConnectionsResultOutput) Ids added in v3.9.0

(Optional) IDs of the VPN connections.

func (GetConnectionsResultOutput) NameRegex added in v3.9.0

func (GetConnectionsResultOutput) Names added in v3.9.0

(Optional) names of the VPN connections.

func (GetConnectionsResultOutput) OutputFile added in v3.9.0

func (GetConnectionsResultOutput) ToGetConnectionsResultOutput added in v3.9.0

func (o GetConnectionsResultOutput) ToGetConnectionsResultOutput() GetConnectionsResultOutput

func (GetConnectionsResultOutput) ToGetConnectionsResultOutputWithContext added in v3.9.0

func (o GetConnectionsResultOutput) ToGetConnectionsResultOutputWithContext(ctx context.Context) GetConnectionsResultOutput

func (GetConnectionsResultOutput) VpnGatewayId added in v3.9.0

ID of the VPN gateway.

type GetCustomerGatewaysArgs

type GetCustomerGatewaysArgs struct {
	// ID of the VPN customer gateways.
	Ids []string `pulumi:"ids"`
	// A regex string of VPN customer gateways name.
	NameRegex *string `pulumi:"nameRegex"`
	// Save the result to the file.
	OutputFile *string `pulumi:"outputFile"`
}

A collection of arguments for invoking getCustomerGateways.

type GetCustomerGatewaysGateway

type GetCustomerGatewaysGateway struct {
	// The creation time of the VPN customer gateway.
	CreateTime string `pulumi:"createTime"`
	// The description of the VPN customer gateway.
	Description string `pulumi:"description"`
	// ID of the VPN customer gateway .
	Id string `pulumi:"id"`
	// The ip address of the VPN customer gateway.
	IpAddress string `pulumi:"ipAddress"`
	// The name of the VPN customer gateway.
	Name string `pulumi:"name"`
}

type GetCustomerGatewaysGatewayArgs

type GetCustomerGatewaysGatewayArgs struct {
	// The creation time of the VPN customer gateway.
	CreateTime pulumi.StringInput `pulumi:"createTime"`
	// The description of the VPN customer gateway.
	Description pulumi.StringInput `pulumi:"description"`
	// ID of the VPN customer gateway .
	Id pulumi.StringInput `pulumi:"id"`
	// The ip address of the VPN customer gateway.
	IpAddress pulumi.StringInput `pulumi:"ipAddress"`
	// The name of the VPN customer gateway.
	Name pulumi.StringInput `pulumi:"name"`
}

func (GetCustomerGatewaysGatewayArgs) ElementType

func (GetCustomerGatewaysGatewayArgs) ToGetCustomerGatewaysGatewayOutput

func (i GetCustomerGatewaysGatewayArgs) ToGetCustomerGatewaysGatewayOutput() GetCustomerGatewaysGatewayOutput

func (GetCustomerGatewaysGatewayArgs) ToGetCustomerGatewaysGatewayOutputWithContext

func (i GetCustomerGatewaysGatewayArgs) ToGetCustomerGatewaysGatewayOutputWithContext(ctx context.Context) GetCustomerGatewaysGatewayOutput

type GetCustomerGatewaysGatewayArray

type GetCustomerGatewaysGatewayArray []GetCustomerGatewaysGatewayInput

func (GetCustomerGatewaysGatewayArray) ElementType

func (GetCustomerGatewaysGatewayArray) ToGetCustomerGatewaysGatewayArrayOutput

func (i GetCustomerGatewaysGatewayArray) ToGetCustomerGatewaysGatewayArrayOutput() GetCustomerGatewaysGatewayArrayOutput

func (GetCustomerGatewaysGatewayArray) ToGetCustomerGatewaysGatewayArrayOutputWithContext

func (i GetCustomerGatewaysGatewayArray) ToGetCustomerGatewaysGatewayArrayOutputWithContext(ctx context.Context) GetCustomerGatewaysGatewayArrayOutput

type GetCustomerGatewaysGatewayArrayInput

type GetCustomerGatewaysGatewayArrayInput interface {
	pulumi.Input

	ToGetCustomerGatewaysGatewayArrayOutput() GetCustomerGatewaysGatewayArrayOutput
	ToGetCustomerGatewaysGatewayArrayOutputWithContext(context.Context) GetCustomerGatewaysGatewayArrayOutput
}

GetCustomerGatewaysGatewayArrayInput is an input type that accepts GetCustomerGatewaysGatewayArray and GetCustomerGatewaysGatewayArrayOutput values. You can construct a concrete instance of `GetCustomerGatewaysGatewayArrayInput` via:

GetCustomerGatewaysGatewayArray{ GetCustomerGatewaysGatewayArgs{...} }

type GetCustomerGatewaysGatewayArrayOutput

type GetCustomerGatewaysGatewayArrayOutput struct{ *pulumi.OutputState }

func (GetCustomerGatewaysGatewayArrayOutput) ElementType

func (GetCustomerGatewaysGatewayArrayOutput) Index

func (GetCustomerGatewaysGatewayArrayOutput) ToGetCustomerGatewaysGatewayArrayOutput

func (o GetCustomerGatewaysGatewayArrayOutput) ToGetCustomerGatewaysGatewayArrayOutput() GetCustomerGatewaysGatewayArrayOutput

func (GetCustomerGatewaysGatewayArrayOutput) ToGetCustomerGatewaysGatewayArrayOutputWithContext

func (o GetCustomerGatewaysGatewayArrayOutput) ToGetCustomerGatewaysGatewayArrayOutputWithContext(ctx context.Context) GetCustomerGatewaysGatewayArrayOutput

type GetCustomerGatewaysGatewayInput

type GetCustomerGatewaysGatewayInput interface {
	pulumi.Input

	ToGetCustomerGatewaysGatewayOutput() GetCustomerGatewaysGatewayOutput
	ToGetCustomerGatewaysGatewayOutputWithContext(context.Context) GetCustomerGatewaysGatewayOutput
}

GetCustomerGatewaysGatewayInput is an input type that accepts GetCustomerGatewaysGatewayArgs and GetCustomerGatewaysGatewayOutput values. You can construct a concrete instance of `GetCustomerGatewaysGatewayInput` via:

GetCustomerGatewaysGatewayArgs{...}

type GetCustomerGatewaysGatewayOutput

type GetCustomerGatewaysGatewayOutput struct{ *pulumi.OutputState }

func (GetCustomerGatewaysGatewayOutput) CreateTime

The creation time of the VPN customer gateway.

func (GetCustomerGatewaysGatewayOutput) Description

The description of the VPN customer gateway.

func (GetCustomerGatewaysGatewayOutput) ElementType

func (GetCustomerGatewaysGatewayOutput) Id

ID of the VPN customer gateway .

func (GetCustomerGatewaysGatewayOutput) IpAddress

The ip address of the VPN customer gateway.

func (GetCustomerGatewaysGatewayOutput) Name

The name of the VPN customer gateway.

func (GetCustomerGatewaysGatewayOutput) ToGetCustomerGatewaysGatewayOutput

func (o GetCustomerGatewaysGatewayOutput) ToGetCustomerGatewaysGatewayOutput() GetCustomerGatewaysGatewayOutput

func (GetCustomerGatewaysGatewayOutput) ToGetCustomerGatewaysGatewayOutputWithContext

func (o GetCustomerGatewaysGatewayOutput) ToGetCustomerGatewaysGatewayOutputWithContext(ctx context.Context) GetCustomerGatewaysGatewayOutput

type GetCustomerGatewaysOutputArgs added in v3.9.0

type GetCustomerGatewaysOutputArgs struct {
	// ID of the VPN customer gateways.
	Ids pulumi.StringArrayInput `pulumi:"ids"`
	// A regex string of VPN customer gateways name.
	NameRegex pulumi.StringPtrInput `pulumi:"nameRegex"`
	// Save the result to the file.
	OutputFile pulumi.StringPtrInput `pulumi:"outputFile"`
}

A collection of arguments for invoking getCustomerGateways.

func (GetCustomerGatewaysOutputArgs) ElementType added in v3.9.0

type GetCustomerGatewaysResult

type GetCustomerGatewaysResult struct {
	// A list of VPN customer gateways. Each element contains the following attributes:
	Gateways []GetCustomerGatewaysGateway `pulumi:"gateways"`
	// The provider-assigned unique ID for this managed resource.
	Id         string   `pulumi:"id"`
	Ids        []string `pulumi:"ids"`
	NameRegex  *string  `pulumi:"nameRegex"`
	Names      []string `pulumi:"names"`
	OutputFile *string  `pulumi:"outputFile"`
}

A collection of values returned by getCustomerGateways.

func GetCustomerGateways

func GetCustomerGateways(ctx *pulumi.Context, args *GetCustomerGatewaysArgs, opts ...pulumi.InvokeOption) (*GetCustomerGatewaysResult, error)

The VPN customers gateways data source lists a number of VPN customer gateways resource information owned by an Alicloud account.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := vpn.GetCustomerGateways(ctx, &vpn.GetCustomerGatewaysArgs{
			Ids: []string{
				"fake-id1",
				"fake-id2",
			},
			NameRegex:  pulumi.StringRef("testAcc*"),
			OutputFile: pulumi.StringRef("/tmp/cgws"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetCustomerGatewaysResultOutput added in v3.9.0

type GetCustomerGatewaysResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getCustomerGateways.

func GetCustomerGatewaysOutput added in v3.9.0

func (GetCustomerGatewaysResultOutput) ElementType added in v3.9.0

func (GetCustomerGatewaysResultOutput) Gateways added in v3.9.0

A list of VPN customer gateways. Each element contains the following attributes:

func (GetCustomerGatewaysResultOutput) Id added in v3.9.0

The provider-assigned unique ID for this managed resource.

func (GetCustomerGatewaysResultOutput) Ids added in v3.9.0

func (GetCustomerGatewaysResultOutput) NameRegex added in v3.9.0

func (GetCustomerGatewaysResultOutput) Names added in v3.9.0

func (GetCustomerGatewaysResultOutput) OutputFile added in v3.9.0

func (GetCustomerGatewaysResultOutput) ToGetCustomerGatewaysResultOutput added in v3.9.0

func (o GetCustomerGatewaysResultOutput) ToGetCustomerGatewaysResultOutput() GetCustomerGatewaysResultOutput

func (GetCustomerGatewaysResultOutput) ToGetCustomerGatewaysResultOutputWithContext added in v3.9.0

func (o GetCustomerGatewaysResultOutput) ToGetCustomerGatewaysResultOutputWithContext(ctx context.Context) GetCustomerGatewaysResultOutput

type GetGatewaysArgs

type GetGatewaysArgs struct {
	// Limit search to specific business status - valid value is "Normal", "FinancialLocked".
	BusinessStatus *string `pulumi:"businessStatus"`
	// Indicates whether the IPsec-VPN feature is enabled.
	EnableIpsec *bool `pulumi:"enableIpsec"`
	// IDs of the VPN.
	Ids []string `pulumi:"ids"`
	// A regex string of VPN name.
	NameRegex *string `pulumi:"nameRegex"`
	// Save the result to the file.
	OutputFile *string `pulumi:"outputFile"`
	// Limit search to specific status - valid value is "Init", "Provisioning", "Active", "Updating", "Deleting".
	Status *string `pulumi:"status"`
	// Use the VPC ID as the search key.
	VpcId *string `pulumi:"vpcId"`
}

A collection of arguments for invoking getGateways.

type GetGatewaysGateway

type GetGatewaysGateway struct {
	// Limit search to specific business status - valid value is "Normal", "FinancialLocked".
	BusinessStatus string `pulumi:"businessStatus"`
	// The creation time of the VPN gateway.
	CreateTime string `pulumi:"createTime"`
	// The description of the VPN
	Description string `pulumi:"description"`
	// Indicates whether the IPsec-VPN feature is enabled.
	EnableIpsec string `pulumi:"enableIpsec"`
	// Whether the ssl function is enabled.
	EnableSsl string `pulumi:"enableSsl"`
	// The expiration time of the VPN gateway.
	EndTime string `pulumi:"endTime"`
	// ID of the VPN.
	Id string `pulumi:"id"`
	// The charge type of the VPN gateway.
	InstanceChargeType string `pulumi:"instanceChargeType"`
	// The internet ip of the VPN.
	InternetIp string `pulumi:"internetIp"`
	// The name of the VPN.
	Name string `pulumi:"name"`
	// The Specification of the VPN
	Specification string `pulumi:"specification"`
	// Total count of ssl vpn connections.
	SslConnections int `pulumi:"sslConnections"`
	// Limit search to specific status - valid value is "Init", "Provisioning", "Active", "Updating", "Deleting".
	Status string `pulumi:"status"`
	// Use the VPC ID as the search key.
	VpcId string `pulumi:"vpcId"`
}

type GetGatewaysGatewayArgs

type GetGatewaysGatewayArgs struct {
	// Limit search to specific business status - valid value is "Normal", "FinancialLocked".
	BusinessStatus pulumi.StringInput `pulumi:"businessStatus"`
	// The creation time of the VPN gateway.
	CreateTime pulumi.StringInput `pulumi:"createTime"`
	// The description of the VPN
	Description pulumi.StringInput `pulumi:"description"`
	// Indicates whether the IPsec-VPN feature is enabled.
	EnableIpsec pulumi.StringInput `pulumi:"enableIpsec"`
	// Whether the ssl function is enabled.
	EnableSsl pulumi.StringInput `pulumi:"enableSsl"`
	// The expiration time of the VPN gateway.
	EndTime pulumi.StringInput `pulumi:"endTime"`
	// ID of the VPN.
	Id pulumi.StringInput `pulumi:"id"`
	// The charge type of the VPN gateway.
	InstanceChargeType pulumi.StringInput `pulumi:"instanceChargeType"`
	// The internet ip of the VPN.
	InternetIp pulumi.StringInput `pulumi:"internetIp"`
	// The name of the VPN.
	Name pulumi.StringInput `pulumi:"name"`
	// The Specification of the VPN
	Specification pulumi.StringInput `pulumi:"specification"`
	// Total count of ssl vpn connections.
	SslConnections pulumi.IntInput `pulumi:"sslConnections"`
	// Limit search to specific status - valid value is "Init", "Provisioning", "Active", "Updating", "Deleting".
	Status pulumi.StringInput `pulumi:"status"`
	// Use the VPC ID as the search key.
	VpcId pulumi.StringInput `pulumi:"vpcId"`
}

func (GetGatewaysGatewayArgs) ElementType

func (GetGatewaysGatewayArgs) ElementType() reflect.Type

func (GetGatewaysGatewayArgs) ToGetGatewaysGatewayOutput

func (i GetGatewaysGatewayArgs) ToGetGatewaysGatewayOutput() GetGatewaysGatewayOutput

func (GetGatewaysGatewayArgs) ToGetGatewaysGatewayOutputWithContext

func (i GetGatewaysGatewayArgs) ToGetGatewaysGatewayOutputWithContext(ctx context.Context) GetGatewaysGatewayOutput

type GetGatewaysGatewayArray

type GetGatewaysGatewayArray []GetGatewaysGatewayInput

func (GetGatewaysGatewayArray) ElementType

func (GetGatewaysGatewayArray) ElementType() reflect.Type

func (GetGatewaysGatewayArray) ToGetGatewaysGatewayArrayOutput

func (i GetGatewaysGatewayArray) ToGetGatewaysGatewayArrayOutput() GetGatewaysGatewayArrayOutput

func (GetGatewaysGatewayArray) ToGetGatewaysGatewayArrayOutputWithContext

func (i GetGatewaysGatewayArray) ToGetGatewaysGatewayArrayOutputWithContext(ctx context.Context) GetGatewaysGatewayArrayOutput

type GetGatewaysGatewayArrayInput

type GetGatewaysGatewayArrayInput interface {
	pulumi.Input

	ToGetGatewaysGatewayArrayOutput() GetGatewaysGatewayArrayOutput
	ToGetGatewaysGatewayArrayOutputWithContext(context.Context) GetGatewaysGatewayArrayOutput
}

GetGatewaysGatewayArrayInput is an input type that accepts GetGatewaysGatewayArray and GetGatewaysGatewayArrayOutput values. You can construct a concrete instance of `GetGatewaysGatewayArrayInput` via:

GetGatewaysGatewayArray{ GetGatewaysGatewayArgs{...} }

type GetGatewaysGatewayArrayOutput

type GetGatewaysGatewayArrayOutput struct{ *pulumi.OutputState }

func (GetGatewaysGatewayArrayOutput) ElementType

func (GetGatewaysGatewayArrayOutput) Index

func (GetGatewaysGatewayArrayOutput) ToGetGatewaysGatewayArrayOutput

func (o GetGatewaysGatewayArrayOutput) ToGetGatewaysGatewayArrayOutput() GetGatewaysGatewayArrayOutput

func (GetGatewaysGatewayArrayOutput) ToGetGatewaysGatewayArrayOutputWithContext

func (o GetGatewaysGatewayArrayOutput) ToGetGatewaysGatewayArrayOutputWithContext(ctx context.Context) GetGatewaysGatewayArrayOutput

type GetGatewaysGatewayInput

type GetGatewaysGatewayInput interface {
	pulumi.Input

	ToGetGatewaysGatewayOutput() GetGatewaysGatewayOutput
	ToGetGatewaysGatewayOutputWithContext(context.Context) GetGatewaysGatewayOutput
}

GetGatewaysGatewayInput is an input type that accepts GetGatewaysGatewayArgs and GetGatewaysGatewayOutput values. You can construct a concrete instance of `GetGatewaysGatewayInput` via:

GetGatewaysGatewayArgs{...}

type GetGatewaysGatewayOutput

type GetGatewaysGatewayOutput struct{ *pulumi.OutputState }

func (GetGatewaysGatewayOutput) BusinessStatus

func (o GetGatewaysGatewayOutput) BusinessStatus() pulumi.StringOutput

Limit search to specific business status - valid value is "Normal", "FinancialLocked".

func (GetGatewaysGatewayOutput) CreateTime

The creation time of the VPN gateway.

func (GetGatewaysGatewayOutput) Description

The description of the VPN

func (GetGatewaysGatewayOutput) ElementType

func (GetGatewaysGatewayOutput) ElementType() reflect.Type

func (GetGatewaysGatewayOutput) EnableIpsec

Indicates whether the IPsec-VPN feature is enabled.

func (GetGatewaysGatewayOutput) EnableSsl

Whether the ssl function is enabled.

func (GetGatewaysGatewayOutput) EndTime

The expiration time of the VPN gateway.

func (GetGatewaysGatewayOutput) Id

ID of the VPN.

func (GetGatewaysGatewayOutput) InstanceChargeType

func (o GetGatewaysGatewayOutput) InstanceChargeType() pulumi.StringOutput

The charge type of the VPN gateway.

func (GetGatewaysGatewayOutput) InternetIp

The internet ip of the VPN.

func (GetGatewaysGatewayOutput) Name

The name of the VPN.

func (GetGatewaysGatewayOutput) Specification

func (o GetGatewaysGatewayOutput) Specification() pulumi.StringOutput

The Specification of the VPN

func (GetGatewaysGatewayOutput) SslConnections

func (o GetGatewaysGatewayOutput) SslConnections() pulumi.IntOutput

Total count of ssl vpn connections.

func (GetGatewaysGatewayOutput) Status

Limit search to specific status - valid value is "Init", "Provisioning", "Active", "Updating", "Deleting".

func (GetGatewaysGatewayOutput) ToGetGatewaysGatewayOutput

func (o GetGatewaysGatewayOutput) ToGetGatewaysGatewayOutput() GetGatewaysGatewayOutput

func (GetGatewaysGatewayOutput) ToGetGatewaysGatewayOutputWithContext

func (o GetGatewaysGatewayOutput) ToGetGatewaysGatewayOutputWithContext(ctx context.Context) GetGatewaysGatewayOutput

func (GetGatewaysGatewayOutput) VpcId

Use the VPC ID as the search key.

type GetGatewaysOutputArgs added in v3.9.0

type GetGatewaysOutputArgs struct {
	// Limit search to specific business status - valid value is "Normal", "FinancialLocked".
	BusinessStatus pulumi.StringPtrInput `pulumi:"businessStatus"`
	// Indicates whether the IPsec-VPN feature is enabled.
	EnableIpsec pulumi.BoolPtrInput `pulumi:"enableIpsec"`
	// IDs of the VPN.
	Ids pulumi.StringArrayInput `pulumi:"ids"`
	// A regex string of VPN name.
	NameRegex pulumi.StringPtrInput `pulumi:"nameRegex"`
	// Save the result to the file.
	OutputFile pulumi.StringPtrInput `pulumi:"outputFile"`
	// Limit search to specific status - valid value is "Init", "Provisioning", "Active", "Updating", "Deleting".
	Status pulumi.StringPtrInput `pulumi:"status"`
	// Use the VPC ID as the search key.
	VpcId pulumi.StringPtrInput `pulumi:"vpcId"`
}

A collection of arguments for invoking getGateways.

func (GetGatewaysOutputArgs) ElementType added in v3.9.0

func (GetGatewaysOutputArgs) ElementType() reflect.Type

type GetGatewaysResult

type GetGatewaysResult struct {
	// The business status of the VPN gateway.
	BusinessStatus *string `pulumi:"businessStatus"`
	// Whether the ipsec function is enabled.
	EnableIpsec *bool `pulumi:"enableIpsec"`
	// A list of VPN gateways. Each element contains the following attributes:
	Gateways []GetGatewaysGateway `pulumi:"gateways"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// IDs of the VPN.
	Ids       []string `pulumi:"ids"`
	NameRegex *string  `pulumi:"nameRegex"`
	// names of the VPN.
	Names      []string `pulumi:"names"`
	OutputFile *string  `pulumi:"outputFile"`
	// The status of the VPN
	Status *string `pulumi:"status"`
	// ID of the VPC that the VPN belongs.
	VpcId *string `pulumi:"vpcId"`
}

A collection of values returned by getGateways.

func GetGateways

func GetGateways(ctx *pulumi.Context, args *GetGatewaysArgs, opts ...pulumi.InvokeOption) (*GetGatewaysResult, error)

The VPNs data source lists a number of VPNs resource information owned by an Alicloud account.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := vpn.GetGateways(ctx, &vpn.GetGatewaysArgs{
			BusinessStatus: pulumi.StringRef("Normal"),
			EnableIpsec:    pulumi.BoolRef(true),
			Ids: []string{
				"fake-vpn-id1",
				"fake-vpn-id2",
			},
			NameRegex:  pulumi.StringRef("testAcc*"),
			OutputFile: pulumi.StringRef("/tmp/vpns"),
			Status:     pulumi.StringRef("active"),
			VpcId:      pulumi.StringRef("fake-vpc-id"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetGatewaysResultOutput added in v3.9.0

type GetGatewaysResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getGateways.

func GetGatewaysOutput added in v3.9.0

func GetGatewaysOutput(ctx *pulumi.Context, args GetGatewaysOutputArgs, opts ...pulumi.InvokeOption) GetGatewaysResultOutput

func (GetGatewaysResultOutput) BusinessStatus added in v3.9.0

func (o GetGatewaysResultOutput) BusinessStatus() pulumi.StringPtrOutput

The business status of the VPN gateway.

func (GetGatewaysResultOutput) ElementType added in v3.9.0

func (GetGatewaysResultOutput) ElementType() reflect.Type

func (GetGatewaysResultOutput) EnableIpsec added in v3.20.0

Whether the ipsec function is enabled.

func (GetGatewaysResultOutput) Gateways added in v3.9.0

A list of VPN gateways. Each element contains the following attributes:

func (GetGatewaysResultOutput) Id added in v3.9.0

The provider-assigned unique ID for this managed resource.

func (GetGatewaysResultOutput) Ids added in v3.9.0

IDs of the VPN.

func (GetGatewaysResultOutput) NameRegex added in v3.9.0

func (GetGatewaysResultOutput) Names added in v3.9.0

names of the VPN.

func (GetGatewaysResultOutput) OutputFile added in v3.9.0

func (GetGatewaysResultOutput) Status added in v3.9.0

The status of the VPN

func (GetGatewaysResultOutput) ToGetGatewaysResultOutput added in v3.9.0

func (o GetGatewaysResultOutput) ToGetGatewaysResultOutput() GetGatewaysResultOutput

func (GetGatewaysResultOutput) ToGetGatewaysResultOutputWithContext added in v3.9.0

func (o GetGatewaysResultOutput) ToGetGatewaysResultOutputWithContext(ctx context.Context) GetGatewaysResultOutput

func (GetGatewaysResultOutput) VpcId added in v3.9.0

ID of the VPC that the VPN belongs.

type IpsecServer added in v3.20.0

type IpsecServer struct {
	pulumi.CustomResourceState

	// The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.
	ClientIpPool pulumi.StringOutput `pulumi:"clientIpPool"`
	// The dry run.
	DryRun pulumi.BoolPtrOutput `pulumi:"dryRun"`
	// Specifies whether you want the configuration to immediately take effect.
	EffectImmediately pulumi.BoolPtrOutput `pulumi:"effectImmediately"`
	// The configuration of Phase 1 negotiations. See the following `Block ikeConfig`.
	IkeConfigs IpsecServerIkeConfigArrayOutput `pulumi:"ikeConfigs"`
	// The configuration of Phase 2 negotiations. See the following `Block ipsecConfig`.
	IpsecConfigs IpsecServerIpsecConfigArrayOutput `pulumi:"ipsecConfigs"`
	// The name of the IPsec server. The name must be `2` to `128` characters in length, and can contain digits, hyphens (-), and underscores (_). It must start with a letter.
	IpsecServerName pulumi.StringPtrOutput `pulumi:"ipsecServerName"`
	// The local CIDR block. It refers to the CIDR block of the virtual private cloud (VPC) that is used to connect with the client. Separate multiple CIDR blocks with commas (,). Example: `192.168.1.0/24,192.168.2.0/24`.
	LocalSubnet pulumi.StringOutput `pulumi:"localSubnet"`
	// The pre-shared key. The pre-shared key is used to authenticate the VPN gateway and the client. By default, the system generates a random string that is 16 bits in length. You can also specify the pre-shared key. It can contain at most 100 characters.
	Psk pulumi.StringOutput `pulumi:"psk"`
	// Whether to enable the pre-shared key authentication method. The value is only `true`, which indicates that the pre-shared key authentication method is enabled.
	PskEnabled pulumi.BoolPtrOutput `pulumi:"pskEnabled"`
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringOutput `pulumi:"vpnGatewayId"`
}

Provides a VPN Ipsec Server resource.

For information about VPN Ipsec Server and how to use it, see [What is Ipsec Server](https://www.alibabacloud.com/help/en/doc-detail/205454.html).

> **NOTE:** Available in v1.161.0+.

## Example Usage

Basic Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		defaultZones, err := alicloud.GetZones(ctx, &GetZonesArgs{
			AvailableResourceCreation: pulumi.StringRef("VSwitch"),
		}, nil)
		if err != nil {
			return err
		}
		defaultNetworks, err := vpc.GetNetworks(ctx, &vpc.GetNetworksArgs{
			NameRegex: pulumi.StringRef("default-NODELETING"),
		}, nil)
		if err != nil {
			return err
		}
		defaultSwitches, err := vpc.GetSwitches(ctx, &vpc.GetSwitchesArgs{
			VpcId:  pulumi.StringRef(defaultNetworks.Ids[0]),
			ZoneId: pulumi.StringRef(defaultZones.Zones[0].Id),
		}, nil)
		if err != nil {
			return err
		}
		vswitchId := defaultSwitches.Ids[0]
		defaultGateway, err := vpn.NewGateway(ctx, "defaultGateway", &vpn.GatewayArgs{
			VpcId:              pulumi.String(defaultNetworks.Ids[0]),
			Bandwidth:          pulumi.Int(10),
			EnableSsl:          pulumi.Bool(true),
			EnableIpsec:        pulumi.Bool(true),
			SslConnections:     pulumi.Int(5),
			InstanceChargeType: pulumi.String("PrePaid"),
			VswitchId:          pulumi.String(vswitchId),
		})
		if err != nil {
			return err
		}
		_, err = vpn.NewIpsecServer(ctx, "example", &vpn.IpsecServerArgs{
			ClientIpPool:    pulumi.String("example_value"),
			IpsecServerName: pulumi.String("example_value"),
			LocalSubnet:     pulumi.String("example_value"),
			VpnGatewayId:    defaultGateway.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

VPN Ipsec Server can be imported using the id, e.g.

```sh

$ pulumi import alicloud:vpn/ipsecServer:IpsecServer example <id>

```

func GetIpsecServer added in v3.20.0

func GetIpsecServer(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IpsecServerState, opts ...pulumi.ResourceOption) (*IpsecServer, error)

GetIpsecServer gets an existing IpsecServer resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewIpsecServer added in v3.20.0

func NewIpsecServer(ctx *pulumi.Context,
	name string, args *IpsecServerArgs, opts ...pulumi.ResourceOption) (*IpsecServer, error)

NewIpsecServer registers a new resource with the given unique name, arguments, and options.

func (*IpsecServer) ElementType added in v3.20.0

func (*IpsecServer) ElementType() reflect.Type

func (*IpsecServer) ToIpsecServerOutput added in v3.20.0

func (i *IpsecServer) ToIpsecServerOutput() IpsecServerOutput

func (*IpsecServer) ToIpsecServerOutputWithContext added in v3.20.0

func (i *IpsecServer) ToIpsecServerOutputWithContext(ctx context.Context) IpsecServerOutput

type IpsecServerArgs added in v3.20.0

type IpsecServerArgs struct {
	// The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.
	ClientIpPool pulumi.StringInput
	// The dry run.
	DryRun pulumi.BoolPtrInput
	// Specifies whether you want the configuration to immediately take effect.
	EffectImmediately pulumi.BoolPtrInput
	// The configuration of Phase 1 negotiations. See the following `Block ikeConfig`.
	IkeConfigs IpsecServerIkeConfigArrayInput
	// The configuration of Phase 2 negotiations. See the following `Block ipsecConfig`.
	IpsecConfigs IpsecServerIpsecConfigArrayInput
	// The name of the IPsec server. The name must be `2` to `128` characters in length, and can contain digits, hyphens (-), and underscores (_). It must start with a letter.
	IpsecServerName pulumi.StringPtrInput
	// The local CIDR block. It refers to the CIDR block of the virtual private cloud (VPC) that is used to connect with the client. Separate multiple CIDR blocks with commas (,). Example: `192.168.1.0/24,192.168.2.0/24`.
	LocalSubnet pulumi.StringInput
	// The pre-shared key. The pre-shared key is used to authenticate the VPN gateway and the client. By default, the system generates a random string that is 16 bits in length. You can also specify the pre-shared key. It can contain at most 100 characters.
	Psk pulumi.StringPtrInput
	// Whether to enable the pre-shared key authentication method. The value is only `true`, which indicates that the pre-shared key authentication method is enabled.
	PskEnabled pulumi.BoolPtrInput
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringInput
}

The set of arguments for constructing a IpsecServer resource.

func (IpsecServerArgs) ElementType added in v3.20.0

func (IpsecServerArgs) ElementType() reflect.Type

type IpsecServerArray added in v3.20.0

type IpsecServerArray []IpsecServerInput

func (IpsecServerArray) ElementType added in v3.20.0

func (IpsecServerArray) ElementType() reflect.Type

func (IpsecServerArray) ToIpsecServerArrayOutput added in v3.20.0

func (i IpsecServerArray) ToIpsecServerArrayOutput() IpsecServerArrayOutput

func (IpsecServerArray) ToIpsecServerArrayOutputWithContext added in v3.20.0

func (i IpsecServerArray) ToIpsecServerArrayOutputWithContext(ctx context.Context) IpsecServerArrayOutput

type IpsecServerArrayInput added in v3.20.0

type IpsecServerArrayInput interface {
	pulumi.Input

	ToIpsecServerArrayOutput() IpsecServerArrayOutput
	ToIpsecServerArrayOutputWithContext(context.Context) IpsecServerArrayOutput
}

IpsecServerArrayInput is an input type that accepts IpsecServerArray and IpsecServerArrayOutput values. You can construct a concrete instance of `IpsecServerArrayInput` via:

IpsecServerArray{ IpsecServerArgs{...} }

type IpsecServerArrayOutput added in v3.20.0

type IpsecServerArrayOutput struct{ *pulumi.OutputState }

func (IpsecServerArrayOutput) ElementType added in v3.20.0

func (IpsecServerArrayOutput) ElementType() reflect.Type

func (IpsecServerArrayOutput) Index added in v3.20.0

func (IpsecServerArrayOutput) ToIpsecServerArrayOutput added in v3.20.0

func (o IpsecServerArrayOutput) ToIpsecServerArrayOutput() IpsecServerArrayOutput

func (IpsecServerArrayOutput) ToIpsecServerArrayOutputWithContext added in v3.20.0

func (o IpsecServerArrayOutput) ToIpsecServerArrayOutputWithContext(ctx context.Context) IpsecServerArrayOutput

type IpsecServerIkeConfig added in v3.20.0

type IpsecServerIkeConfig struct {
	// The authentication algorithm that is used in Phase 1 negotiations. Default value: `sha1`.
	IkeAuthAlg *string `pulumi:"ikeAuthAlg"`
	// The encryption algorithm that is used in Phase 1 negotiations. Default value: `aes`.
	IkeEncAlg *string `pulumi:"ikeEncAlg"`
	// IkeLifetime: the SA lifetime determined by Phase 1 negotiations. Valid values: `0` to `86400`. Default value: `86400`. Unit: `seconds`.
	IkeLifetime *int `pulumi:"ikeLifetime"`
	// The IKE negotiation mode. Default value: `main`.
	IkeMode *string `pulumi:"ikeMode"`
	// The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: `group2`.
	IkePfs *string `pulumi:"ikePfs"`
	// The IKE version. Valid values: `ikev1` and `ikev2`. Default value: `ikev2`.
	IkeVersion *string `pulumi:"ikeVersion"`
	// The identifier of the IPsec server. The value can be a fully qualified domain name (FQDN) or an IP address. The default value is the public IP address of the VPN gateway.
	LocalId *string `pulumi:"localId"`
	// The identifier of the customer gateway. The value can be an FQDN or an IP address. By default, this parameter is not specified.
	RemoteId *string `pulumi:"remoteId"`
}

type IpsecServerIkeConfigArgs added in v3.20.0

type IpsecServerIkeConfigArgs struct {
	// The authentication algorithm that is used in Phase 1 negotiations. Default value: `sha1`.
	IkeAuthAlg pulumi.StringPtrInput `pulumi:"ikeAuthAlg"`
	// The encryption algorithm that is used in Phase 1 negotiations. Default value: `aes`.
	IkeEncAlg pulumi.StringPtrInput `pulumi:"ikeEncAlg"`
	// IkeLifetime: the SA lifetime determined by Phase 1 negotiations. Valid values: `0` to `86400`. Default value: `86400`. Unit: `seconds`.
	IkeLifetime pulumi.IntPtrInput `pulumi:"ikeLifetime"`
	// The IKE negotiation mode. Default value: `main`.
	IkeMode pulumi.StringPtrInput `pulumi:"ikeMode"`
	// The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: `group2`.
	IkePfs pulumi.StringPtrInput `pulumi:"ikePfs"`
	// The IKE version. Valid values: `ikev1` and `ikev2`. Default value: `ikev2`.
	IkeVersion pulumi.StringPtrInput `pulumi:"ikeVersion"`
	// The identifier of the IPsec server. The value can be a fully qualified domain name (FQDN) or an IP address. The default value is the public IP address of the VPN gateway.
	LocalId pulumi.StringPtrInput `pulumi:"localId"`
	// The identifier of the customer gateway. The value can be an FQDN or an IP address. By default, this parameter is not specified.
	RemoteId pulumi.StringPtrInput `pulumi:"remoteId"`
}

func (IpsecServerIkeConfigArgs) ElementType added in v3.20.0

func (IpsecServerIkeConfigArgs) ElementType() reflect.Type

func (IpsecServerIkeConfigArgs) ToIpsecServerIkeConfigOutput added in v3.20.0

func (i IpsecServerIkeConfigArgs) ToIpsecServerIkeConfigOutput() IpsecServerIkeConfigOutput

func (IpsecServerIkeConfigArgs) ToIpsecServerIkeConfigOutputWithContext added in v3.20.0

func (i IpsecServerIkeConfigArgs) ToIpsecServerIkeConfigOutputWithContext(ctx context.Context) IpsecServerIkeConfigOutput

type IpsecServerIkeConfigArray added in v3.20.0

type IpsecServerIkeConfigArray []IpsecServerIkeConfigInput

func (IpsecServerIkeConfigArray) ElementType added in v3.20.0

func (IpsecServerIkeConfigArray) ElementType() reflect.Type

func (IpsecServerIkeConfigArray) ToIpsecServerIkeConfigArrayOutput added in v3.20.0

func (i IpsecServerIkeConfigArray) ToIpsecServerIkeConfigArrayOutput() IpsecServerIkeConfigArrayOutput

func (IpsecServerIkeConfigArray) ToIpsecServerIkeConfigArrayOutputWithContext added in v3.20.0

func (i IpsecServerIkeConfigArray) ToIpsecServerIkeConfigArrayOutputWithContext(ctx context.Context) IpsecServerIkeConfigArrayOutput

type IpsecServerIkeConfigArrayInput added in v3.20.0

type IpsecServerIkeConfigArrayInput interface {
	pulumi.Input

	ToIpsecServerIkeConfigArrayOutput() IpsecServerIkeConfigArrayOutput
	ToIpsecServerIkeConfigArrayOutputWithContext(context.Context) IpsecServerIkeConfigArrayOutput
}

IpsecServerIkeConfigArrayInput is an input type that accepts IpsecServerIkeConfigArray and IpsecServerIkeConfigArrayOutput values. You can construct a concrete instance of `IpsecServerIkeConfigArrayInput` via:

IpsecServerIkeConfigArray{ IpsecServerIkeConfigArgs{...} }

type IpsecServerIkeConfigArrayOutput added in v3.20.0

type IpsecServerIkeConfigArrayOutput struct{ *pulumi.OutputState }

func (IpsecServerIkeConfigArrayOutput) ElementType added in v3.20.0

func (IpsecServerIkeConfigArrayOutput) Index added in v3.20.0

func (IpsecServerIkeConfigArrayOutput) ToIpsecServerIkeConfigArrayOutput added in v3.20.0

func (o IpsecServerIkeConfigArrayOutput) ToIpsecServerIkeConfigArrayOutput() IpsecServerIkeConfigArrayOutput

func (IpsecServerIkeConfigArrayOutput) ToIpsecServerIkeConfigArrayOutputWithContext added in v3.20.0

func (o IpsecServerIkeConfigArrayOutput) ToIpsecServerIkeConfigArrayOutputWithContext(ctx context.Context) IpsecServerIkeConfigArrayOutput

type IpsecServerIkeConfigInput added in v3.20.0

type IpsecServerIkeConfigInput interface {
	pulumi.Input

	ToIpsecServerIkeConfigOutput() IpsecServerIkeConfigOutput
	ToIpsecServerIkeConfigOutputWithContext(context.Context) IpsecServerIkeConfigOutput
}

IpsecServerIkeConfigInput is an input type that accepts IpsecServerIkeConfigArgs and IpsecServerIkeConfigOutput values. You can construct a concrete instance of `IpsecServerIkeConfigInput` via:

IpsecServerIkeConfigArgs{...}

type IpsecServerIkeConfigOutput added in v3.20.0

type IpsecServerIkeConfigOutput struct{ *pulumi.OutputState }

func (IpsecServerIkeConfigOutput) ElementType added in v3.20.0

func (IpsecServerIkeConfigOutput) ElementType() reflect.Type

func (IpsecServerIkeConfigOutput) IkeAuthAlg added in v3.20.0

The authentication algorithm that is used in Phase 1 negotiations. Default value: `sha1`.

func (IpsecServerIkeConfigOutput) IkeEncAlg added in v3.20.0

The encryption algorithm that is used in Phase 1 negotiations. Default value: `aes`.

func (IpsecServerIkeConfigOutput) IkeLifetime added in v3.20.0

IkeLifetime: the SA lifetime determined by Phase 1 negotiations. Valid values: `0` to `86400`. Default value: `86400`. Unit: `seconds`.

func (IpsecServerIkeConfigOutput) IkeMode added in v3.20.0

The IKE negotiation mode. Default value: `main`.

func (IpsecServerIkeConfigOutput) IkePfs added in v3.20.0

The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: `group2`.

func (IpsecServerIkeConfigOutput) IkeVersion added in v3.20.0

The IKE version. Valid values: `ikev1` and `ikev2`. Default value: `ikev2`.

func (IpsecServerIkeConfigOutput) LocalId added in v3.20.0

The identifier of the IPsec server. The value can be a fully qualified domain name (FQDN) or an IP address. The default value is the public IP address of the VPN gateway.

func (IpsecServerIkeConfigOutput) RemoteId added in v3.20.0

The identifier of the customer gateway. The value can be an FQDN or an IP address. By default, this parameter is not specified.

func (IpsecServerIkeConfigOutput) ToIpsecServerIkeConfigOutput added in v3.20.0

func (o IpsecServerIkeConfigOutput) ToIpsecServerIkeConfigOutput() IpsecServerIkeConfigOutput

func (IpsecServerIkeConfigOutput) ToIpsecServerIkeConfigOutputWithContext added in v3.20.0

func (o IpsecServerIkeConfigOutput) ToIpsecServerIkeConfigOutputWithContext(ctx context.Context) IpsecServerIkeConfigOutput

type IpsecServerInput added in v3.20.0

type IpsecServerInput interface {
	pulumi.Input

	ToIpsecServerOutput() IpsecServerOutput
	ToIpsecServerOutputWithContext(ctx context.Context) IpsecServerOutput
}

type IpsecServerIpsecConfig added in v3.20.0

type IpsecServerIpsecConfig struct {
	// The authentication algorithm that is used in Phase 2 negotiations. Default value: `sha1`.
	IpsecAuthAlg *string `pulumi:"ipsecAuthAlg"`
	// The encryption algorithm that is used in Phase 2 negotiations. Default value: `aes`.
	IpsecEncAlg *string `pulumi:"ipsecEncAlg"`
	// The SA lifetime determined by Phase 2 negotiations. Valid values: `0` to `86400`. Default value: `86400`. Unit: `seconds`.
	IpsecLifetime *int `pulumi:"ipsecLifetime"`
	// Forwards packets of all protocols. The Diffie-Hellman key exchange algorithm used in Phase 2 negotiations. Default value: `group2`.
	IpsecPfs *string `pulumi:"ipsecPfs"`
}

type IpsecServerIpsecConfigArgs added in v3.20.0

type IpsecServerIpsecConfigArgs struct {
	// The authentication algorithm that is used in Phase 2 negotiations. Default value: `sha1`.
	IpsecAuthAlg pulumi.StringPtrInput `pulumi:"ipsecAuthAlg"`
	// The encryption algorithm that is used in Phase 2 negotiations. Default value: `aes`.
	IpsecEncAlg pulumi.StringPtrInput `pulumi:"ipsecEncAlg"`
	// The SA lifetime determined by Phase 2 negotiations. Valid values: `0` to `86400`. Default value: `86400`. Unit: `seconds`.
	IpsecLifetime pulumi.IntPtrInput `pulumi:"ipsecLifetime"`
	// Forwards packets of all protocols. The Diffie-Hellman key exchange algorithm used in Phase 2 negotiations. Default value: `group2`.
	IpsecPfs pulumi.StringPtrInput `pulumi:"ipsecPfs"`
}

func (IpsecServerIpsecConfigArgs) ElementType added in v3.20.0

func (IpsecServerIpsecConfigArgs) ElementType() reflect.Type

func (IpsecServerIpsecConfigArgs) ToIpsecServerIpsecConfigOutput added in v3.20.0

func (i IpsecServerIpsecConfigArgs) ToIpsecServerIpsecConfigOutput() IpsecServerIpsecConfigOutput

func (IpsecServerIpsecConfigArgs) ToIpsecServerIpsecConfigOutputWithContext added in v3.20.0

func (i IpsecServerIpsecConfigArgs) ToIpsecServerIpsecConfigOutputWithContext(ctx context.Context) IpsecServerIpsecConfigOutput

type IpsecServerIpsecConfigArray added in v3.20.0

type IpsecServerIpsecConfigArray []IpsecServerIpsecConfigInput

func (IpsecServerIpsecConfigArray) ElementType added in v3.20.0

func (IpsecServerIpsecConfigArray) ToIpsecServerIpsecConfigArrayOutput added in v3.20.0

func (i IpsecServerIpsecConfigArray) ToIpsecServerIpsecConfigArrayOutput() IpsecServerIpsecConfigArrayOutput

func (IpsecServerIpsecConfigArray) ToIpsecServerIpsecConfigArrayOutputWithContext added in v3.20.0

func (i IpsecServerIpsecConfigArray) ToIpsecServerIpsecConfigArrayOutputWithContext(ctx context.Context) IpsecServerIpsecConfigArrayOutput

type IpsecServerIpsecConfigArrayInput added in v3.20.0

type IpsecServerIpsecConfigArrayInput interface {
	pulumi.Input

	ToIpsecServerIpsecConfigArrayOutput() IpsecServerIpsecConfigArrayOutput
	ToIpsecServerIpsecConfigArrayOutputWithContext(context.Context) IpsecServerIpsecConfigArrayOutput
}

IpsecServerIpsecConfigArrayInput is an input type that accepts IpsecServerIpsecConfigArray and IpsecServerIpsecConfigArrayOutput values. You can construct a concrete instance of `IpsecServerIpsecConfigArrayInput` via:

IpsecServerIpsecConfigArray{ IpsecServerIpsecConfigArgs{...} }

type IpsecServerIpsecConfigArrayOutput added in v3.20.0

type IpsecServerIpsecConfigArrayOutput struct{ *pulumi.OutputState }

func (IpsecServerIpsecConfigArrayOutput) ElementType added in v3.20.0

func (IpsecServerIpsecConfigArrayOutput) Index added in v3.20.0

func (IpsecServerIpsecConfigArrayOutput) ToIpsecServerIpsecConfigArrayOutput added in v3.20.0

func (o IpsecServerIpsecConfigArrayOutput) ToIpsecServerIpsecConfigArrayOutput() IpsecServerIpsecConfigArrayOutput

func (IpsecServerIpsecConfigArrayOutput) ToIpsecServerIpsecConfigArrayOutputWithContext added in v3.20.0

func (o IpsecServerIpsecConfigArrayOutput) ToIpsecServerIpsecConfigArrayOutputWithContext(ctx context.Context) IpsecServerIpsecConfigArrayOutput

type IpsecServerIpsecConfigInput added in v3.20.0

type IpsecServerIpsecConfigInput interface {
	pulumi.Input

	ToIpsecServerIpsecConfigOutput() IpsecServerIpsecConfigOutput
	ToIpsecServerIpsecConfigOutputWithContext(context.Context) IpsecServerIpsecConfigOutput
}

IpsecServerIpsecConfigInput is an input type that accepts IpsecServerIpsecConfigArgs and IpsecServerIpsecConfigOutput values. You can construct a concrete instance of `IpsecServerIpsecConfigInput` via:

IpsecServerIpsecConfigArgs{...}

type IpsecServerIpsecConfigOutput added in v3.20.0

type IpsecServerIpsecConfigOutput struct{ *pulumi.OutputState }

func (IpsecServerIpsecConfigOutput) ElementType added in v3.20.0

func (IpsecServerIpsecConfigOutput) IpsecAuthAlg added in v3.20.0

The authentication algorithm that is used in Phase 2 negotiations. Default value: `sha1`.

func (IpsecServerIpsecConfigOutput) IpsecEncAlg added in v3.20.0

The encryption algorithm that is used in Phase 2 negotiations. Default value: `aes`.

func (IpsecServerIpsecConfigOutput) IpsecLifetime added in v3.20.0

The SA lifetime determined by Phase 2 negotiations. Valid values: `0` to `86400`. Default value: `86400`. Unit: `seconds`.

func (IpsecServerIpsecConfigOutput) IpsecPfs added in v3.20.0

Forwards packets of all protocols. The Diffie-Hellman key exchange algorithm used in Phase 2 negotiations. Default value: `group2`.

func (IpsecServerIpsecConfigOutput) ToIpsecServerIpsecConfigOutput added in v3.20.0

func (o IpsecServerIpsecConfigOutput) ToIpsecServerIpsecConfigOutput() IpsecServerIpsecConfigOutput

func (IpsecServerIpsecConfigOutput) ToIpsecServerIpsecConfigOutputWithContext added in v3.20.0

func (o IpsecServerIpsecConfigOutput) ToIpsecServerIpsecConfigOutputWithContext(ctx context.Context) IpsecServerIpsecConfigOutput

type IpsecServerMap added in v3.20.0

type IpsecServerMap map[string]IpsecServerInput

func (IpsecServerMap) ElementType added in v3.20.0

func (IpsecServerMap) ElementType() reflect.Type

func (IpsecServerMap) ToIpsecServerMapOutput added in v3.20.0

func (i IpsecServerMap) ToIpsecServerMapOutput() IpsecServerMapOutput

func (IpsecServerMap) ToIpsecServerMapOutputWithContext added in v3.20.0

func (i IpsecServerMap) ToIpsecServerMapOutputWithContext(ctx context.Context) IpsecServerMapOutput

type IpsecServerMapInput added in v3.20.0

type IpsecServerMapInput interface {
	pulumi.Input

	ToIpsecServerMapOutput() IpsecServerMapOutput
	ToIpsecServerMapOutputWithContext(context.Context) IpsecServerMapOutput
}

IpsecServerMapInput is an input type that accepts IpsecServerMap and IpsecServerMapOutput values. You can construct a concrete instance of `IpsecServerMapInput` via:

IpsecServerMap{ "key": IpsecServerArgs{...} }

type IpsecServerMapOutput added in v3.20.0

type IpsecServerMapOutput struct{ *pulumi.OutputState }

func (IpsecServerMapOutput) ElementType added in v3.20.0

func (IpsecServerMapOutput) ElementType() reflect.Type

func (IpsecServerMapOutput) MapIndex added in v3.20.0

func (IpsecServerMapOutput) ToIpsecServerMapOutput added in v3.20.0

func (o IpsecServerMapOutput) ToIpsecServerMapOutput() IpsecServerMapOutput

func (IpsecServerMapOutput) ToIpsecServerMapOutputWithContext added in v3.20.0

func (o IpsecServerMapOutput) ToIpsecServerMapOutputWithContext(ctx context.Context) IpsecServerMapOutput

type IpsecServerOutput added in v3.20.0

type IpsecServerOutput struct{ *pulumi.OutputState }

func (IpsecServerOutput) ElementType added in v3.20.0

func (IpsecServerOutput) ElementType() reflect.Type

func (IpsecServerOutput) ToIpsecServerOutput added in v3.20.0

func (o IpsecServerOutput) ToIpsecServerOutput() IpsecServerOutput

func (IpsecServerOutput) ToIpsecServerOutputWithContext added in v3.20.0

func (o IpsecServerOutput) ToIpsecServerOutputWithContext(ctx context.Context) IpsecServerOutput

type IpsecServerState added in v3.20.0

type IpsecServerState struct {
	// The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.
	ClientIpPool pulumi.StringPtrInput
	// The dry run.
	DryRun pulumi.BoolPtrInput
	// Specifies whether you want the configuration to immediately take effect.
	EffectImmediately pulumi.BoolPtrInput
	// The configuration of Phase 1 negotiations. See the following `Block ikeConfig`.
	IkeConfigs IpsecServerIkeConfigArrayInput
	// The configuration of Phase 2 negotiations. See the following `Block ipsecConfig`.
	IpsecConfigs IpsecServerIpsecConfigArrayInput
	// The name of the IPsec server. The name must be `2` to `128` characters in length, and can contain digits, hyphens (-), and underscores (_). It must start with a letter.
	IpsecServerName pulumi.StringPtrInput
	// The local CIDR block. It refers to the CIDR block of the virtual private cloud (VPC) that is used to connect with the client. Separate multiple CIDR blocks with commas (,). Example: `192.168.1.0/24,192.168.2.0/24`.
	LocalSubnet pulumi.StringPtrInput
	// The pre-shared key. The pre-shared key is used to authenticate the VPN gateway and the client. By default, the system generates a random string that is 16 bits in length. You can also specify the pre-shared key. It can contain at most 100 characters.
	Psk pulumi.StringPtrInput
	// Whether to enable the pre-shared key authentication method. The value is only `true`, which indicates that the pre-shared key authentication method is enabled.
	PskEnabled pulumi.BoolPtrInput
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringPtrInput
}

func (IpsecServerState) ElementType added in v3.20.0

func (IpsecServerState) ElementType() reflect.Type

type PbrRouteEntry added in v3.20.0

type PbrRouteEntry struct {
	pulumi.CustomResourceState

	// The next hop of the policy-based route.
	NextHop pulumi.StringOutput `pulumi:"nextHop"`
	// Whether to issue the destination route to the VPC.
	PublishVpc pulumi.BoolOutput `pulumi:"publishVpc"`
	// The destination CIDR block of the policy-based route.
	RouteDest pulumi.StringOutput `pulumi:"routeDest"`
	// The source CIDR block of the policy-based route.
	RouteSource pulumi.StringOutput `pulumi:"routeSource"`
	// The status of the vpn pbr route entry.
	Status pulumi.StringOutput `pulumi:"status"`
	// The ID of the vpn gateway.
	VpnGatewayId pulumi.StringOutput `pulumi:"vpnGatewayId"`
	// The weight of the policy-based route. Valid values: 0 and 100.
	Weight pulumi.IntOutput `pulumi:"weight"`
}

Provides a VPN Pbr Route Entry resource.

> **NOTE:** Available in 1.162.0+.

For information about VPN Pbr Route Entry and how to use it, see [What is VPN Pbr Route Entry](https://www.alibabacloud.com/help/en/doc-detail/127248.html).

## Example Usage

Basic Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		name := "tfacc"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		defaultGateways, err := vpn.GetGateways(ctx, nil, nil)
		if err != nil {
			return err
		}
		defaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, "defaultCustomerGateway", &vpn.CustomerGatewayArgs{
			IpAddress: pulumi.String("192.168.1.1"),
		})
		if err != nil {
			return err
		}
		defaultConnection, err := vpn.NewConnection(ctx, "defaultConnection", &vpn.ConnectionArgs{
			CustomerGatewayId: defaultCustomerGateway.ID(),
			VpnGatewayId:      pulumi.String(defaultGateways.Ids[0]),
			LocalSubnets: pulumi.StringArray{
				pulumi.String("192.168.2.0/24"),
			},
			RemoteSubnets: pulumi.StringArray{
				pulumi.String("192.168.3.0/24"),
			},
		})
		if err != nil {
			return err
		}
		_, err = vpn.NewPbrRouteEntry(ctx, "defaultPbrRouteEntry", &vpn.PbrRouteEntryArgs{
			VpnGatewayId: pulumi.String(defaultGateways.Ids[0]),
			RouteSource:  pulumi.String("192.168.1.0/24"),
			RouteDest:    pulumi.String("10.0.0.0/24"),
			NextHop:      defaultConnection.ID(),
			Weight:       pulumi.Int(0),
			PublishVpc:   pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

VPN Pbr route entry can be imported using the id, e.g.

```sh

$ pulumi import alicloud:vpn/pbrRouteEntry:PbrRouteEntry example <vpn_gateway_id>:<next_hop>:<route_source>:<route_dest>

```

func GetPbrRouteEntry added in v3.20.0

func GetPbrRouteEntry(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PbrRouteEntryState, opts ...pulumi.ResourceOption) (*PbrRouteEntry, error)

GetPbrRouteEntry gets an existing PbrRouteEntry resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewPbrRouteEntry added in v3.20.0

func NewPbrRouteEntry(ctx *pulumi.Context,
	name string, args *PbrRouteEntryArgs, opts ...pulumi.ResourceOption) (*PbrRouteEntry, error)

NewPbrRouteEntry registers a new resource with the given unique name, arguments, and options.

func (*PbrRouteEntry) ElementType added in v3.20.0

func (*PbrRouteEntry) ElementType() reflect.Type

func (*PbrRouteEntry) ToPbrRouteEntryOutput added in v3.20.0

func (i *PbrRouteEntry) ToPbrRouteEntryOutput() PbrRouteEntryOutput

func (*PbrRouteEntry) ToPbrRouteEntryOutputWithContext added in v3.20.0

func (i *PbrRouteEntry) ToPbrRouteEntryOutputWithContext(ctx context.Context) PbrRouteEntryOutput

type PbrRouteEntryArgs added in v3.20.0

type PbrRouteEntryArgs struct {
	// The next hop of the policy-based route.
	NextHop pulumi.StringInput
	// Whether to issue the destination route to the VPC.
	PublishVpc pulumi.BoolInput
	// The destination CIDR block of the policy-based route.
	RouteDest pulumi.StringInput
	// The source CIDR block of the policy-based route.
	RouteSource pulumi.StringInput
	// The ID of the vpn gateway.
	VpnGatewayId pulumi.StringInput
	// The weight of the policy-based route. Valid values: 0 and 100.
	Weight pulumi.IntInput
}

The set of arguments for constructing a PbrRouteEntry resource.

func (PbrRouteEntryArgs) ElementType added in v3.20.0

func (PbrRouteEntryArgs) ElementType() reflect.Type

type PbrRouteEntryArray added in v3.20.0

type PbrRouteEntryArray []PbrRouteEntryInput

func (PbrRouteEntryArray) ElementType added in v3.20.0

func (PbrRouteEntryArray) ElementType() reflect.Type

func (PbrRouteEntryArray) ToPbrRouteEntryArrayOutput added in v3.20.0

func (i PbrRouteEntryArray) ToPbrRouteEntryArrayOutput() PbrRouteEntryArrayOutput

func (PbrRouteEntryArray) ToPbrRouteEntryArrayOutputWithContext added in v3.20.0

func (i PbrRouteEntryArray) ToPbrRouteEntryArrayOutputWithContext(ctx context.Context) PbrRouteEntryArrayOutput

type PbrRouteEntryArrayInput added in v3.20.0

type PbrRouteEntryArrayInput interface {
	pulumi.Input

	ToPbrRouteEntryArrayOutput() PbrRouteEntryArrayOutput
	ToPbrRouteEntryArrayOutputWithContext(context.Context) PbrRouteEntryArrayOutput
}

PbrRouteEntryArrayInput is an input type that accepts PbrRouteEntryArray and PbrRouteEntryArrayOutput values. You can construct a concrete instance of `PbrRouteEntryArrayInput` via:

PbrRouteEntryArray{ PbrRouteEntryArgs{...} }

type PbrRouteEntryArrayOutput added in v3.20.0

type PbrRouteEntryArrayOutput struct{ *pulumi.OutputState }

func (PbrRouteEntryArrayOutput) ElementType added in v3.20.0

func (PbrRouteEntryArrayOutput) ElementType() reflect.Type

func (PbrRouteEntryArrayOutput) Index added in v3.20.0

func (PbrRouteEntryArrayOutput) ToPbrRouteEntryArrayOutput added in v3.20.0

func (o PbrRouteEntryArrayOutput) ToPbrRouteEntryArrayOutput() PbrRouteEntryArrayOutput

func (PbrRouteEntryArrayOutput) ToPbrRouteEntryArrayOutputWithContext added in v3.20.0

func (o PbrRouteEntryArrayOutput) ToPbrRouteEntryArrayOutputWithContext(ctx context.Context) PbrRouteEntryArrayOutput

type PbrRouteEntryInput added in v3.20.0

type PbrRouteEntryInput interface {
	pulumi.Input

	ToPbrRouteEntryOutput() PbrRouteEntryOutput
	ToPbrRouteEntryOutputWithContext(ctx context.Context) PbrRouteEntryOutput
}

type PbrRouteEntryMap added in v3.20.0

type PbrRouteEntryMap map[string]PbrRouteEntryInput

func (PbrRouteEntryMap) ElementType added in v3.20.0

func (PbrRouteEntryMap) ElementType() reflect.Type

func (PbrRouteEntryMap) ToPbrRouteEntryMapOutput added in v3.20.0

func (i PbrRouteEntryMap) ToPbrRouteEntryMapOutput() PbrRouteEntryMapOutput

func (PbrRouteEntryMap) ToPbrRouteEntryMapOutputWithContext added in v3.20.0

func (i PbrRouteEntryMap) ToPbrRouteEntryMapOutputWithContext(ctx context.Context) PbrRouteEntryMapOutput

type PbrRouteEntryMapInput added in v3.20.0

type PbrRouteEntryMapInput interface {
	pulumi.Input

	ToPbrRouteEntryMapOutput() PbrRouteEntryMapOutput
	ToPbrRouteEntryMapOutputWithContext(context.Context) PbrRouteEntryMapOutput
}

PbrRouteEntryMapInput is an input type that accepts PbrRouteEntryMap and PbrRouteEntryMapOutput values. You can construct a concrete instance of `PbrRouteEntryMapInput` via:

PbrRouteEntryMap{ "key": PbrRouteEntryArgs{...} }

type PbrRouteEntryMapOutput added in v3.20.0

type PbrRouteEntryMapOutput struct{ *pulumi.OutputState }

func (PbrRouteEntryMapOutput) ElementType added in v3.20.0

func (PbrRouteEntryMapOutput) ElementType() reflect.Type

func (PbrRouteEntryMapOutput) MapIndex added in v3.20.0

func (PbrRouteEntryMapOutput) ToPbrRouteEntryMapOutput added in v3.20.0

func (o PbrRouteEntryMapOutput) ToPbrRouteEntryMapOutput() PbrRouteEntryMapOutput

func (PbrRouteEntryMapOutput) ToPbrRouteEntryMapOutputWithContext added in v3.20.0

func (o PbrRouteEntryMapOutput) ToPbrRouteEntryMapOutputWithContext(ctx context.Context) PbrRouteEntryMapOutput

type PbrRouteEntryOutput added in v3.20.0

type PbrRouteEntryOutput struct{ *pulumi.OutputState }

func (PbrRouteEntryOutput) ElementType added in v3.20.0

func (PbrRouteEntryOutput) ElementType() reflect.Type

func (PbrRouteEntryOutput) ToPbrRouteEntryOutput added in v3.20.0

func (o PbrRouteEntryOutput) ToPbrRouteEntryOutput() PbrRouteEntryOutput

func (PbrRouteEntryOutput) ToPbrRouteEntryOutputWithContext added in v3.20.0

func (o PbrRouteEntryOutput) ToPbrRouteEntryOutputWithContext(ctx context.Context) PbrRouteEntryOutput

type PbrRouteEntryState added in v3.20.0

type PbrRouteEntryState struct {
	// The next hop of the policy-based route.
	NextHop pulumi.StringPtrInput
	// Whether to issue the destination route to the VPC.
	PublishVpc pulumi.BoolPtrInput
	// The destination CIDR block of the policy-based route.
	RouteDest pulumi.StringPtrInput
	// The source CIDR block of the policy-based route.
	RouteSource pulumi.StringPtrInput
	// The status of the vpn pbr route entry.
	Status pulumi.StringPtrInput
	// The ID of the vpn gateway.
	VpnGatewayId pulumi.StringPtrInput
	// The weight of the policy-based route. Valid values: 0 and 100.
	Weight pulumi.IntPtrInput
}

func (PbrRouteEntryState) ElementType added in v3.20.0

func (PbrRouteEntryState) ElementType() reflect.Type

type RouteEntry

type RouteEntry struct {
	pulumi.CustomResourceState

	// The next hop of the destination route.
	NextHop pulumi.StringOutput `pulumi:"nextHop"`
	// Whether to issue the destination route to the VPC.
	PublishVpc pulumi.BoolOutput `pulumi:"publishVpc"`
	// The destination network segment of the destination route.
	RouteDest pulumi.StringOutput `pulumi:"routeDest"`
	// (Available in 1.161.0+) The type of the vpn route entry.
	RouteEntryType pulumi.StringOutput `pulumi:"routeEntryType"`
	// (Available in 1.161.0+) The status of the vpn route entry.
	Status pulumi.StringOutput `pulumi:"status"`
	// The id of the vpn gateway.
	VpnGatewayId pulumi.StringOutput `pulumi:"vpnGatewayId"`
	// The value should be 0 or 100.
	Weight pulumi.IntOutput `pulumi:"weight"`
}

## Example Usage

Basic Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		defaultZones, err := alicloud.GetZones(ctx, &GetZonesArgs{
			AvailableDiskCategory:     pulumi.StringRef("cloud_efficiency"),
			AvailableResourceCreation: pulumi.StringRef("VSwitch"),
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			CidrBlock: pulumi.String("10.1.0.0/21"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:     defaultNetwork.ID(),
			CidrBlock: pulumi.String("10.1.0.0/24"),
			ZoneId:    pulumi.String(defaultZones.Zones[0].Id),
		})
		if err != nil {
			return err
		}
		defaultGateway, err := vpn.NewGateway(ctx, "defaultGateway", &vpn.GatewayArgs{
			VpcId:              defaultNetwork.ID(),
			Bandwidth:          pulumi.Int(10),
			InstanceChargeType: pulumi.String("PayByTraffic"),
			EnableSsl:          pulumi.Bool(false),
			VswitchId:          defaultSwitch.ID(),
		})
		if err != nil {
			return err
		}
		defaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, "defaultCustomerGateway", &vpn.CustomerGatewayArgs{
			IpAddress: pulumi.String("192.168.1.1"),
		})
		if err != nil {
			return err
		}
		defaultConnection, err := vpn.NewConnection(ctx, "defaultConnection", &vpn.ConnectionArgs{
			CustomerGatewayId: defaultCustomerGateway.ID(),
			VpnGatewayId:      defaultGateway.ID(),
			LocalSubnets: pulumi.StringArray{
				pulumi.String("192.168.2.0/24"),
			},
			RemoteSubnets: pulumi.StringArray{
				pulumi.String("192.168.3.0/24"),
			},
		})
		if err != nil {
			return err
		}
		_, err = vpn.NewRouteEntry(ctx, "defaultRouteEntry", &vpn.RouteEntryArgs{
			VpnGatewayId: defaultGateway.ID(),
			RouteDest:    pulumi.String("10.0.0.0/24"),
			NextHop:      defaultConnection.ID(),
			Weight:       pulumi.Int(0),
			PublishVpc:   pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

VPN route entry can be imported using the id(VpnGatewayId +":"+ NextHop +":"+ RouteDest), e.g.

```sh

$ pulumi import alicloud:vpn/routeEntry:RouteEntry example vpn-abc123456:vco-abc123456:10.0.0.10/24

```

func GetRouteEntry

func GetRouteEntry(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RouteEntryState, opts ...pulumi.ResourceOption) (*RouteEntry, error)

GetRouteEntry gets an existing RouteEntry resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewRouteEntry

func NewRouteEntry(ctx *pulumi.Context,
	name string, args *RouteEntryArgs, opts ...pulumi.ResourceOption) (*RouteEntry, error)

NewRouteEntry registers a new resource with the given unique name, arguments, and options.

func (*RouteEntry) ElementType

func (*RouteEntry) ElementType() reflect.Type

func (*RouteEntry) ToRouteEntryOutput

func (i *RouteEntry) ToRouteEntryOutput() RouteEntryOutput

func (*RouteEntry) ToRouteEntryOutputWithContext

func (i *RouteEntry) ToRouteEntryOutputWithContext(ctx context.Context) RouteEntryOutput

type RouteEntryArgs

type RouteEntryArgs struct {
	// The next hop of the destination route.
	NextHop pulumi.StringInput
	// Whether to issue the destination route to the VPC.
	PublishVpc pulumi.BoolInput
	// The destination network segment of the destination route.
	RouteDest pulumi.StringInput
	// The id of the vpn gateway.
	VpnGatewayId pulumi.StringInput
	// The value should be 0 or 100.
	Weight pulumi.IntInput
}

The set of arguments for constructing a RouteEntry resource.

func (RouteEntryArgs) ElementType

func (RouteEntryArgs) ElementType() reflect.Type

type RouteEntryArray

type RouteEntryArray []RouteEntryInput

func (RouteEntryArray) ElementType

func (RouteEntryArray) ElementType() reflect.Type

func (RouteEntryArray) ToRouteEntryArrayOutput

func (i RouteEntryArray) ToRouteEntryArrayOutput() RouteEntryArrayOutput

func (RouteEntryArray) ToRouteEntryArrayOutputWithContext

func (i RouteEntryArray) ToRouteEntryArrayOutputWithContext(ctx context.Context) RouteEntryArrayOutput

type RouteEntryArrayInput

type RouteEntryArrayInput interface {
	pulumi.Input

	ToRouteEntryArrayOutput() RouteEntryArrayOutput
	ToRouteEntryArrayOutputWithContext(context.Context) RouteEntryArrayOutput
}

RouteEntryArrayInput is an input type that accepts RouteEntryArray and RouteEntryArrayOutput values. You can construct a concrete instance of `RouteEntryArrayInput` via:

RouteEntryArray{ RouteEntryArgs{...} }

type RouteEntryArrayOutput

type RouteEntryArrayOutput struct{ *pulumi.OutputState }

func (RouteEntryArrayOutput) ElementType

func (RouteEntryArrayOutput) ElementType() reflect.Type

func (RouteEntryArrayOutput) Index

func (RouteEntryArrayOutput) ToRouteEntryArrayOutput

func (o RouteEntryArrayOutput) ToRouteEntryArrayOutput() RouteEntryArrayOutput

func (RouteEntryArrayOutput) ToRouteEntryArrayOutputWithContext

func (o RouteEntryArrayOutput) ToRouteEntryArrayOutputWithContext(ctx context.Context) RouteEntryArrayOutput

type RouteEntryInput

type RouteEntryInput interface {
	pulumi.Input

	ToRouteEntryOutput() RouteEntryOutput
	ToRouteEntryOutputWithContext(ctx context.Context) RouteEntryOutput
}

type RouteEntryMap

type RouteEntryMap map[string]RouteEntryInput

func (RouteEntryMap) ElementType

func (RouteEntryMap) ElementType() reflect.Type

func (RouteEntryMap) ToRouteEntryMapOutput

func (i RouteEntryMap) ToRouteEntryMapOutput() RouteEntryMapOutput

func (RouteEntryMap) ToRouteEntryMapOutputWithContext

func (i RouteEntryMap) ToRouteEntryMapOutputWithContext(ctx context.Context) RouteEntryMapOutput

type RouteEntryMapInput

type RouteEntryMapInput interface {
	pulumi.Input

	ToRouteEntryMapOutput() RouteEntryMapOutput
	ToRouteEntryMapOutputWithContext(context.Context) RouteEntryMapOutput
}

RouteEntryMapInput is an input type that accepts RouteEntryMap and RouteEntryMapOutput values. You can construct a concrete instance of `RouteEntryMapInput` via:

RouteEntryMap{ "key": RouteEntryArgs{...} }

type RouteEntryMapOutput

type RouteEntryMapOutput struct{ *pulumi.OutputState }

func (RouteEntryMapOutput) ElementType

func (RouteEntryMapOutput) ElementType() reflect.Type

func (RouteEntryMapOutput) MapIndex

func (RouteEntryMapOutput) ToRouteEntryMapOutput

func (o RouteEntryMapOutput) ToRouteEntryMapOutput() RouteEntryMapOutput

func (RouteEntryMapOutput) ToRouteEntryMapOutputWithContext

func (o RouteEntryMapOutput) ToRouteEntryMapOutputWithContext(ctx context.Context) RouteEntryMapOutput

type RouteEntryOutput

type RouteEntryOutput struct{ *pulumi.OutputState }

func (RouteEntryOutput) ElementType

func (RouteEntryOutput) ElementType() reflect.Type

func (RouteEntryOutput) ToRouteEntryOutput

func (o RouteEntryOutput) ToRouteEntryOutput() RouteEntryOutput

func (RouteEntryOutput) ToRouteEntryOutputWithContext

func (o RouteEntryOutput) ToRouteEntryOutputWithContext(ctx context.Context) RouteEntryOutput

type RouteEntryState

type RouteEntryState struct {
	// The next hop of the destination route.
	NextHop pulumi.StringPtrInput
	// Whether to issue the destination route to the VPC.
	PublishVpc pulumi.BoolPtrInput
	// The destination network segment of the destination route.
	RouteDest pulumi.StringPtrInput
	// (Available in 1.161.0+) The type of the vpn route entry.
	RouteEntryType pulumi.StringPtrInput
	// (Available in 1.161.0+) The status of the vpn route entry.
	Status pulumi.StringPtrInput
	// The id of the vpn gateway.
	VpnGatewayId pulumi.StringPtrInput
	// The value should be 0 or 100.
	Weight pulumi.IntPtrInput
}

func (RouteEntryState) ElementType

func (RouteEntryState) ElementType() reflect.Type

type SslVpnClientCert

type SslVpnClientCert struct {
	pulumi.CustomResourceState

	// The client ca cert.
	CaCert pulumi.StringOutput `pulumi:"caCert"`
	// The client cert.
	ClientCert pulumi.StringOutput `pulumi:"clientCert"`
	// The vpn client config.
	ClientConfig pulumi.StringOutput `pulumi:"clientConfig"`
	// The client key.
	ClientKey pulumi.StringOutput `pulumi:"clientKey"`
	// The name of the client certificate.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the SSL-VPN server.
	SslVpnServerId pulumi.StringOutput `pulumi:"sslVpnServerId"`
	// The status of the client certificate.
	Status pulumi.StringOutput `pulumi:"status"`
}

## Example Usage

Basic Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := vpn.NewSslVpnClientCert(ctx, "foo", &vpn.SslVpnClientCertArgs{
			SslVpnServerId: pulumi.String("ssl_vpn_server_fake_id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

SSL-VPN client certificates can be imported using the id, e.g.

```sh

$ pulumi import alicloud:vpn/sslVpnClientCert:SslVpnClientCert example vsc-abc123456

```

func GetSslVpnClientCert

func GetSslVpnClientCert(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SslVpnClientCertState, opts ...pulumi.ResourceOption) (*SslVpnClientCert, error)

GetSslVpnClientCert gets an existing SslVpnClientCert resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSslVpnClientCert

func NewSslVpnClientCert(ctx *pulumi.Context,
	name string, args *SslVpnClientCertArgs, opts ...pulumi.ResourceOption) (*SslVpnClientCert, error)

NewSslVpnClientCert registers a new resource with the given unique name, arguments, and options.

func (*SslVpnClientCert) ElementType

func (*SslVpnClientCert) ElementType() reflect.Type

func (*SslVpnClientCert) ToSslVpnClientCertOutput

func (i *SslVpnClientCert) ToSslVpnClientCertOutput() SslVpnClientCertOutput

func (*SslVpnClientCert) ToSslVpnClientCertOutputWithContext

func (i *SslVpnClientCert) ToSslVpnClientCertOutputWithContext(ctx context.Context) SslVpnClientCertOutput

type SslVpnClientCertArgs

type SslVpnClientCertArgs struct {
	// The name of the client certificate.
	Name pulumi.StringPtrInput
	// The ID of the SSL-VPN server.
	SslVpnServerId pulumi.StringInput
}

The set of arguments for constructing a SslVpnClientCert resource.

func (SslVpnClientCertArgs) ElementType

func (SslVpnClientCertArgs) ElementType() reflect.Type

type SslVpnClientCertArray

type SslVpnClientCertArray []SslVpnClientCertInput

func (SslVpnClientCertArray) ElementType

func (SslVpnClientCertArray) ElementType() reflect.Type

func (SslVpnClientCertArray) ToSslVpnClientCertArrayOutput

func (i SslVpnClientCertArray) ToSslVpnClientCertArrayOutput() SslVpnClientCertArrayOutput

func (SslVpnClientCertArray) ToSslVpnClientCertArrayOutputWithContext

func (i SslVpnClientCertArray) ToSslVpnClientCertArrayOutputWithContext(ctx context.Context) SslVpnClientCertArrayOutput

type SslVpnClientCertArrayInput

type SslVpnClientCertArrayInput interface {
	pulumi.Input

	ToSslVpnClientCertArrayOutput() SslVpnClientCertArrayOutput
	ToSslVpnClientCertArrayOutputWithContext(context.Context) SslVpnClientCertArrayOutput
}

SslVpnClientCertArrayInput is an input type that accepts SslVpnClientCertArray and SslVpnClientCertArrayOutput values. You can construct a concrete instance of `SslVpnClientCertArrayInput` via:

SslVpnClientCertArray{ SslVpnClientCertArgs{...} }

type SslVpnClientCertArrayOutput

type SslVpnClientCertArrayOutput struct{ *pulumi.OutputState }

func (SslVpnClientCertArrayOutput) ElementType

func (SslVpnClientCertArrayOutput) Index

func (SslVpnClientCertArrayOutput) ToSslVpnClientCertArrayOutput

func (o SslVpnClientCertArrayOutput) ToSslVpnClientCertArrayOutput() SslVpnClientCertArrayOutput

func (SslVpnClientCertArrayOutput) ToSslVpnClientCertArrayOutputWithContext

func (o SslVpnClientCertArrayOutput) ToSslVpnClientCertArrayOutputWithContext(ctx context.Context) SslVpnClientCertArrayOutput

type SslVpnClientCertInput

type SslVpnClientCertInput interface {
	pulumi.Input

	ToSslVpnClientCertOutput() SslVpnClientCertOutput
	ToSslVpnClientCertOutputWithContext(ctx context.Context) SslVpnClientCertOutput
}

type SslVpnClientCertMap

type SslVpnClientCertMap map[string]SslVpnClientCertInput

func (SslVpnClientCertMap) ElementType

func (SslVpnClientCertMap) ElementType() reflect.Type

func (SslVpnClientCertMap) ToSslVpnClientCertMapOutput

func (i SslVpnClientCertMap) ToSslVpnClientCertMapOutput() SslVpnClientCertMapOutput

func (SslVpnClientCertMap) ToSslVpnClientCertMapOutputWithContext

func (i SslVpnClientCertMap) ToSslVpnClientCertMapOutputWithContext(ctx context.Context) SslVpnClientCertMapOutput

type SslVpnClientCertMapInput

type SslVpnClientCertMapInput interface {
	pulumi.Input

	ToSslVpnClientCertMapOutput() SslVpnClientCertMapOutput
	ToSslVpnClientCertMapOutputWithContext(context.Context) SslVpnClientCertMapOutput
}

SslVpnClientCertMapInput is an input type that accepts SslVpnClientCertMap and SslVpnClientCertMapOutput values. You can construct a concrete instance of `SslVpnClientCertMapInput` via:

SslVpnClientCertMap{ "key": SslVpnClientCertArgs{...} }

type SslVpnClientCertMapOutput

type SslVpnClientCertMapOutput struct{ *pulumi.OutputState }

func (SslVpnClientCertMapOutput) ElementType

func (SslVpnClientCertMapOutput) ElementType() reflect.Type

func (SslVpnClientCertMapOutput) MapIndex

func (SslVpnClientCertMapOutput) ToSslVpnClientCertMapOutput

func (o SslVpnClientCertMapOutput) ToSslVpnClientCertMapOutput() SslVpnClientCertMapOutput

func (SslVpnClientCertMapOutput) ToSslVpnClientCertMapOutputWithContext

func (o SslVpnClientCertMapOutput) ToSslVpnClientCertMapOutputWithContext(ctx context.Context) SslVpnClientCertMapOutput

type SslVpnClientCertOutput

type SslVpnClientCertOutput struct{ *pulumi.OutputState }

func (SslVpnClientCertOutput) ElementType

func (SslVpnClientCertOutput) ElementType() reflect.Type

func (SslVpnClientCertOutput) ToSslVpnClientCertOutput

func (o SslVpnClientCertOutput) ToSslVpnClientCertOutput() SslVpnClientCertOutput

func (SslVpnClientCertOutput) ToSslVpnClientCertOutputWithContext

func (o SslVpnClientCertOutput) ToSslVpnClientCertOutputWithContext(ctx context.Context) SslVpnClientCertOutput

type SslVpnClientCertState

type SslVpnClientCertState struct {
	// The client ca cert.
	CaCert pulumi.StringPtrInput
	// The client cert.
	ClientCert pulumi.StringPtrInput
	// The vpn client config.
	ClientConfig pulumi.StringPtrInput
	// The client key.
	ClientKey pulumi.StringPtrInput
	// The name of the client certificate.
	Name pulumi.StringPtrInput
	// The ID of the SSL-VPN server.
	SslVpnServerId pulumi.StringPtrInput
	// The status of the client certificate.
	Status pulumi.StringPtrInput
}

func (SslVpnClientCertState) ElementType

func (SslVpnClientCertState) ElementType() reflect.Type

type SslVpnServer

type SslVpnServer struct {
	pulumi.CustomResourceState

	// The encryption algorithm that is used in the SSL-VPN connection. Valid values: `AES-128-CBC`,`AES-192-CBC`,`AES-256-CBC`,`none`. Default value: `AES-128-CBC`.
	// * `AES-128-CBC` - the AES-128-CBC algorithm.
	// * `AES-192-CBC` - the AES-192-CBC algorithm.
	// * `AES-256-CBC` - the AES-256-CBC algorithm.
	Cipher pulumi.StringPtrOutput `pulumi:"cipher"`
	// The CIDR block from which access addresses are allocated to the virtual network interface card of the client.
	ClientIpPool pulumi.StringOutput `pulumi:"clientIpPool"`
	// Specifies whether to enable data compression. Valid values: `true`,`false`. Default value: `false`
	Compress pulumi.BoolPtrOutput `pulumi:"compress"`
	// The number of current connections.
	Connections pulumi.IntOutput `pulumi:"connections"`
	// The internet IP of the SSL-VPN server.
	InternetIp pulumi.StringOutput `pulumi:"internetIp"`
	// The CIDR block to be accessed by the client through the SSL-VPN connection. It supports to set multi CIDRs by comma join ways, like `10.0.1.0/24,10.0.2.0/24,10.0.3.0/24`.
	LocalSubnet pulumi.StringOutput `pulumi:"localSubnet"`
	// The maximum number of connections.
	MaxConnections pulumi.IntOutput `pulumi:"maxConnections"`
	// The name of the SSL-VPN server.
	Name pulumi.StringOutput `pulumi:"name"`
	// The port used by the SSL-VPN server. The default value is `1194`.The following ports cannot be used: [22, 2222, 22222, 9000, 9001, 9002, 7505, 80, 443, 53, 68, 123, 4510, 4560, 500, 4500].
	Port pulumi.IntPtrOutput `pulumi:"port"`
	// The protocol used by the SSL-VPN server. Valid value: UDP(default) |TCP
	Protocol pulumi.StringPtrOutput `pulumi:"protocol"`
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringOutput `pulumi:"vpnGatewayId"`
}

## Example Usage

Basic Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		fooGateway, err := vpn.NewGateway(ctx, "fooGateway", &vpn.GatewayArgs{
			VpcId:              pulumi.String("vpc-fake-id"),
			Bandwidth:          pulumi.Int(10),
			EnableSsl:          pulumi.Bool(true),
			InstanceChargeType: pulumi.String("PostPaid"),
			Description:        pulumi.String("test_create_description"),
		})
		if err != nil {
			return err
		}
		_, err = vpn.NewSslVpnServer(ctx, "fooSslVpnServer", &vpn.SslVpnServerArgs{
			VpnGatewayId: fooGateway.ID(),
			ClientIpPool: pulumi.String("192.168.0.0/16"),
			LocalSubnet:  pulumi.String("172.16.0.0/21"),
			Protocol:     pulumi.String("UDP"),
			Cipher:       pulumi.String("AES-128-CBC"),
			Port:         pulumi.Int(1194),
			Compress:     pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

SSL-VPN server can be imported using the id, e.g.

```sh

$ pulumi import alicloud:vpn/sslVpnServer:SslVpnServer example vss-abc123456

```

func GetSslVpnServer

func GetSslVpnServer(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SslVpnServerState, opts ...pulumi.ResourceOption) (*SslVpnServer, error)

GetSslVpnServer gets an existing SslVpnServer resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSslVpnServer

func NewSslVpnServer(ctx *pulumi.Context,
	name string, args *SslVpnServerArgs, opts ...pulumi.ResourceOption) (*SslVpnServer, error)

NewSslVpnServer registers a new resource with the given unique name, arguments, and options.

func (*SslVpnServer) ElementType

func (*SslVpnServer) ElementType() reflect.Type

func (*SslVpnServer) ToSslVpnServerOutput

func (i *SslVpnServer) ToSslVpnServerOutput() SslVpnServerOutput

func (*SslVpnServer) ToSslVpnServerOutputWithContext

func (i *SslVpnServer) ToSslVpnServerOutputWithContext(ctx context.Context) SslVpnServerOutput

type SslVpnServerArgs

type SslVpnServerArgs struct {
	// The encryption algorithm that is used in the SSL-VPN connection. Valid values: `AES-128-CBC`,`AES-192-CBC`,`AES-256-CBC`,`none`. Default value: `AES-128-CBC`.
	// * `AES-128-CBC` - the AES-128-CBC algorithm.
	// * `AES-192-CBC` - the AES-192-CBC algorithm.
	// * `AES-256-CBC` - the AES-256-CBC algorithm.
	Cipher pulumi.StringPtrInput
	// The CIDR block from which access addresses are allocated to the virtual network interface card of the client.
	ClientIpPool pulumi.StringInput
	// Specifies whether to enable data compression. Valid values: `true`,`false`. Default value: `false`
	Compress pulumi.BoolPtrInput
	// The CIDR block to be accessed by the client through the SSL-VPN connection. It supports to set multi CIDRs by comma join ways, like `10.0.1.0/24,10.0.2.0/24,10.0.3.0/24`.
	LocalSubnet pulumi.StringInput
	// The name of the SSL-VPN server.
	Name pulumi.StringPtrInput
	// The port used by the SSL-VPN server. The default value is `1194`.The following ports cannot be used: [22, 2222, 22222, 9000, 9001, 9002, 7505, 80, 443, 53, 68, 123, 4510, 4560, 500, 4500].
	Port pulumi.IntPtrInput
	// The protocol used by the SSL-VPN server. Valid value: UDP(default) |TCP
	Protocol pulumi.StringPtrInput
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringInput
}

The set of arguments for constructing a SslVpnServer resource.

func (SslVpnServerArgs) ElementType

func (SslVpnServerArgs) ElementType() reflect.Type

type SslVpnServerArray

type SslVpnServerArray []SslVpnServerInput

func (SslVpnServerArray) ElementType

func (SslVpnServerArray) ElementType() reflect.Type

func (SslVpnServerArray) ToSslVpnServerArrayOutput

func (i SslVpnServerArray) ToSslVpnServerArrayOutput() SslVpnServerArrayOutput

func (SslVpnServerArray) ToSslVpnServerArrayOutputWithContext

func (i SslVpnServerArray) ToSslVpnServerArrayOutputWithContext(ctx context.Context) SslVpnServerArrayOutput

type SslVpnServerArrayInput

type SslVpnServerArrayInput interface {
	pulumi.Input

	ToSslVpnServerArrayOutput() SslVpnServerArrayOutput
	ToSslVpnServerArrayOutputWithContext(context.Context) SslVpnServerArrayOutput
}

SslVpnServerArrayInput is an input type that accepts SslVpnServerArray and SslVpnServerArrayOutput values. You can construct a concrete instance of `SslVpnServerArrayInput` via:

SslVpnServerArray{ SslVpnServerArgs{...} }

type SslVpnServerArrayOutput

type SslVpnServerArrayOutput struct{ *pulumi.OutputState }

func (SslVpnServerArrayOutput) ElementType

func (SslVpnServerArrayOutput) ElementType() reflect.Type

func (SslVpnServerArrayOutput) Index

func (SslVpnServerArrayOutput) ToSslVpnServerArrayOutput

func (o SslVpnServerArrayOutput) ToSslVpnServerArrayOutput() SslVpnServerArrayOutput

func (SslVpnServerArrayOutput) ToSslVpnServerArrayOutputWithContext

func (o SslVpnServerArrayOutput) ToSslVpnServerArrayOutputWithContext(ctx context.Context) SslVpnServerArrayOutput

type SslVpnServerInput

type SslVpnServerInput interface {
	pulumi.Input

	ToSslVpnServerOutput() SslVpnServerOutput
	ToSslVpnServerOutputWithContext(ctx context.Context) SslVpnServerOutput
}

type SslVpnServerMap

type SslVpnServerMap map[string]SslVpnServerInput

func (SslVpnServerMap) ElementType

func (SslVpnServerMap) ElementType() reflect.Type

func (SslVpnServerMap) ToSslVpnServerMapOutput

func (i SslVpnServerMap) ToSslVpnServerMapOutput() SslVpnServerMapOutput

func (SslVpnServerMap) ToSslVpnServerMapOutputWithContext

func (i SslVpnServerMap) ToSslVpnServerMapOutputWithContext(ctx context.Context) SslVpnServerMapOutput

type SslVpnServerMapInput

type SslVpnServerMapInput interface {
	pulumi.Input

	ToSslVpnServerMapOutput() SslVpnServerMapOutput
	ToSslVpnServerMapOutputWithContext(context.Context) SslVpnServerMapOutput
}

SslVpnServerMapInput is an input type that accepts SslVpnServerMap and SslVpnServerMapOutput values. You can construct a concrete instance of `SslVpnServerMapInput` via:

SslVpnServerMap{ "key": SslVpnServerArgs{...} }

type SslVpnServerMapOutput

type SslVpnServerMapOutput struct{ *pulumi.OutputState }

func (SslVpnServerMapOutput) ElementType

func (SslVpnServerMapOutput) ElementType() reflect.Type

func (SslVpnServerMapOutput) MapIndex

func (SslVpnServerMapOutput) ToSslVpnServerMapOutput

func (o SslVpnServerMapOutput) ToSslVpnServerMapOutput() SslVpnServerMapOutput

func (SslVpnServerMapOutput) ToSslVpnServerMapOutputWithContext

func (o SslVpnServerMapOutput) ToSslVpnServerMapOutputWithContext(ctx context.Context) SslVpnServerMapOutput

type SslVpnServerOutput

type SslVpnServerOutput struct{ *pulumi.OutputState }

func (SslVpnServerOutput) ElementType

func (SslVpnServerOutput) ElementType() reflect.Type

func (SslVpnServerOutput) ToSslVpnServerOutput

func (o SslVpnServerOutput) ToSslVpnServerOutput() SslVpnServerOutput

func (SslVpnServerOutput) ToSslVpnServerOutputWithContext

func (o SslVpnServerOutput) ToSslVpnServerOutputWithContext(ctx context.Context) SslVpnServerOutput

type SslVpnServerState

type SslVpnServerState struct {
	// The encryption algorithm that is used in the SSL-VPN connection. Valid values: `AES-128-CBC`,`AES-192-CBC`,`AES-256-CBC`,`none`. Default value: `AES-128-CBC`.
	// * `AES-128-CBC` - the AES-128-CBC algorithm.
	// * `AES-192-CBC` - the AES-192-CBC algorithm.
	// * `AES-256-CBC` - the AES-256-CBC algorithm.
	Cipher pulumi.StringPtrInput
	// The CIDR block from which access addresses are allocated to the virtual network interface card of the client.
	ClientIpPool pulumi.StringPtrInput
	// Specifies whether to enable data compression. Valid values: `true`,`false`. Default value: `false`
	Compress pulumi.BoolPtrInput
	// The number of current connections.
	Connections pulumi.IntPtrInput
	// The internet IP of the SSL-VPN server.
	InternetIp pulumi.StringPtrInput
	// The CIDR block to be accessed by the client through the SSL-VPN connection. It supports to set multi CIDRs by comma join ways, like `10.0.1.0/24,10.0.2.0/24,10.0.3.0/24`.
	LocalSubnet pulumi.StringPtrInput
	// The maximum number of connections.
	MaxConnections pulumi.IntPtrInput
	// The name of the SSL-VPN server.
	Name pulumi.StringPtrInput
	// The port used by the SSL-VPN server. The default value is `1194`.The following ports cannot be used: [22, 2222, 22222, 9000, 9001, 9002, 7505, 80, 443, 53, 68, 123, 4510, 4560, 500, 4500].
	Port pulumi.IntPtrInput
	// The protocol used by the SSL-VPN server. Valid value: UDP(default) |TCP
	Protocol pulumi.StringPtrInput
	// The ID of the VPN gateway.
	VpnGatewayId pulumi.StringPtrInput
}

func (SslVpnServerState) ElementType

func (SslVpnServerState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL