github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpnConnection.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package ec2 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Manages a Site-to-Site VPN connection. A Site-to-Site VPN connection is an Internet Protocol security (IPsec) VPN connection between a VPC and an on-premises network. 16 // Any new Site-to-Site VPN connection that you create is an [AWS VPN connection](https://docs.aws.amazon.com/vpn/latest/s2svpn/vpn-categories.html). 17 // 18 // > **Note:** The CIDR blocks in the arguments `tunnel1InsideCidr` and `tunnel2InsideCidr` must have a prefix of /30 and be a part of a specific range. 19 // [Read more about this in the AWS documentation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_VpnTunnelOptionsSpecification.html). 20 // 21 // ## Example Usage 22 // 23 // ### EC2 Transit Gateway 24 // 25 // <!--Start PulumiCodeChooser --> 26 // ```go 27 // package main 28 // 29 // import ( 30 // 31 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 32 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway" 33 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 34 // 35 // ) 36 // 37 // func main() { 38 // pulumi.Run(func(ctx *pulumi.Context) error { 39 // example, err := ec2transitgateway.NewTransitGateway(ctx, "example", nil) 40 // if err != nil { 41 // return err 42 // } 43 // exampleCustomerGateway, err := ec2.NewCustomerGateway(ctx, "example", &ec2.CustomerGatewayArgs{ 44 // BgpAsn: pulumi.String("65000"), 45 // IpAddress: pulumi.String("172.0.0.1"), 46 // Type: pulumi.String("ipsec.1"), 47 // }) 48 // if err != nil { 49 // return err 50 // } 51 // _, err = ec2.NewVpnConnection(ctx, "example", &ec2.VpnConnectionArgs{ 52 // CustomerGatewayId: exampleCustomerGateway.ID(), 53 // TransitGatewayId: example.ID(), 54 // Type: exampleCustomerGateway.Type, 55 // }) 56 // if err != nil { 57 // return err 58 // } 59 // return nil 60 // }) 61 // } 62 // 63 // ``` 64 // <!--End PulumiCodeChooser --> 65 // 66 // ### Virtual Private Gateway 67 // 68 // <!--Start PulumiCodeChooser --> 69 // ```go 70 // package main 71 // 72 // import ( 73 // 74 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 75 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 76 // 77 // ) 78 // 79 // func main() { 80 // pulumi.Run(func(ctx *pulumi.Context) error { 81 // vpc, err := ec2.NewVpc(ctx, "vpc", &ec2.VpcArgs{ 82 // CidrBlock: pulumi.String("10.0.0.0/16"), 83 // }) 84 // if err != nil { 85 // return err 86 // } 87 // vpnGateway, err := ec2.NewVpnGateway(ctx, "vpn_gateway", &ec2.VpnGatewayArgs{ 88 // VpcId: vpc.ID(), 89 // }) 90 // if err != nil { 91 // return err 92 // } 93 // customerGateway, err := ec2.NewCustomerGateway(ctx, "customer_gateway", &ec2.CustomerGatewayArgs{ 94 // BgpAsn: pulumi.String("65000"), 95 // IpAddress: pulumi.String("172.0.0.1"), 96 // Type: pulumi.String("ipsec.1"), 97 // }) 98 // if err != nil { 99 // return err 100 // } 101 // _, err = ec2.NewVpnConnection(ctx, "main", &ec2.VpnConnectionArgs{ 102 // VpnGatewayId: vpnGateway.ID(), 103 // CustomerGatewayId: customerGateway.ID(), 104 // Type: pulumi.String("ipsec.1"), 105 // StaticRoutesOnly: pulumi.Bool(true), 106 // }) 107 // if err != nil { 108 // return err 109 // } 110 // return nil 111 // }) 112 // } 113 // 114 // ``` 115 // <!--End PulumiCodeChooser --> 116 // 117 // ### AWS Site to Site Private VPN 118 // 119 // <!--Start PulumiCodeChooser --> 120 // ```go 121 // package main 122 // 123 // import ( 124 // 125 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/directconnect" 126 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 127 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway" 128 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 129 // 130 // ) 131 // 132 // func main() { 133 // pulumi.Run(func(ctx *pulumi.Context) error { 134 // exampleGateway, err := directconnect.NewGateway(ctx, "example", &directconnect.GatewayArgs{ 135 // Name: pulumi.String("example_ipsec_vpn_example"), 136 // AmazonSideAsn: pulumi.String("64512"), 137 // }) 138 // if err != nil { 139 // return err 140 // } 141 // exampleTransitGateway, err := ec2transitgateway.NewTransitGateway(ctx, "example", &ec2transitgateway.TransitGatewayArgs{ 142 // AmazonSideAsn: pulumi.Int(64513), 143 // Description: pulumi.String("example_ipsec_vpn_example"), 144 // TransitGatewayCidrBlocks: pulumi.StringArray{ 145 // pulumi.String("10.0.0.0/24"), 146 // }, 147 // }) 148 // if err != nil { 149 // return err 150 // } 151 // exampleCustomerGateway, err := ec2.NewCustomerGateway(ctx, "example", &ec2.CustomerGatewayArgs{ 152 // BgpAsn: pulumi.String("64514"), 153 // IpAddress: pulumi.String("10.0.0.1"), 154 // Type: pulumi.String("ipsec.1"), 155 // Tags: pulumi.StringMap{ 156 // "Name": pulumi.String("example_ipsec_vpn_example"), 157 // }, 158 // }) 159 // if err != nil { 160 // return err 161 // } 162 // _, err = directconnect.NewGatewayAssociation(ctx, "example", &directconnect.GatewayAssociationArgs{ 163 // DxGatewayId: exampleGateway.ID(), 164 // AssociatedGatewayId: exampleTransitGateway.ID(), 165 // AllowedPrefixes: pulumi.StringArray{ 166 // pulumi.String("10.0.0.0/8"), 167 // }, 168 // }) 169 // if err != nil { 170 // return err 171 // } 172 // example := ec2transitgateway.GetDirectConnectGatewayAttachmentOutput(ctx, ec2transitgateway.GetDirectConnectGatewayAttachmentOutputArgs{ 173 // TransitGatewayId: exampleTransitGateway.ID(), 174 // DxGatewayId: exampleGateway.ID(), 175 // }, nil) 176 // _, err = ec2.NewVpnConnection(ctx, "example", &ec2.VpnConnectionArgs{ 177 // CustomerGatewayId: exampleCustomerGateway.ID(), 178 // OutsideIpAddressType: pulumi.String("PrivateIpv4"), 179 // TransitGatewayId: exampleTransitGateway.ID(), 180 // TransportTransitGatewayAttachmentId: example.ApplyT(func(example ec2transitgateway.GetDirectConnectGatewayAttachmentResult) (*string, error) { 181 // return &example.Id, nil 182 // }).(pulumi.StringPtrOutput), 183 // Type: pulumi.String("ipsec.1"), 184 // Tags: pulumi.StringMap{ 185 // "Name": pulumi.String("example_ipsec_vpn_example"), 186 // }, 187 // }) 188 // if err != nil { 189 // return err 190 // } 191 // return nil 192 // }) 193 // } 194 // 195 // ``` 196 // <!--End PulumiCodeChooser --> 197 // 198 // ## Import 199 // 200 // Using `pulumi import`, import VPN Connections using the VPN connection `id`. For example: 201 // 202 // ```sh 203 // $ pulumi import aws:ec2/vpnConnection:VpnConnection testvpnconnection vpn-40f41529 204 // ``` 205 type VpnConnection struct { 206 pulumi.CustomResourceState 207 208 // Amazon Resource Name (ARN) of the VPN Connection. 209 Arn pulumi.StringOutput `pulumi:"arn"` 210 // The ARN of the core network. 211 CoreNetworkArn pulumi.StringOutput `pulumi:"coreNetworkArn"` 212 // The ARN of the core network attachment. 213 CoreNetworkAttachmentArn pulumi.StringOutput `pulumi:"coreNetworkAttachmentArn"` 214 // The configuration information for the VPN connection's customer gateway (in the native XML format). 215 CustomerGatewayConfiguration pulumi.StringOutput `pulumi:"customerGatewayConfiguration"` 216 // The ID of the customer gateway. 217 CustomerGatewayId pulumi.StringOutput `pulumi:"customerGatewayId"` 218 // Indicate whether to enable acceleration for the VPN connection. Supports only EC2 Transit Gateway. 219 EnableAcceleration pulumi.BoolOutput `pulumi:"enableAcceleration"` 220 // The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. 221 LocalIpv4NetworkCidr pulumi.StringOutput `pulumi:"localIpv4NetworkCidr"` 222 // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. 223 LocalIpv6NetworkCidr pulumi.StringOutput `pulumi:"localIpv6NetworkCidr"` 224 // Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` 225 OutsideIpAddressType pulumi.StringOutput `pulumi:"outsideIpAddressType"` 226 // The IPv4 CIDR on the AWS side of the VPN connection. 227 RemoteIpv4NetworkCidr pulumi.StringOutput `pulumi:"remoteIpv4NetworkCidr"` 228 // The IPv6 CIDR on the AWS side of the VPN connection. 229 RemoteIpv6NetworkCidr pulumi.StringOutput `pulumi:"remoteIpv6NetworkCidr"` 230 // The static routes associated with the VPN connection. Detailed below. 231 Routes VpnConnectionRouteTypeArrayOutput `pulumi:"routes"` 232 // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. 233 StaticRoutesOnly pulumi.BoolOutput `pulumi:"staticRoutesOnly"` 234 // Tags to apply to the connection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 235 Tags pulumi.StringMapOutput `pulumi:"tags"` 236 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 237 // 238 // Deprecated: Please use `tags` instead. 239 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 240 // When associated with an EC2 Transit Gateway (`transitGatewayId` argument), the attachment ID. See also the `ec2.Tag` resource for tagging the EC2 Transit Gateway VPN Attachment. 241 TransitGatewayAttachmentId pulumi.StringOutput `pulumi:"transitGatewayAttachmentId"` 242 // The ID of the EC2 Transit Gateway. 243 TransitGatewayId pulumi.StringPtrOutput `pulumi:"transitGatewayId"` 244 // . The attachment ID of the Transit Gateway attachment to Direct Connect Gateway. The ID is obtained through a data source only. 245 TransportTransitGatewayAttachmentId pulumi.StringPtrOutput `pulumi:"transportTransitGatewayAttachmentId"` 246 // The public IP address of the first VPN tunnel. 247 Tunnel1Address pulumi.StringOutput `pulumi:"tunnel1Address"` 248 // The bgp asn number of the first VPN tunnel. 249 Tunnel1BgpAsn pulumi.StringOutput `pulumi:"tunnel1BgpAsn"` 250 // The bgp holdtime of the first VPN tunnel. 251 Tunnel1BgpHoldtime pulumi.IntOutput `pulumi:"tunnel1BgpHoldtime"` 252 // The RFC 6890 link-local address of the first VPN tunnel (Customer Gateway Side). 253 Tunnel1CgwInsideAddress pulumi.StringOutput `pulumi:"tunnel1CgwInsideAddress"` 254 // The action to take after DPD timeout occurs for the first VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 255 Tunnel1DpdTimeoutAction pulumi.StringPtrOutput `pulumi:"tunnel1DpdTimeoutAction"` 256 // The number of seconds after which a DPD timeout occurs for the first VPN tunnel. Valid value is equal or higher than `30`. 257 Tunnel1DpdTimeoutSeconds pulumi.IntPtrOutput `pulumi:"tunnel1DpdTimeoutSeconds"` 258 // Turn on or off tunnel endpoint lifecycle control feature for the first VPN tunnel. Valid values are `true | false`. 259 Tunnel1EnableTunnelLifecycleControl pulumi.BoolPtrOutput `pulumi:"tunnel1EnableTunnelLifecycleControl"` 260 // The IKE versions that are permitted for the first VPN tunnel. Valid values are `ikev1 | ikev2`. 261 Tunnel1IkeVersions pulumi.StringArrayOutput `pulumi:"tunnel1IkeVersions"` 262 // The CIDR block of the inside IP addresses for the first VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 263 Tunnel1InsideCidr pulumi.StringOutput `pulumi:"tunnel1InsideCidr"` 264 // The range of inside IPv6 addresses for the first VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 265 Tunnel1InsideIpv6Cidr pulumi.StringOutput `pulumi:"tunnel1InsideIpv6Cidr"` 266 // Options for logging VPN tunnel activity. See Log Options below for more details. 267 Tunnel1LogOptions VpnConnectionTunnel1LogOptionsOutput `pulumi:"tunnel1LogOptions"` 268 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 269 Tunnel1Phase1DhGroupNumbers pulumi.IntArrayOutput `pulumi:"tunnel1Phase1DhGroupNumbers"` 270 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 271 Tunnel1Phase1EncryptionAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel1Phase1EncryptionAlgorithms"` 272 // One or more integrity algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 273 Tunnel1Phase1IntegrityAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel1Phase1IntegrityAlgorithms"` 274 // The lifetime for phase 1 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `28800`. 275 Tunnel1Phase1LifetimeSeconds pulumi.IntPtrOutput `pulumi:"tunnel1Phase1LifetimeSeconds"` 276 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 277 Tunnel1Phase2DhGroupNumbers pulumi.IntArrayOutput `pulumi:"tunnel1Phase2DhGroupNumbers"` 278 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 279 Tunnel1Phase2EncryptionAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel1Phase2EncryptionAlgorithms"` 280 // List of one or more integrity algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 281 Tunnel1Phase2IntegrityAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel1Phase2IntegrityAlgorithms"` 282 // The lifetime for phase 2 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `3600`. 283 Tunnel1Phase2LifetimeSeconds pulumi.IntPtrOutput `pulumi:"tunnel1Phase2LifetimeSeconds"` 284 // The preshared key of the first VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 285 Tunnel1PresharedKey pulumi.StringOutput `pulumi:"tunnel1PresharedKey"` 286 // The percentage of the rekey window for the first VPN tunnel (determined by `tunnel1RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 287 Tunnel1RekeyFuzzPercentage pulumi.IntPtrOutput `pulumi:"tunnel1RekeyFuzzPercentage"` 288 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the first VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel1RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel1Phase2LifetimeSeconds`. 289 Tunnel1RekeyMarginTimeSeconds pulumi.IntPtrOutput `pulumi:"tunnel1RekeyMarginTimeSeconds"` 290 // The number of packets in an IKE replay window for the first VPN tunnel. Valid value is between `64` and `2048`. 291 Tunnel1ReplayWindowSize pulumi.IntPtrOutput `pulumi:"tunnel1ReplayWindowSize"` 292 // The action to take when the establishing the tunnel for the first VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 293 Tunnel1StartupAction pulumi.StringPtrOutput `pulumi:"tunnel1StartupAction"` 294 // The RFC 6890 link-local address of the first VPN tunnel (VPN Gateway Side). 295 Tunnel1VgwInsideAddress pulumi.StringOutput `pulumi:"tunnel1VgwInsideAddress"` 296 // The public IP address of the second VPN tunnel. 297 Tunnel2Address pulumi.StringOutput `pulumi:"tunnel2Address"` 298 // The bgp asn number of the second VPN tunnel. 299 Tunnel2BgpAsn pulumi.StringOutput `pulumi:"tunnel2BgpAsn"` 300 // The bgp holdtime of the second VPN tunnel. 301 Tunnel2BgpHoldtime pulumi.IntOutput `pulumi:"tunnel2BgpHoldtime"` 302 // The RFC 6890 link-local address of the second VPN tunnel (Customer Gateway Side). 303 Tunnel2CgwInsideAddress pulumi.StringOutput `pulumi:"tunnel2CgwInsideAddress"` 304 // The action to take after DPD timeout occurs for the second VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 305 Tunnel2DpdTimeoutAction pulumi.StringPtrOutput `pulumi:"tunnel2DpdTimeoutAction"` 306 // The number of seconds after which a DPD timeout occurs for the second VPN tunnel. Valid value is equal or higher than `30`. 307 Tunnel2DpdTimeoutSeconds pulumi.IntPtrOutput `pulumi:"tunnel2DpdTimeoutSeconds"` 308 // Turn on or off tunnel endpoint lifecycle control feature for the second VPN tunnel. Valid values are `true | false`. 309 Tunnel2EnableTunnelLifecycleControl pulumi.BoolPtrOutput `pulumi:"tunnel2EnableTunnelLifecycleControl"` 310 // The IKE versions that are permitted for the second VPN tunnel. Valid values are `ikev1 | ikev2`. 311 Tunnel2IkeVersions pulumi.StringArrayOutput `pulumi:"tunnel2IkeVersions"` 312 // The CIDR block of the inside IP addresses for the second VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 313 Tunnel2InsideCidr pulumi.StringOutput `pulumi:"tunnel2InsideCidr"` 314 // The range of inside IPv6 addresses for the second VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 315 Tunnel2InsideIpv6Cidr pulumi.StringOutput `pulumi:"tunnel2InsideIpv6Cidr"` 316 // Options for logging VPN tunnel activity. See Log Options below for more details. 317 Tunnel2LogOptions VpnConnectionTunnel2LogOptionsOutput `pulumi:"tunnel2LogOptions"` 318 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 319 Tunnel2Phase1DhGroupNumbers pulumi.IntArrayOutput `pulumi:"tunnel2Phase1DhGroupNumbers"` 320 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 321 Tunnel2Phase1EncryptionAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel2Phase1EncryptionAlgorithms"` 322 // One or more integrity algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 323 Tunnel2Phase1IntegrityAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel2Phase1IntegrityAlgorithms"` 324 // The lifetime for phase 1 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `28800`. 325 Tunnel2Phase1LifetimeSeconds pulumi.IntPtrOutput `pulumi:"tunnel2Phase1LifetimeSeconds"` 326 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 327 Tunnel2Phase2DhGroupNumbers pulumi.IntArrayOutput `pulumi:"tunnel2Phase2DhGroupNumbers"` 328 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 329 Tunnel2Phase2EncryptionAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel2Phase2EncryptionAlgorithms"` 330 // List of one or more integrity algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 331 Tunnel2Phase2IntegrityAlgorithms pulumi.StringArrayOutput `pulumi:"tunnel2Phase2IntegrityAlgorithms"` 332 // The lifetime for phase 2 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `3600`. 333 Tunnel2Phase2LifetimeSeconds pulumi.IntPtrOutput `pulumi:"tunnel2Phase2LifetimeSeconds"` 334 // The preshared key of the second VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 335 Tunnel2PresharedKey pulumi.StringOutput `pulumi:"tunnel2PresharedKey"` 336 // The percentage of the rekey window for the second VPN tunnel (determined by `tunnel2RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 337 Tunnel2RekeyFuzzPercentage pulumi.IntPtrOutput `pulumi:"tunnel2RekeyFuzzPercentage"` 338 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the second VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel2RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel2Phase2LifetimeSeconds`. 339 Tunnel2RekeyMarginTimeSeconds pulumi.IntPtrOutput `pulumi:"tunnel2RekeyMarginTimeSeconds"` 340 // The number of packets in an IKE replay window for the second VPN tunnel. Valid value is between `64` and `2048`. 341 Tunnel2ReplayWindowSize pulumi.IntPtrOutput `pulumi:"tunnel2ReplayWindowSize"` 342 // The action to take when the establishing the tunnel for the second VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 343 Tunnel2StartupAction pulumi.StringPtrOutput `pulumi:"tunnel2StartupAction"` 344 // The RFC 6890 link-local address of the second VPN tunnel (VPN Gateway Side). 345 Tunnel2VgwInsideAddress pulumi.StringOutput `pulumi:"tunnel2VgwInsideAddress"` 346 // Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Valid values are `ipv4 | ipv6`. `ipv6` Supports only EC2 Transit Gateway. 347 TunnelInsideIpVersion pulumi.StringOutput `pulumi:"tunnelInsideIpVersion"` 348 // The type of VPN connection. The only type AWS supports at this time is "ipsec.1". 349 Type pulumi.StringOutput `pulumi:"type"` 350 // Telemetry for the VPN tunnels. Detailed below. 351 VgwTelemetries VpnConnectionVgwTelemetryArrayOutput `pulumi:"vgwTelemetries"` 352 // The ID of the Virtual Private Gateway. 353 VpnGatewayId pulumi.StringPtrOutput `pulumi:"vpnGatewayId"` 354 } 355 356 // NewVpnConnection registers a new resource with the given unique name, arguments, and options. 357 func NewVpnConnection(ctx *pulumi.Context, 358 name string, args *VpnConnectionArgs, opts ...pulumi.ResourceOption) (*VpnConnection, error) { 359 if args == nil { 360 return nil, errors.New("missing one or more required arguments") 361 } 362 363 if args.CustomerGatewayId == nil { 364 return nil, errors.New("invalid value for required argument 'CustomerGatewayId'") 365 } 366 if args.Type == nil { 367 return nil, errors.New("invalid value for required argument 'Type'") 368 } 369 if args.Tunnel1PresharedKey != nil { 370 args.Tunnel1PresharedKey = pulumi.ToSecret(args.Tunnel1PresharedKey).(pulumi.StringPtrInput) 371 } 372 if args.Tunnel2PresharedKey != nil { 373 args.Tunnel2PresharedKey = pulumi.ToSecret(args.Tunnel2PresharedKey).(pulumi.StringPtrInput) 374 } 375 secrets := pulumi.AdditionalSecretOutputs([]string{ 376 "customerGatewayConfiguration", 377 "tunnel1PresharedKey", 378 "tunnel2PresharedKey", 379 }) 380 opts = append(opts, secrets) 381 opts = internal.PkgResourceDefaultOpts(opts) 382 var resource VpnConnection 383 err := ctx.RegisterResource("aws:ec2/vpnConnection:VpnConnection", name, args, &resource, opts...) 384 if err != nil { 385 return nil, err 386 } 387 return &resource, nil 388 } 389 390 // GetVpnConnection gets an existing VpnConnection resource's state with the given name, ID, and optional 391 // state properties that are used to uniquely qualify the lookup (nil if not required). 392 func GetVpnConnection(ctx *pulumi.Context, 393 name string, id pulumi.IDInput, state *VpnConnectionState, opts ...pulumi.ResourceOption) (*VpnConnection, error) { 394 var resource VpnConnection 395 err := ctx.ReadResource("aws:ec2/vpnConnection:VpnConnection", name, id, state, &resource, opts...) 396 if err != nil { 397 return nil, err 398 } 399 return &resource, nil 400 } 401 402 // Input properties used for looking up and filtering VpnConnection resources. 403 type vpnConnectionState struct { 404 // Amazon Resource Name (ARN) of the VPN Connection. 405 Arn *string `pulumi:"arn"` 406 // The ARN of the core network. 407 CoreNetworkArn *string `pulumi:"coreNetworkArn"` 408 // The ARN of the core network attachment. 409 CoreNetworkAttachmentArn *string `pulumi:"coreNetworkAttachmentArn"` 410 // The configuration information for the VPN connection's customer gateway (in the native XML format). 411 CustomerGatewayConfiguration *string `pulumi:"customerGatewayConfiguration"` 412 // The ID of the customer gateway. 413 CustomerGatewayId *string `pulumi:"customerGatewayId"` 414 // Indicate whether to enable acceleration for the VPN connection. Supports only EC2 Transit Gateway. 415 EnableAcceleration *bool `pulumi:"enableAcceleration"` 416 // The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. 417 LocalIpv4NetworkCidr *string `pulumi:"localIpv4NetworkCidr"` 418 // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. 419 LocalIpv6NetworkCidr *string `pulumi:"localIpv6NetworkCidr"` 420 // Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` 421 OutsideIpAddressType *string `pulumi:"outsideIpAddressType"` 422 // The IPv4 CIDR on the AWS side of the VPN connection. 423 RemoteIpv4NetworkCidr *string `pulumi:"remoteIpv4NetworkCidr"` 424 // The IPv6 CIDR on the AWS side of the VPN connection. 425 RemoteIpv6NetworkCidr *string `pulumi:"remoteIpv6NetworkCidr"` 426 // The static routes associated with the VPN connection. Detailed below. 427 Routes []VpnConnectionRouteType `pulumi:"routes"` 428 // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. 429 StaticRoutesOnly *bool `pulumi:"staticRoutesOnly"` 430 // Tags to apply to the connection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 431 Tags map[string]string `pulumi:"tags"` 432 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 433 // 434 // Deprecated: Please use `tags` instead. 435 TagsAll map[string]string `pulumi:"tagsAll"` 436 // When associated with an EC2 Transit Gateway (`transitGatewayId` argument), the attachment ID. See also the `ec2.Tag` resource for tagging the EC2 Transit Gateway VPN Attachment. 437 TransitGatewayAttachmentId *string `pulumi:"transitGatewayAttachmentId"` 438 // The ID of the EC2 Transit Gateway. 439 TransitGatewayId *string `pulumi:"transitGatewayId"` 440 // . The attachment ID of the Transit Gateway attachment to Direct Connect Gateway. The ID is obtained through a data source only. 441 TransportTransitGatewayAttachmentId *string `pulumi:"transportTransitGatewayAttachmentId"` 442 // The public IP address of the first VPN tunnel. 443 Tunnel1Address *string `pulumi:"tunnel1Address"` 444 // The bgp asn number of the first VPN tunnel. 445 Tunnel1BgpAsn *string `pulumi:"tunnel1BgpAsn"` 446 // The bgp holdtime of the first VPN tunnel. 447 Tunnel1BgpHoldtime *int `pulumi:"tunnel1BgpHoldtime"` 448 // The RFC 6890 link-local address of the first VPN tunnel (Customer Gateway Side). 449 Tunnel1CgwInsideAddress *string `pulumi:"tunnel1CgwInsideAddress"` 450 // The action to take after DPD timeout occurs for the first VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 451 Tunnel1DpdTimeoutAction *string `pulumi:"tunnel1DpdTimeoutAction"` 452 // The number of seconds after which a DPD timeout occurs for the first VPN tunnel. Valid value is equal or higher than `30`. 453 Tunnel1DpdTimeoutSeconds *int `pulumi:"tunnel1DpdTimeoutSeconds"` 454 // Turn on or off tunnel endpoint lifecycle control feature for the first VPN tunnel. Valid values are `true | false`. 455 Tunnel1EnableTunnelLifecycleControl *bool `pulumi:"tunnel1EnableTunnelLifecycleControl"` 456 // The IKE versions that are permitted for the first VPN tunnel. Valid values are `ikev1 | ikev2`. 457 Tunnel1IkeVersions []string `pulumi:"tunnel1IkeVersions"` 458 // The CIDR block of the inside IP addresses for the first VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 459 Tunnel1InsideCidr *string `pulumi:"tunnel1InsideCidr"` 460 // The range of inside IPv6 addresses for the first VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 461 Tunnel1InsideIpv6Cidr *string `pulumi:"tunnel1InsideIpv6Cidr"` 462 // Options for logging VPN tunnel activity. See Log Options below for more details. 463 Tunnel1LogOptions *VpnConnectionTunnel1LogOptions `pulumi:"tunnel1LogOptions"` 464 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 465 Tunnel1Phase1DhGroupNumbers []int `pulumi:"tunnel1Phase1DhGroupNumbers"` 466 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 467 Tunnel1Phase1EncryptionAlgorithms []string `pulumi:"tunnel1Phase1EncryptionAlgorithms"` 468 // One or more integrity algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 469 Tunnel1Phase1IntegrityAlgorithms []string `pulumi:"tunnel1Phase1IntegrityAlgorithms"` 470 // The lifetime for phase 1 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `28800`. 471 Tunnel1Phase1LifetimeSeconds *int `pulumi:"tunnel1Phase1LifetimeSeconds"` 472 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 473 Tunnel1Phase2DhGroupNumbers []int `pulumi:"tunnel1Phase2DhGroupNumbers"` 474 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 475 Tunnel1Phase2EncryptionAlgorithms []string `pulumi:"tunnel1Phase2EncryptionAlgorithms"` 476 // List of one or more integrity algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 477 Tunnel1Phase2IntegrityAlgorithms []string `pulumi:"tunnel1Phase2IntegrityAlgorithms"` 478 // The lifetime for phase 2 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `3600`. 479 Tunnel1Phase2LifetimeSeconds *int `pulumi:"tunnel1Phase2LifetimeSeconds"` 480 // The preshared key of the first VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 481 Tunnel1PresharedKey *string `pulumi:"tunnel1PresharedKey"` 482 // The percentage of the rekey window for the first VPN tunnel (determined by `tunnel1RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 483 Tunnel1RekeyFuzzPercentage *int `pulumi:"tunnel1RekeyFuzzPercentage"` 484 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the first VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel1RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel1Phase2LifetimeSeconds`. 485 Tunnel1RekeyMarginTimeSeconds *int `pulumi:"tunnel1RekeyMarginTimeSeconds"` 486 // The number of packets in an IKE replay window for the first VPN tunnel. Valid value is between `64` and `2048`. 487 Tunnel1ReplayWindowSize *int `pulumi:"tunnel1ReplayWindowSize"` 488 // The action to take when the establishing the tunnel for the first VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 489 Tunnel1StartupAction *string `pulumi:"tunnel1StartupAction"` 490 // The RFC 6890 link-local address of the first VPN tunnel (VPN Gateway Side). 491 Tunnel1VgwInsideAddress *string `pulumi:"tunnel1VgwInsideAddress"` 492 // The public IP address of the second VPN tunnel. 493 Tunnel2Address *string `pulumi:"tunnel2Address"` 494 // The bgp asn number of the second VPN tunnel. 495 Tunnel2BgpAsn *string `pulumi:"tunnel2BgpAsn"` 496 // The bgp holdtime of the second VPN tunnel. 497 Tunnel2BgpHoldtime *int `pulumi:"tunnel2BgpHoldtime"` 498 // The RFC 6890 link-local address of the second VPN tunnel (Customer Gateway Side). 499 Tunnel2CgwInsideAddress *string `pulumi:"tunnel2CgwInsideAddress"` 500 // The action to take after DPD timeout occurs for the second VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 501 Tunnel2DpdTimeoutAction *string `pulumi:"tunnel2DpdTimeoutAction"` 502 // The number of seconds after which a DPD timeout occurs for the second VPN tunnel. Valid value is equal or higher than `30`. 503 Tunnel2DpdTimeoutSeconds *int `pulumi:"tunnel2DpdTimeoutSeconds"` 504 // Turn on or off tunnel endpoint lifecycle control feature for the second VPN tunnel. Valid values are `true | false`. 505 Tunnel2EnableTunnelLifecycleControl *bool `pulumi:"tunnel2EnableTunnelLifecycleControl"` 506 // The IKE versions that are permitted for the second VPN tunnel. Valid values are `ikev1 | ikev2`. 507 Tunnel2IkeVersions []string `pulumi:"tunnel2IkeVersions"` 508 // The CIDR block of the inside IP addresses for the second VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 509 Tunnel2InsideCidr *string `pulumi:"tunnel2InsideCidr"` 510 // The range of inside IPv6 addresses for the second VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 511 Tunnel2InsideIpv6Cidr *string `pulumi:"tunnel2InsideIpv6Cidr"` 512 // Options for logging VPN tunnel activity. See Log Options below for more details. 513 Tunnel2LogOptions *VpnConnectionTunnel2LogOptions `pulumi:"tunnel2LogOptions"` 514 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 515 Tunnel2Phase1DhGroupNumbers []int `pulumi:"tunnel2Phase1DhGroupNumbers"` 516 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 517 Tunnel2Phase1EncryptionAlgorithms []string `pulumi:"tunnel2Phase1EncryptionAlgorithms"` 518 // One or more integrity algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 519 Tunnel2Phase1IntegrityAlgorithms []string `pulumi:"tunnel2Phase1IntegrityAlgorithms"` 520 // The lifetime for phase 1 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `28800`. 521 Tunnel2Phase1LifetimeSeconds *int `pulumi:"tunnel2Phase1LifetimeSeconds"` 522 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 523 Tunnel2Phase2DhGroupNumbers []int `pulumi:"tunnel2Phase2DhGroupNumbers"` 524 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 525 Tunnel2Phase2EncryptionAlgorithms []string `pulumi:"tunnel2Phase2EncryptionAlgorithms"` 526 // List of one or more integrity algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 527 Tunnel2Phase2IntegrityAlgorithms []string `pulumi:"tunnel2Phase2IntegrityAlgorithms"` 528 // The lifetime for phase 2 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `3600`. 529 Tunnel2Phase2LifetimeSeconds *int `pulumi:"tunnel2Phase2LifetimeSeconds"` 530 // The preshared key of the second VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 531 Tunnel2PresharedKey *string `pulumi:"tunnel2PresharedKey"` 532 // The percentage of the rekey window for the second VPN tunnel (determined by `tunnel2RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 533 Tunnel2RekeyFuzzPercentage *int `pulumi:"tunnel2RekeyFuzzPercentage"` 534 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the second VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel2RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel2Phase2LifetimeSeconds`. 535 Tunnel2RekeyMarginTimeSeconds *int `pulumi:"tunnel2RekeyMarginTimeSeconds"` 536 // The number of packets in an IKE replay window for the second VPN tunnel. Valid value is between `64` and `2048`. 537 Tunnel2ReplayWindowSize *int `pulumi:"tunnel2ReplayWindowSize"` 538 // The action to take when the establishing the tunnel for the second VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 539 Tunnel2StartupAction *string `pulumi:"tunnel2StartupAction"` 540 // The RFC 6890 link-local address of the second VPN tunnel (VPN Gateway Side). 541 Tunnel2VgwInsideAddress *string `pulumi:"tunnel2VgwInsideAddress"` 542 // Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Valid values are `ipv4 | ipv6`. `ipv6` Supports only EC2 Transit Gateway. 543 TunnelInsideIpVersion *string `pulumi:"tunnelInsideIpVersion"` 544 // The type of VPN connection. The only type AWS supports at this time is "ipsec.1". 545 Type *string `pulumi:"type"` 546 // Telemetry for the VPN tunnels. Detailed below. 547 VgwTelemetries []VpnConnectionVgwTelemetry `pulumi:"vgwTelemetries"` 548 // The ID of the Virtual Private Gateway. 549 VpnGatewayId *string `pulumi:"vpnGatewayId"` 550 } 551 552 type VpnConnectionState struct { 553 // Amazon Resource Name (ARN) of the VPN Connection. 554 Arn pulumi.StringPtrInput 555 // The ARN of the core network. 556 CoreNetworkArn pulumi.StringPtrInput 557 // The ARN of the core network attachment. 558 CoreNetworkAttachmentArn pulumi.StringPtrInput 559 // The configuration information for the VPN connection's customer gateway (in the native XML format). 560 CustomerGatewayConfiguration pulumi.StringPtrInput 561 // The ID of the customer gateway. 562 CustomerGatewayId pulumi.StringPtrInput 563 // Indicate whether to enable acceleration for the VPN connection. Supports only EC2 Transit Gateway. 564 EnableAcceleration pulumi.BoolPtrInput 565 // The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. 566 LocalIpv4NetworkCidr pulumi.StringPtrInput 567 // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. 568 LocalIpv6NetworkCidr pulumi.StringPtrInput 569 // Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` 570 OutsideIpAddressType pulumi.StringPtrInput 571 // The IPv4 CIDR on the AWS side of the VPN connection. 572 RemoteIpv4NetworkCidr pulumi.StringPtrInput 573 // The IPv6 CIDR on the AWS side of the VPN connection. 574 RemoteIpv6NetworkCidr pulumi.StringPtrInput 575 // The static routes associated with the VPN connection. Detailed below. 576 Routes VpnConnectionRouteTypeArrayInput 577 // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. 578 StaticRoutesOnly pulumi.BoolPtrInput 579 // Tags to apply to the connection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 580 Tags pulumi.StringMapInput 581 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 582 // 583 // Deprecated: Please use `tags` instead. 584 TagsAll pulumi.StringMapInput 585 // When associated with an EC2 Transit Gateway (`transitGatewayId` argument), the attachment ID. See also the `ec2.Tag` resource for tagging the EC2 Transit Gateway VPN Attachment. 586 TransitGatewayAttachmentId pulumi.StringPtrInput 587 // The ID of the EC2 Transit Gateway. 588 TransitGatewayId pulumi.StringPtrInput 589 // . The attachment ID of the Transit Gateway attachment to Direct Connect Gateway. The ID is obtained through a data source only. 590 TransportTransitGatewayAttachmentId pulumi.StringPtrInput 591 // The public IP address of the first VPN tunnel. 592 Tunnel1Address pulumi.StringPtrInput 593 // The bgp asn number of the first VPN tunnel. 594 Tunnel1BgpAsn pulumi.StringPtrInput 595 // The bgp holdtime of the first VPN tunnel. 596 Tunnel1BgpHoldtime pulumi.IntPtrInput 597 // The RFC 6890 link-local address of the first VPN tunnel (Customer Gateway Side). 598 Tunnel1CgwInsideAddress pulumi.StringPtrInput 599 // The action to take after DPD timeout occurs for the first VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 600 Tunnel1DpdTimeoutAction pulumi.StringPtrInput 601 // The number of seconds after which a DPD timeout occurs for the first VPN tunnel. Valid value is equal or higher than `30`. 602 Tunnel1DpdTimeoutSeconds pulumi.IntPtrInput 603 // Turn on or off tunnel endpoint lifecycle control feature for the first VPN tunnel. Valid values are `true | false`. 604 Tunnel1EnableTunnelLifecycleControl pulumi.BoolPtrInput 605 // The IKE versions that are permitted for the first VPN tunnel. Valid values are `ikev1 | ikev2`. 606 Tunnel1IkeVersions pulumi.StringArrayInput 607 // The CIDR block of the inside IP addresses for the first VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 608 Tunnel1InsideCidr pulumi.StringPtrInput 609 // The range of inside IPv6 addresses for the first VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 610 Tunnel1InsideIpv6Cidr pulumi.StringPtrInput 611 // Options for logging VPN tunnel activity. See Log Options below for more details. 612 Tunnel1LogOptions VpnConnectionTunnel1LogOptionsPtrInput 613 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 614 Tunnel1Phase1DhGroupNumbers pulumi.IntArrayInput 615 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 616 Tunnel1Phase1EncryptionAlgorithms pulumi.StringArrayInput 617 // One or more integrity algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 618 Tunnel1Phase1IntegrityAlgorithms pulumi.StringArrayInput 619 // The lifetime for phase 1 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `28800`. 620 Tunnel1Phase1LifetimeSeconds pulumi.IntPtrInput 621 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 622 Tunnel1Phase2DhGroupNumbers pulumi.IntArrayInput 623 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 624 Tunnel1Phase2EncryptionAlgorithms pulumi.StringArrayInput 625 // List of one or more integrity algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 626 Tunnel1Phase2IntegrityAlgorithms pulumi.StringArrayInput 627 // The lifetime for phase 2 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `3600`. 628 Tunnel1Phase2LifetimeSeconds pulumi.IntPtrInput 629 // The preshared key of the first VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 630 Tunnel1PresharedKey pulumi.StringPtrInput 631 // The percentage of the rekey window for the first VPN tunnel (determined by `tunnel1RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 632 Tunnel1RekeyFuzzPercentage pulumi.IntPtrInput 633 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the first VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel1RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel1Phase2LifetimeSeconds`. 634 Tunnel1RekeyMarginTimeSeconds pulumi.IntPtrInput 635 // The number of packets in an IKE replay window for the first VPN tunnel. Valid value is between `64` and `2048`. 636 Tunnel1ReplayWindowSize pulumi.IntPtrInput 637 // The action to take when the establishing the tunnel for the first VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 638 Tunnel1StartupAction pulumi.StringPtrInput 639 // The RFC 6890 link-local address of the first VPN tunnel (VPN Gateway Side). 640 Tunnel1VgwInsideAddress pulumi.StringPtrInput 641 // The public IP address of the second VPN tunnel. 642 Tunnel2Address pulumi.StringPtrInput 643 // The bgp asn number of the second VPN tunnel. 644 Tunnel2BgpAsn pulumi.StringPtrInput 645 // The bgp holdtime of the second VPN tunnel. 646 Tunnel2BgpHoldtime pulumi.IntPtrInput 647 // The RFC 6890 link-local address of the second VPN tunnel (Customer Gateway Side). 648 Tunnel2CgwInsideAddress pulumi.StringPtrInput 649 // The action to take after DPD timeout occurs for the second VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 650 Tunnel2DpdTimeoutAction pulumi.StringPtrInput 651 // The number of seconds after which a DPD timeout occurs for the second VPN tunnel. Valid value is equal or higher than `30`. 652 Tunnel2DpdTimeoutSeconds pulumi.IntPtrInput 653 // Turn on or off tunnel endpoint lifecycle control feature for the second VPN tunnel. Valid values are `true | false`. 654 Tunnel2EnableTunnelLifecycleControl pulumi.BoolPtrInput 655 // The IKE versions that are permitted for the second VPN tunnel. Valid values are `ikev1 | ikev2`. 656 Tunnel2IkeVersions pulumi.StringArrayInput 657 // The CIDR block of the inside IP addresses for the second VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 658 Tunnel2InsideCidr pulumi.StringPtrInput 659 // The range of inside IPv6 addresses for the second VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 660 Tunnel2InsideIpv6Cidr pulumi.StringPtrInput 661 // Options for logging VPN tunnel activity. See Log Options below for more details. 662 Tunnel2LogOptions VpnConnectionTunnel2LogOptionsPtrInput 663 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 664 Tunnel2Phase1DhGroupNumbers pulumi.IntArrayInput 665 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 666 Tunnel2Phase1EncryptionAlgorithms pulumi.StringArrayInput 667 // One or more integrity algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 668 Tunnel2Phase1IntegrityAlgorithms pulumi.StringArrayInput 669 // The lifetime for phase 1 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `28800`. 670 Tunnel2Phase1LifetimeSeconds pulumi.IntPtrInput 671 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 672 Tunnel2Phase2DhGroupNumbers pulumi.IntArrayInput 673 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 674 Tunnel2Phase2EncryptionAlgorithms pulumi.StringArrayInput 675 // List of one or more integrity algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 676 Tunnel2Phase2IntegrityAlgorithms pulumi.StringArrayInput 677 // The lifetime for phase 2 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `3600`. 678 Tunnel2Phase2LifetimeSeconds pulumi.IntPtrInput 679 // The preshared key of the second VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 680 Tunnel2PresharedKey pulumi.StringPtrInput 681 // The percentage of the rekey window for the second VPN tunnel (determined by `tunnel2RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 682 Tunnel2RekeyFuzzPercentage pulumi.IntPtrInput 683 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the second VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel2RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel2Phase2LifetimeSeconds`. 684 Tunnel2RekeyMarginTimeSeconds pulumi.IntPtrInput 685 // The number of packets in an IKE replay window for the second VPN tunnel. Valid value is between `64` and `2048`. 686 Tunnel2ReplayWindowSize pulumi.IntPtrInput 687 // The action to take when the establishing the tunnel for the second VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 688 Tunnel2StartupAction pulumi.StringPtrInput 689 // The RFC 6890 link-local address of the second VPN tunnel (VPN Gateway Side). 690 Tunnel2VgwInsideAddress pulumi.StringPtrInput 691 // Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Valid values are `ipv4 | ipv6`. `ipv6` Supports only EC2 Transit Gateway. 692 TunnelInsideIpVersion pulumi.StringPtrInput 693 // The type of VPN connection. The only type AWS supports at this time is "ipsec.1". 694 Type pulumi.StringPtrInput 695 // Telemetry for the VPN tunnels. Detailed below. 696 VgwTelemetries VpnConnectionVgwTelemetryArrayInput 697 // The ID of the Virtual Private Gateway. 698 VpnGatewayId pulumi.StringPtrInput 699 } 700 701 func (VpnConnectionState) ElementType() reflect.Type { 702 return reflect.TypeOf((*vpnConnectionState)(nil)).Elem() 703 } 704 705 type vpnConnectionArgs struct { 706 // The ID of the customer gateway. 707 CustomerGatewayId string `pulumi:"customerGatewayId"` 708 // Indicate whether to enable acceleration for the VPN connection. Supports only EC2 Transit Gateway. 709 EnableAcceleration *bool `pulumi:"enableAcceleration"` 710 // The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. 711 LocalIpv4NetworkCidr *string `pulumi:"localIpv4NetworkCidr"` 712 // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. 713 LocalIpv6NetworkCidr *string `pulumi:"localIpv6NetworkCidr"` 714 // Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` 715 OutsideIpAddressType *string `pulumi:"outsideIpAddressType"` 716 // The IPv4 CIDR on the AWS side of the VPN connection. 717 RemoteIpv4NetworkCidr *string `pulumi:"remoteIpv4NetworkCidr"` 718 // The IPv6 CIDR on the AWS side of the VPN connection. 719 RemoteIpv6NetworkCidr *string `pulumi:"remoteIpv6NetworkCidr"` 720 // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. 721 StaticRoutesOnly *bool `pulumi:"staticRoutesOnly"` 722 // Tags to apply to the connection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 723 Tags map[string]string `pulumi:"tags"` 724 // The ID of the EC2 Transit Gateway. 725 TransitGatewayId *string `pulumi:"transitGatewayId"` 726 // . The attachment ID of the Transit Gateway attachment to Direct Connect Gateway. The ID is obtained through a data source only. 727 TransportTransitGatewayAttachmentId *string `pulumi:"transportTransitGatewayAttachmentId"` 728 // The action to take after DPD timeout occurs for the first VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 729 Tunnel1DpdTimeoutAction *string `pulumi:"tunnel1DpdTimeoutAction"` 730 // The number of seconds after which a DPD timeout occurs for the first VPN tunnel. Valid value is equal or higher than `30`. 731 Tunnel1DpdTimeoutSeconds *int `pulumi:"tunnel1DpdTimeoutSeconds"` 732 // Turn on or off tunnel endpoint lifecycle control feature for the first VPN tunnel. Valid values are `true | false`. 733 Tunnel1EnableTunnelLifecycleControl *bool `pulumi:"tunnel1EnableTunnelLifecycleControl"` 734 // The IKE versions that are permitted for the first VPN tunnel. Valid values are `ikev1 | ikev2`. 735 Tunnel1IkeVersions []string `pulumi:"tunnel1IkeVersions"` 736 // The CIDR block of the inside IP addresses for the first VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 737 Tunnel1InsideCidr *string `pulumi:"tunnel1InsideCidr"` 738 // The range of inside IPv6 addresses for the first VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 739 Tunnel1InsideIpv6Cidr *string `pulumi:"tunnel1InsideIpv6Cidr"` 740 // Options for logging VPN tunnel activity. See Log Options below for more details. 741 Tunnel1LogOptions *VpnConnectionTunnel1LogOptions `pulumi:"tunnel1LogOptions"` 742 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 743 Tunnel1Phase1DhGroupNumbers []int `pulumi:"tunnel1Phase1DhGroupNumbers"` 744 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 745 Tunnel1Phase1EncryptionAlgorithms []string `pulumi:"tunnel1Phase1EncryptionAlgorithms"` 746 // One or more integrity algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 747 Tunnel1Phase1IntegrityAlgorithms []string `pulumi:"tunnel1Phase1IntegrityAlgorithms"` 748 // The lifetime for phase 1 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `28800`. 749 Tunnel1Phase1LifetimeSeconds *int `pulumi:"tunnel1Phase1LifetimeSeconds"` 750 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 751 Tunnel1Phase2DhGroupNumbers []int `pulumi:"tunnel1Phase2DhGroupNumbers"` 752 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 753 Tunnel1Phase2EncryptionAlgorithms []string `pulumi:"tunnel1Phase2EncryptionAlgorithms"` 754 // List of one or more integrity algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 755 Tunnel1Phase2IntegrityAlgorithms []string `pulumi:"tunnel1Phase2IntegrityAlgorithms"` 756 // The lifetime for phase 2 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `3600`. 757 Tunnel1Phase2LifetimeSeconds *int `pulumi:"tunnel1Phase2LifetimeSeconds"` 758 // The preshared key of the first VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 759 Tunnel1PresharedKey *string `pulumi:"tunnel1PresharedKey"` 760 // The percentage of the rekey window for the first VPN tunnel (determined by `tunnel1RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 761 Tunnel1RekeyFuzzPercentage *int `pulumi:"tunnel1RekeyFuzzPercentage"` 762 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the first VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel1RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel1Phase2LifetimeSeconds`. 763 Tunnel1RekeyMarginTimeSeconds *int `pulumi:"tunnel1RekeyMarginTimeSeconds"` 764 // The number of packets in an IKE replay window for the first VPN tunnel. Valid value is between `64` and `2048`. 765 Tunnel1ReplayWindowSize *int `pulumi:"tunnel1ReplayWindowSize"` 766 // The action to take when the establishing the tunnel for the first VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 767 Tunnel1StartupAction *string `pulumi:"tunnel1StartupAction"` 768 // The action to take after DPD timeout occurs for the second VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 769 Tunnel2DpdTimeoutAction *string `pulumi:"tunnel2DpdTimeoutAction"` 770 // The number of seconds after which a DPD timeout occurs for the second VPN tunnel. Valid value is equal or higher than `30`. 771 Tunnel2DpdTimeoutSeconds *int `pulumi:"tunnel2DpdTimeoutSeconds"` 772 // Turn on or off tunnel endpoint lifecycle control feature for the second VPN tunnel. Valid values are `true | false`. 773 Tunnel2EnableTunnelLifecycleControl *bool `pulumi:"tunnel2EnableTunnelLifecycleControl"` 774 // The IKE versions that are permitted for the second VPN tunnel. Valid values are `ikev1 | ikev2`. 775 Tunnel2IkeVersions []string `pulumi:"tunnel2IkeVersions"` 776 // The CIDR block of the inside IP addresses for the second VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 777 Tunnel2InsideCidr *string `pulumi:"tunnel2InsideCidr"` 778 // The range of inside IPv6 addresses for the second VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 779 Tunnel2InsideIpv6Cidr *string `pulumi:"tunnel2InsideIpv6Cidr"` 780 // Options for logging VPN tunnel activity. See Log Options below for more details. 781 Tunnel2LogOptions *VpnConnectionTunnel2LogOptions `pulumi:"tunnel2LogOptions"` 782 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 783 Tunnel2Phase1DhGroupNumbers []int `pulumi:"tunnel2Phase1DhGroupNumbers"` 784 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 785 Tunnel2Phase1EncryptionAlgorithms []string `pulumi:"tunnel2Phase1EncryptionAlgorithms"` 786 // One or more integrity algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 787 Tunnel2Phase1IntegrityAlgorithms []string `pulumi:"tunnel2Phase1IntegrityAlgorithms"` 788 // The lifetime for phase 1 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `28800`. 789 Tunnel2Phase1LifetimeSeconds *int `pulumi:"tunnel2Phase1LifetimeSeconds"` 790 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 791 Tunnel2Phase2DhGroupNumbers []int `pulumi:"tunnel2Phase2DhGroupNumbers"` 792 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 793 Tunnel2Phase2EncryptionAlgorithms []string `pulumi:"tunnel2Phase2EncryptionAlgorithms"` 794 // List of one or more integrity algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 795 Tunnel2Phase2IntegrityAlgorithms []string `pulumi:"tunnel2Phase2IntegrityAlgorithms"` 796 // The lifetime for phase 2 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `3600`. 797 Tunnel2Phase2LifetimeSeconds *int `pulumi:"tunnel2Phase2LifetimeSeconds"` 798 // The preshared key of the second VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 799 Tunnel2PresharedKey *string `pulumi:"tunnel2PresharedKey"` 800 // The percentage of the rekey window for the second VPN tunnel (determined by `tunnel2RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 801 Tunnel2RekeyFuzzPercentage *int `pulumi:"tunnel2RekeyFuzzPercentage"` 802 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the second VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel2RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel2Phase2LifetimeSeconds`. 803 Tunnel2RekeyMarginTimeSeconds *int `pulumi:"tunnel2RekeyMarginTimeSeconds"` 804 // The number of packets in an IKE replay window for the second VPN tunnel. Valid value is between `64` and `2048`. 805 Tunnel2ReplayWindowSize *int `pulumi:"tunnel2ReplayWindowSize"` 806 // The action to take when the establishing the tunnel for the second VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 807 Tunnel2StartupAction *string `pulumi:"tunnel2StartupAction"` 808 // Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Valid values are `ipv4 | ipv6`. `ipv6` Supports only EC2 Transit Gateway. 809 TunnelInsideIpVersion *string `pulumi:"tunnelInsideIpVersion"` 810 // The type of VPN connection. The only type AWS supports at this time is "ipsec.1". 811 Type string `pulumi:"type"` 812 // The ID of the Virtual Private Gateway. 813 VpnGatewayId *string `pulumi:"vpnGatewayId"` 814 } 815 816 // The set of arguments for constructing a VpnConnection resource. 817 type VpnConnectionArgs struct { 818 // The ID of the customer gateway. 819 CustomerGatewayId pulumi.StringInput 820 // Indicate whether to enable acceleration for the VPN connection. Supports only EC2 Transit Gateway. 821 EnableAcceleration pulumi.BoolPtrInput 822 // The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. 823 LocalIpv4NetworkCidr pulumi.StringPtrInput 824 // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. 825 LocalIpv6NetworkCidr pulumi.StringPtrInput 826 // Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` 827 OutsideIpAddressType pulumi.StringPtrInput 828 // The IPv4 CIDR on the AWS side of the VPN connection. 829 RemoteIpv4NetworkCidr pulumi.StringPtrInput 830 // The IPv6 CIDR on the AWS side of the VPN connection. 831 RemoteIpv6NetworkCidr pulumi.StringPtrInput 832 // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. 833 StaticRoutesOnly pulumi.BoolPtrInput 834 // Tags to apply to the connection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 835 Tags pulumi.StringMapInput 836 // The ID of the EC2 Transit Gateway. 837 TransitGatewayId pulumi.StringPtrInput 838 // . The attachment ID of the Transit Gateway attachment to Direct Connect Gateway. The ID is obtained through a data source only. 839 TransportTransitGatewayAttachmentId pulumi.StringPtrInput 840 // The action to take after DPD timeout occurs for the first VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 841 Tunnel1DpdTimeoutAction pulumi.StringPtrInput 842 // The number of seconds after which a DPD timeout occurs for the first VPN tunnel. Valid value is equal or higher than `30`. 843 Tunnel1DpdTimeoutSeconds pulumi.IntPtrInput 844 // Turn on or off tunnel endpoint lifecycle control feature for the first VPN tunnel. Valid values are `true | false`. 845 Tunnel1EnableTunnelLifecycleControl pulumi.BoolPtrInput 846 // The IKE versions that are permitted for the first VPN tunnel. Valid values are `ikev1 | ikev2`. 847 Tunnel1IkeVersions pulumi.StringArrayInput 848 // The CIDR block of the inside IP addresses for the first VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 849 Tunnel1InsideCidr pulumi.StringPtrInput 850 // The range of inside IPv6 addresses for the first VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 851 Tunnel1InsideIpv6Cidr pulumi.StringPtrInput 852 // Options for logging VPN tunnel activity. See Log Options below for more details. 853 Tunnel1LogOptions VpnConnectionTunnel1LogOptionsPtrInput 854 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 855 Tunnel1Phase1DhGroupNumbers pulumi.IntArrayInput 856 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 857 Tunnel1Phase1EncryptionAlgorithms pulumi.StringArrayInput 858 // One or more integrity algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 859 Tunnel1Phase1IntegrityAlgorithms pulumi.StringArrayInput 860 // The lifetime for phase 1 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `28800`. 861 Tunnel1Phase1LifetimeSeconds pulumi.IntPtrInput 862 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 863 Tunnel1Phase2DhGroupNumbers pulumi.IntArrayInput 864 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 865 Tunnel1Phase2EncryptionAlgorithms pulumi.StringArrayInput 866 // List of one or more integrity algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 867 Tunnel1Phase2IntegrityAlgorithms pulumi.StringArrayInput 868 // The lifetime for phase 2 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `3600`. 869 Tunnel1Phase2LifetimeSeconds pulumi.IntPtrInput 870 // The preshared key of the first VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 871 Tunnel1PresharedKey pulumi.StringPtrInput 872 // The percentage of the rekey window for the first VPN tunnel (determined by `tunnel1RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 873 Tunnel1RekeyFuzzPercentage pulumi.IntPtrInput 874 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the first VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel1RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel1Phase2LifetimeSeconds`. 875 Tunnel1RekeyMarginTimeSeconds pulumi.IntPtrInput 876 // The number of packets in an IKE replay window for the first VPN tunnel. Valid value is between `64` and `2048`. 877 Tunnel1ReplayWindowSize pulumi.IntPtrInput 878 // The action to take when the establishing the tunnel for the first VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 879 Tunnel1StartupAction pulumi.StringPtrInput 880 // The action to take after DPD timeout occurs for the second VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 881 Tunnel2DpdTimeoutAction pulumi.StringPtrInput 882 // The number of seconds after which a DPD timeout occurs for the second VPN tunnel. Valid value is equal or higher than `30`. 883 Tunnel2DpdTimeoutSeconds pulumi.IntPtrInput 884 // Turn on or off tunnel endpoint lifecycle control feature for the second VPN tunnel. Valid values are `true | false`. 885 Tunnel2EnableTunnelLifecycleControl pulumi.BoolPtrInput 886 // The IKE versions that are permitted for the second VPN tunnel. Valid values are `ikev1 | ikev2`. 887 Tunnel2IkeVersions pulumi.StringArrayInput 888 // The CIDR block of the inside IP addresses for the second VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 889 Tunnel2InsideCidr pulumi.StringPtrInput 890 // The range of inside IPv6 addresses for the second VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 891 Tunnel2InsideIpv6Cidr pulumi.StringPtrInput 892 // Options for logging VPN tunnel activity. See Log Options below for more details. 893 Tunnel2LogOptions VpnConnectionTunnel2LogOptionsPtrInput 894 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 895 Tunnel2Phase1DhGroupNumbers pulumi.IntArrayInput 896 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 897 Tunnel2Phase1EncryptionAlgorithms pulumi.StringArrayInput 898 // One or more integrity algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 899 Tunnel2Phase1IntegrityAlgorithms pulumi.StringArrayInput 900 // The lifetime for phase 1 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `28800`. 901 Tunnel2Phase1LifetimeSeconds pulumi.IntPtrInput 902 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 903 Tunnel2Phase2DhGroupNumbers pulumi.IntArrayInput 904 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 905 Tunnel2Phase2EncryptionAlgorithms pulumi.StringArrayInput 906 // List of one or more integrity algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 907 Tunnel2Phase2IntegrityAlgorithms pulumi.StringArrayInput 908 // The lifetime for phase 2 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `3600`. 909 Tunnel2Phase2LifetimeSeconds pulumi.IntPtrInput 910 // The preshared key of the second VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 911 Tunnel2PresharedKey pulumi.StringPtrInput 912 // The percentage of the rekey window for the second VPN tunnel (determined by `tunnel2RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 913 Tunnel2RekeyFuzzPercentage pulumi.IntPtrInput 914 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the second VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel2RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel2Phase2LifetimeSeconds`. 915 Tunnel2RekeyMarginTimeSeconds pulumi.IntPtrInput 916 // The number of packets in an IKE replay window for the second VPN tunnel. Valid value is between `64` and `2048`. 917 Tunnel2ReplayWindowSize pulumi.IntPtrInput 918 // The action to take when the establishing the tunnel for the second VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 919 Tunnel2StartupAction pulumi.StringPtrInput 920 // Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Valid values are `ipv4 | ipv6`. `ipv6` Supports only EC2 Transit Gateway. 921 TunnelInsideIpVersion pulumi.StringPtrInput 922 // The type of VPN connection. The only type AWS supports at this time is "ipsec.1". 923 Type pulumi.StringInput 924 // The ID of the Virtual Private Gateway. 925 VpnGatewayId pulumi.StringPtrInput 926 } 927 928 func (VpnConnectionArgs) ElementType() reflect.Type { 929 return reflect.TypeOf((*vpnConnectionArgs)(nil)).Elem() 930 } 931 932 type VpnConnectionInput interface { 933 pulumi.Input 934 935 ToVpnConnectionOutput() VpnConnectionOutput 936 ToVpnConnectionOutputWithContext(ctx context.Context) VpnConnectionOutput 937 } 938 939 func (*VpnConnection) ElementType() reflect.Type { 940 return reflect.TypeOf((**VpnConnection)(nil)).Elem() 941 } 942 943 func (i *VpnConnection) ToVpnConnectionOutput() VpnConnectionOutput { 944 return i.ToVpnConnectionOutputWithContext(context.Background()) 945 } 946 947 func (i *VpnConnection) ToVpnConnectionOutputWithContext(ctx context.Context) VpnConnectionOutput { 948 return pulumi.ToOutputWithContext(ctx, i).(VpnConnectionOutput) 949 } 950 951 // VpnConnectionArrayInput is an input type that accepts VpnConnectionArray and VpnConnectionArrayOutput values. 952 // You can construct a concrete instance of `VpnConnectionArrayInput` via: 953 // 954 // VpnConnectionArray{ VpnConnectionArgs{...} } 955 type VpnConnectionArrayInput interface { 956 pulumi.Input 957 958 ToVpnConnectionArrayOutput() VpnConnectionArrayOutput 959 ToVpnConnectionArrayOutputWithContext(context.Context) VpnConnectionArrayOutput 960 } 961 962 type VpnConnectionArray []VpnConnectionInput 963 964 func (VpnConnectionArray) ElementType() reflect.Type { 965 return reflect.TypeOf((*[]*VpnConnection)(nil)).Elem() 966 } 967 968 func (i VpnConnectionArray) ToVpnConnectionArrayOutput() VpnConnectionArrayOutput { 969 return i.ToVpnConnectionArrayOutputWithContext(context.Background()) 970 } 971 972 func (i VpnConnectionArray) ToVpnConnectionArrayOutputWithContext(ctx context.Context) VpnConnectionArrayOutput { 973 return pulumi.ToOutputWithContext(ctx, i).(VpnConnectionArrayOutput) 974 } 975 976 // VpnConnectionMapInput is an input type that accepts VpnConnectionMap and VpnConnectionMapOutput values. 977 // You can construct a concrete instance of `VpnConnectionMapInput` via: 978 // 979 // VpnConnectionMap{ "key": VpnConnectionArgs{...} } 980 type VpnConnectionMapInput interface { 981 pulumi.Input 982 983 ToVpnConnectionMapOutput() VpnConnectionMapOutput 984 ToVpnConnectionMapOutputWithContext(context.Context) VpnConnectionMapOutput 985 } 986 987 type VpnConnectionMap map[string]VpnConnectionInput 988 989 func (VpnConnectionMap) ElementType() reflect.Type { 990 return reflect.TypeOf((*map[string]*VpnConnection)(nil)).Elem() 991 } 992 993 func (i VpnConnectionMap) ToVpnConnectionMapOutput() VpnConnectionMapOutput { 994 return i.ToVpnConnectionMapOutputWithContext(context.Background()) 995 } 996 997 func (i VpnConnectionMap) ToVpnConnectionMapOutputWithContext(ctx context.Context) VpnConnectionMapOutput { 998 return pulumi.ToOutputWithContext(ctx, i).(VpnConnectionMapOutput) 999 } 1000 1001 type VpnConnectionOutput struct{ *pulumi.OutputState } 1002 1003 func (VpnConnectionOutput) ElementType() reflect.Type { 1004 return reflect.TypeOf((**VpnConnection)(nil)).Elem() 1005 } 1006 1007 func (o VpnConnectionOutput) ToVpnConnectionOutput() VpnConnectionOutput { 1008 return o 1009 } 1010 1011 func (o VpnConnectionOutput) ToVpnConnectionOutputWithContext(ctx context.Context) VpnConnectionOutput { 1012 return o 1013 } 1014 1015 // Amazon Resource Name (ARN) of the VPN Connection. 1016 func (o VpnConnectionOutput) Arn() pulumi.StringOutput { 1017 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 1018 } 1019 1020 // The ARN of the core network. 1021 func (o VpnConnectionOutput) CoreNetworkArn() pulumi.StringOutput { 1022 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.CoreNetworkArn }).(pulumi.StringOutput) 1023 } 1024 1025 // The ARN of the core network attachment. 1026 func (o VpnConnectionOutput) CoreNetworkAttachmentArn() pulumi.StringOutput { 1027 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.CoreNetworkAttachmentArn }).(pulumi.StringOutput) 1028 } 1029 1030 // The configuration information for the VPN connection's customer gateway (in the native XML format). 1031 func (o VpnConnectionOutput) CustomerGatewayConfiguration() pulumi.StringOutput { 1032 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.CustomerGatewayConfiguration }).(pulumi.StringOutput) 1033 } 1034 1035 // The ID of the customer gateway. 1036 func (o VpnConnectionOutput) CustomerGatewayId() pulumi.StringOutput { 1037 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.CustomerGatewayId }).(pulumi.StringOutput) 1038 } 1039 1040 // Indicate whether to enable acceleration for the VPN connection. Supports only EC2 Transit Gateway. 1041 func (o VpnConnectionOutput) EnableAcceleration() pulumi.BoolOutput { 1042 return o.ApplyT(func(v *VpnConnection) pulumi.BoolOutput { return v.EnableAcceleration }).(pulumi.BoolOutput) 1043 } 1044 1045 // The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. 1046 func (o VpnConnectionOutput) LocalIpv4NetworkCidr() pulumi.StringOutput { 1047 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.LocalIpv4NetworkCidr }).(pulumi.StringOutput) 1048 } 1049 1050 // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. 1051 func (o VpnConnectionOutput) LocalIpv6NetworkCidr() pulumi.StringOutput { 1052 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.LocalIpv6NetworkCidr }).(pulumi.StringOutput) 1053 } 1054 1055 // Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` 1056 func (o VpnConnectionOutput) OutsideIpAddressType() pulumi.StringOutput { 1057 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.OutsideIpAddressType }).(pulumi.StringOutput) 1058 } 1059 1060 // The IPv4 CIDR on the AWS side of the VPN connection. 1061 func (o VpnConnectionOutput) RemoteIpv4NetworkCidr() pulumi.StringOutput { 1062 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.RemoteIpv4NetworkCidr }).(pulumi.StringOutput) 1063 } 1064 1065 // The IPv6 CIDR on the AWS side of the VPN connection. 1066 func (o VpnConnectionOutput) RemoteIpv6NetworkCidr() pulumi.StringOutput { 1067 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.RemoteIpv6NetworkCidr }).(pulumi.StringOutput) 1068 } 1069 1070 // The static routes associated with the VPN connection. Detailed below. 1071 func (o VpnConnectionOutput) Routes() VpnConnectionRouteTypeArrayOutput { 1072 return o.ApplyT(func(v *VpnConnection) VpnConnectionRouteTypeArrayOutput { return v.Routes }).(VpnConnectionRouteTypeArrayOutput) 1073 } 1074 1075 // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. 1076 func (o VpnConnectionOutput) StaticRoutesOnly() pulumi.BoolOutput { 1077 return o.ApplyT(func(v *VpnConnection) pulumi.BoolOutput { return v.StaticRoutesOnly }).(pulumi.BoolOutput) 1078 } 1079 1080 // Tags to apply to the connection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 1081 func (o VpnConnectionOutput) Tags() pulumi.StringMapOutput { 1082 return o.ApplyT(func(v *VpnConnection) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 1083 } 1084 1085 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 1086 // 1087 // Deprecated: Please use `tags` instead. 1088 func (o VpnConnectionOutput) TagsAll() pulumi.StringMapOutput { 1089 return o.ApplyT(func(v *VpnConnection) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 1090 } 1091 1092 // When associated with an EC2 Transit Gateway (`transitGatewayId` argument), the attachment ID. See also the `ec2.Tag` resource for tagging the EC2 Transit Gateway VPN Attachment. 1093 func (o VpnConnectionOutput) TransitGatewayAttachmentId() pulumi.StringOutput { 1094 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.TransitGatewayAttachmentId }).(pulumi.StringOutput) 1095 } 1096 1097 // The ID of the EC2 Transit Gateway. 1098 func (o VpnConnectionOutput) TransitGatewayId() pulumi.StringPtrOutput { 1099 return o.ApplyT(func(v *VpnConnection) pulumi.StringPtrOutput { return v.TransitGatewayId }).(pulumi.StringPtrOutput) 1100 } 1101 1102 // . The attachment ID of the Transit Gateway attachment to Direct Connect Gateway. The ID is obtained through a data source only. 1103 func (o VpnConnectionOutput) TransportTransitGatewayAttachmentId() pulumi.StringPtrOutput { 1104 return o.ApplyT(func(v *VpnConnection) pulumi.StringPtrOutput { return v.TransportTransitGatewayAttachmentId }).(pulumi.StringPtrOutput) 1105 } 1106 1107 // The public IP address of the first VPN tunnel. 1108 func (o VpnConnectionOutput) Tunnel1Address() pulumi.StringOutput { 1109 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel1Address }).(pulumi.StringOutput) 1110 } 1111 1112 // The bgp asn number of the first VPN tunnel. 1113 func (o VpnConnectionOutput) Tunnel1BgpAsn() pulumi.StringOutput { 1114 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel1BgpAsn }).(pulumi.StringOutput) 1115 } 1116 1117 // The bgp holdtime of the first VPN tunnel. 1118 func (o VpnConnectionOutput) Tunnel1BgpHoldtime() pulumi.IntOutput { 1119 return o.ApplyT(func(v *VpnConnection) pulumi.IntOutput { return v.Tunnel1BgpHoldtime }).(pulumi.IntOutput) 1120 } 1121 1122 // The RFC 6890 link-local address of the first VPN tunnel (Customer Gateway Side). 1123 func (o VpnConnectionOutput) Tunnel1CgwInsideAddress() pulumi.StringOutput { 1124 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel1CgwInsideAddress }).(pulumi.StringOutput) 1125 } 1126 1127 // The action to take after DPD timeout occurs for the first VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 1128 func (o VpnConnectionOutput) Tunnel1DpdTimeoutAction() pulumi.StringPtrOutput { 1129 return o.ApplyT(func(v *VpnConnection) pulumi.StringPtrOutput { return v.Tunnel1DpdTimeoutAction }).(pulumi.StringPtrOutput) 1130 } 1131 1132 // The number of seconds after which a DPD timeout occurs for the first VPN tunnel. Valid value is equal or higher than `30`. 1133 func (o VpnConnectionOutput) Tunnel1DpdTimeoutSeconds() pulumi.IntPtrOutput { 1134 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel1DpdTimeoutSeconds }).(pulumi.IntPtrOutput) 1135 } 1136 1137 // Turn on or off tunnel endpoint lifecycle control feature for the first VPN tunnel. Valid values are `true | false`. 1138 func (o VpnConnectionOutput) Tunnel1EnableTunnelLifecycleControl() pulumi.BoolPtrOutput { 1139 return o.ApplyT(func(v *VpnConnection) pulumi.BoolPtrOutput { return v.Tunnel1EnableTunnelLifecycleControl }).(pulumi.BoolPtrOutput) 1140 } 1141 1142 // The IKE versions that are permitted for the first VPN tunnel. Valid values are `ikev1 | ikev2`. 1143 func (o VpnConnectionOutput) Tunnel1IkeVersions() pulumi.StringArrayOutput { 1144 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel1IkeVersions }).(pulumi.StringArrayOutput) 1145 } 1146 1147 // The CIDR block of the inside IP addresses for the first VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 1148 func (o VpnConnectionOutput) Tunnel1InsideCidr() pulumi.StringOutput { 1149 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel1InsideCidr }).(pulumi.StringOutput) 1150 } 1151 1152 // The range of inside IPv6 addresses for the first VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 1153 func (o VpnConnectionOutput) Tunnel1InsideIpv6Cidr() pulumi.StringOutput { 1154 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel1InsideIpv6Cidr }).(pulumi.StringOutput) 1155 } 1156 1157 // Options for logging VPN tunnel activity. See Log Options below for more details. 1158 func (o VpnConnectionOutput) Tunnel1LogOptions() VpnConnectionTunnel1LogOptionsOutput { 1159 return o.ApplyT(func(v *VpnConnection) VpnConnectionTunnel1LogOptionsOutput { return v.Tunnel1LogOptions }).(VpnConnectionTunnel1LogOptionsOutput) 1160 } 1161 1162 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 1163 func (o VpnConnectionOutput) Tunnel1Phase1DhGroupNumbers() pulumi.IntArrayOutput { 1164 return o.ApplyT(func(v *VpnConnection) pulumi.IntArrayOutput { return v.Tunnel1Phase1DhGroupNumbers }).(pulumi.IntArrayOutput) 1165 } 1166 1167 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 1168 func (o VpnConnectionOutput) Tunnel1Phase1EncryptionAlgorithms() pulumi.StringArrayOutput { 1169 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel1Phase1EncryptionAlgorithms }).(pulumi.StringArrayOutput) 1170 } 1171 1172 // One or more integrity algorithms that are permitted for the first VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 1173 func (o VpnConnectionOutput) Tunnel1Phase1IntegrityAlgorithms() pulumi.StringArrayOutput { 1174 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel1Phase1IntegrityAlgorithms }).(pulumi.StringArrayOutput) 1175 } 1176 1177 // The lifetime for phase 1 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `28800`. 1178 func (o VpnConnectionOutput) Tunnel1Phase1LifetimeSeconds() pulumi.IntPtrOutput { 1179 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel1Phase1LifetimeSeconds }).(pulumi.IntPtrOutput) 1180 } 1181 1182 // List of one or more Diffie-Hellman group numbers that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 1183 func (o VpnConnectionOutput) Tunnel1Phase2DhGroupNumbers() pulumi.IntArrayOutput { 1184 return o.ApplyT(func(v *VpnConnection) pulumi.IntArrayOutput { return v.Tunnel1Phase2DhGroupNumbers }).(pulumi.IntArrayOutput) 1185 } 1186 1187 // List of one or more encryption algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 1188 func (o VpnConnectionOutput) Tunnel1Phase2EncryptionAlgorithms() pulumi.StringArrayOutput { 1189 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel1Phase2EncryptionAlgorithms }).(pulumi.StringArrayOutput) 1190 } 1191 1192 // List of one or more integrity algorithms that are permitted for the first VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 1193 func (o VpnConnectionOutput) Tunnel1Phase2IntegrityAlgorithms() pulumi.StringArrayOutput { 1194 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel1Phase2IntegrityAlgorithms }).(pulumi.StringArrayOutput) 1195 } 1196 1197 // The lifetime for phase 2 of the IKE negotiation for the first VPN tunnel, in seconds. Valid value is between `900` and `3600`. 1198 func (o VpnConnectionOutput) Tunnel1Phase2LifetimeSeconds() pulumi.IntPtrOutput { 1199 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel1Phase2LifetimeSeconds }).(pulumi.IntPtrOutput) 1200 } 1201 1202 // The preshared key of the first VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 1203 func (o VpnConnectionOutput) Tunnel1PresharedKey() pulumi.StringOutput { 1204 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel1PresharedKey }).(pulumi.StringOutput) 1205 } 1206 1207 // The percentage of the rekey window for the first VPN tunnel (determined by `tunnel1RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 1208 func (o VpnConnectionOutput) Tunnel1RekeyFuzzPercentage() pulumi.IntPtrOutput { 1209 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel1RekeyFuzzPercentage }).(pulumi.IntPtrOutput) 1210 } 1211 1212 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the first VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel1RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel1Phase2LifetimeSeconds`. 1213 func (o VpnConnectionOutput) Tunnel1RekeyMarginTimeSeconds() pulumi.IntPtrOutput { 1214 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel1RekeyMarginTimeSeconds }).(pulumi.IntPtrOutput) 1215 } 1216 1217 // The number of packets in an IKE replay window for the first VPN tunnel. Valid value is between `64` and `2048`. 1218 func (o VpnConnectionOutput) Tunnel1ReplayWindowSize() pulumi.IntPtrOutput { 1219 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel1ReplayWindowSize }).(pulumi.IntPtrOutput) 1220 } 1221 1222 // The action to take when the establishing the tunnel for the first VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 1223 func (o VpnConnectionOutput) Tunnel1StartupAction() pulumi.StringPtrOutput { 1224 return o.ApplyT(func(v *VpnConnection) pulumi.StringPtrOutput { return v.Tunnel1StartupAction }).(pulumi.StringPtrOutput) 1225 } 1226 1227 // The RFC 6890 link-local address of the first VPN tunnel (VPN Gateway Side). 1228 func (o VpnConnectionOutput) Tunnel1VgwInsideAddress() pulumi.StringOutput { 1229 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel1VgwInsideAddress }).(pulumi.StringOutput) 1230 } 1231 1232 // The public IP address of the second VPN tunnel. 1233 func (o VpnConnectionOutput) Tunnel2Address() pulumi.StringOutput { 1234 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel2Address }).(pulumi.StringOutput) 1235 } 1236 1237 // The bgp asn number of the second VPN tunnel. 1238 func (o VpnConnectionOutput) Tunnel2BgpAsn() pulumi.StringOutput { 1239 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel2BgpAsn }).(pulumi.StringOutput) 1240 } 1241 1242 // The bgp holdtime of the second VPN tunnel. 1243 func (o VpnConnectionOutput) Tunnel2BgpHoldtime() pulumi.IntOutput { 1244 return o.ApplyT(func(v *VpnConnection) pulumi.IntOutput { return v.Tunnel2BgpHoldtime }).(pulumi.IntOutput) 1245 } 1246 1247 // The RFC 6890 link-local address of the second VPN tunnel (Customer Gateway Side). 1248 func (o VpnConnectionOutput) Tunnel2CgwInsideAddress() pulumi.StringOutput { 1249 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel2CgwInsideAddress }).(pulumi.StringOutput) 1250 } 1251 1252 // The action to take after DPD timeout occurs for the second VPN tunnel. Specify restart to restart the IKE initiation. Specify clear to end the IKE session. Valid values are `clear | none | restart`. 1253 func (o VpnConnectionOutput) Tunnel2DpdTimeoutAction() pulumi.StringPtrOutput { 1254 return o.ApplyT(func(v *VpnConnection) pulumi.StringPtrOutput { return v.Tunnel2DpdTimeoutAction }).(pulumi.StringPtrOutput) 1255 } 1256 1257 // The number of seconds after which a DPD timeout occurs for the second VPN tunnel. Valid value is equal or higher than `30`. 1258 func (o VpnConnectionOutput) Tunnel2DpdTimeoutSeconds() pulumi.IntPtrOutput { 1259 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel2DpdTimeoutSeconds }).(pulumi.IntPtrOutput) 1260 } 1261 1262 // Turn on or off tunnel endpoint lifecycle control feature for the second VPN tunnel. Valid values are `true | false`. 1263 func (o VpnConnectionOutput) Tunnel2EnableTunnelLifecycleControl() pulumi.BoolPtrOutput { 1264 return o.ApplyT(func(v *VpnConnection) pulumi.BoolPtrOutput { return v.Tunnel2EnableTunnelLifecycleControl }).(pulumi.BoolPtrOutput) 1265 } 1266 1267 // The IKE versions that are permitted for the second VPN tunnel. Valid values are `ikev1 | ikev2`. 1268 func (o VpnConnectionOutput) Tunnel2IkeVersions() pulumi.StringArrayOutput { 1269 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel2IkeVersions }).(pulumi.StringArrayOutput) 1270 } 1271 1272 // The CIDR block of the inside IP addresses for the second VPN tunnel. Valid value is a size /30 CIDR block from the 169.254.0.0/16 range. 1273 func (o VpnConnectionOutput) Tunnel2InsideCidr() pulumi.StringOutput { 1274 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel2InsideCidr }).(pulumi.StringOutput) 1275 } 1276 1277 // The range of inside IPv6 addresses for the second VPN tunnel. Supports only EC2 Transit Gateway. Valid value is a size /126 CIDR block from the local fd00::/8 range. 1278 func (o VpnConnectionOutput) Tunnel2InsideIpv6Cidr() pulumi.StringOutput { 1279 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel2InsideIpv6Cidr }).(pulumi.StringOutput) 1280 } 1281 1282 // Options for logging VPN tunnel activity. See Log Options below for more details. 1283 func (o VpnConnectionOutput) Tunnel2LogOptions() VpnConnectionTunnel2LogOptionsOutput { 1284 return o.ApplyT(func(v *VpnConnection) VpnConnectionTunnel2LogOptionsOutput { return v.Tunnel2LogOptions }).(VpnConnectionTunnel2LogOptionsOutput) 1285 } 1286 1287 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are ` 2 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 `. 1288 func (o VpnConnectionOutput) Tunnel2Phase1DhGroupNumbers() pulumi.IntArrayOutput { 1289 return o.ApplyT(func(v *VpnConnection) pulumi.IntArrayOutput { return v.Tunnel2Phase1DhGroupNumbers }).(pulumi.IntArrayOutput) 1290 } 1291 1292 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 1293 func (o VpnConnectionOutput) Tunnel2Phase1EncryptionAlgorithms() pulumi.StringArrayOutput { 1294 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel2Phase1EncryptionAlgorithms }).(pulumi.StringArrayOutput) 1295 } 1296 1297 // One or more integrity algorithms that are permitted for the second VPN tunnel for phase 1 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 1298 func (o VpnConnectionOutput) Tunnel2Phase1IntegrityAlgorithms() pulumi.StringArrayOutput { 1299 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel2Phase1IntegrityAlgorithms }).(pulumi.StringArrayOutput) 1300 } 1301 1302 // The lifetime for phase 1 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `28800`. 1303 func (o VpnConnectionOutput) Tunnel2Phase1LifetimeSeconds() pulumi.IntPtrOutput { 1304 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel2Phase1LifetimeSeconds }).(pulumi.IntPtrOutput) 1305 } 1306 1307 // List of one or more Diffie-Hellman group numbers that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `2 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24`. 1308 func (o VpnConnectionOutput) Tunnel2Phase2DhGroupNumbers() pulumi.IntArrayOutput { 1309 return o.ApplyT(func(v *VpnConnection) pulumi.IntArrayOutput { return v.Tunnel2Phase2DhGroupNumbers }).(pulumi.IntArrayOutput) 1310 } 1311 1312 // List of one or more encryption algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `AES128 | AES256 | AES128-GCM-16 | AES256-GCM-16`. 1313 func (o VpnConnectionOutput) Tunnel2Phase2EncryptionAlgorithms() pulumi.StringArrayOutput { 1314 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel2Phase2EncryptionAlgorithms }).(pulumi.StringArrayOutput) 1315 } 1316 1317 // List of one or more integrity algorithms that are permitted for the second VPN tunnel for phase 2 IKE negotiations. Valid values are `SHA1 | SHA2-256 | SHA2-384 | SHA2-512`. 1318 func (o VpnConnectionOutput) Tunnel2Phase2IntegrityAlgorithms() pulumi.StringArrayOutput { 1319 return o.ApplyT(func(v *VpnConnection) pulumi.StringArrayOutput { return v.Tunnel2Phase2IntegrityAlgorithms }).(pulumi.StringArrayOutput) 1320 } 1321 1322 // The lifetime for phase 2 of the IKE negotiation for the second VPN tunnel, in seconds. Valid value is between `900` and `3600`. 1323 func (o VpnConnectionOutput) Tunnel2Phase2LifetimeSeconds() pulumi.IntPtrOutput { 1324 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel2Phase2LifetimeSeconds }).(pulumi.IntPtrOutput) 1325 } 1326 1327 // The preshared key of the second VPN tunnel. The preshared key must be between 8 and 64 characters in length and cannot start with zero(0). Allowed characters are alphanumeric characters, periods(.) and underscores(_). 1328 func (o VpnConnectionOutput) Tunnel2PresharedKey() pulumi.StringOutput { 1329 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel2PresharedKey }).(pulumi.StringOutput) 1330 } 1331 1332 // The percentage of the rekey window for the second VPN tunnel (determined by `tunnel2RekeyMarginTimeSeconds`) during which the rekey time is randomly selected. Valid value is between `0` and `100`. 1333 func (o VpnConnectionOutput) Tunnel2RekeyFuzzPercentage() pulumi.IntPtrOutput { 1334 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel2RekeyFuzzPercentage }).(pulumi.IntPtrOutput) 1335 } 1336 1337 // The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the second VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for `tunnel2RekeyFuzzPercentage`. Valid value is between `60` and half of `tunnel2Phase2LifetimeSeconds`. 1338 func (o VpnConnectionOutput) Tunnel2RekeyMarginTimeSeconds() pulumi.IntPtrOutput { 1339 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel2RekeyMarginTimeSeconds }).(pulumi.IntPtrOutput) 1340 } 1341 1342 // The number of packets in an IKE replay window for the second VPN tunnel. Valid value is between `64` and `2048`. 1343 func (o VpnConnectionOutput) Tunnel2ReplayWindowSize() pulumi.IntPtrOutput { 1344 return o.ApplyT(func(v *VpnConnection) pulumi.IntPtrOutput { return v.Tunnel2ReplayWindowSize }).(pulumi.IntPtrOutput) 1345 } 1346 1347 // The action to take when the establishing the tunnel for the second VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for AWS to initiate the IKE negotiation. Valid values are `add | start`. 1348 func (o VpnConnectionOutput) Tunnel2StartupAction() pulumi.StringPtrOutput { 1349 return o.ApplyT(func(v *VpnConnection) pulumi.StringPtrOutput { return v.Tunnel2StartupAction }).(pulumi.StringPtrOutput) 1350 } 1351 1352 // The RFC 6890 link-local address of the second VPN tunnel (VPN Gateway Side). 1353 func (o VpnConnectionOutput) Tunnel2VgwInsideAddress() pulumi.StringOutput { 1354 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Tunnel2VgwInsideAddress }).(pulumi.StringOutput) 1355 } 1356 1357 // Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Valid values are `ipv4 | ipv6`. `ipv6` Supports only EC2 Transit Gateway. 1358 func (o VpnConnectionOutput) TunnelInsideIpVersion() pulumi.StringOutput { 1359 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.TunnelInsideIpVersion }).(pulumi.StringOutput) 1360 } 1361 1362 // The type of VPN connection. The only type AWS supports at this time is "ipsec.1". 1363 func (o VpnConnectionOutput) Type() pulumi.StringOutput { 1364 return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 1365 } 1366 1367 // Telemetry for the VPN tunnels. Detailed below. 1368 func (o VpnConnectionOutput) VgwTelemetries() VpnConnectionVgwTelemetryArrayOutput { 1369 return o.ApplyT(func(v *VpnConnection) VpnConnectionVgwTelemetryArrayOutput { return v.VgwTelemetries }).(VpnConnectionVgwTelemetryArrayOutput) 1370 } 1371 1372 // The ID of the Virtual Private Gateway. 1373 func (o VpnConnectionOutput) VpnGatewayId() pulumi.StringPtrOutput { 1374 return o.ApplyT(func(v *VpnConnection) pulumi.StringPtrOutput { return v.VpnGatewayId }).(pulumi.StringPtrOutput) 1375 } 1376 1377 type VpnConnectionArrayOutput struct{ *pulumi.OutputState } 1378 1379 func (VpnConnectionArrayOutput) ElementType() reflect.Type { 1380 return reflect.TypeOf((*[]*VpnConnection)(nil)).Elem() 1381 } 1382 1383 func (o VpnConnectionArrayOutput) ToVpnConnectionArrayOutput() VpnConnectionArrayOutput { 1384 return o 1385 } 1386 1387 func (o VpnConnectionArrayOutput) ToVpnConnectionArrayOutputWithContext(ctx context.Context) VpnConnectionArrayOutput { 1388 return o 1389 } 1390 1391 func (o VpnConnectionArrayOutput) Index(i pulumi.IntInput) VpnConnectionOutput { 1392 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpnConnection { 1393 return vs[0].([]*VpnConnection)[vs[1].(int)] 1394 }).(VpnConnectionOutput) 1395 } 1396 1397 type VpnConnectionMapOutput struct{ *pulumi.OutputState } 1398 1399 func (VpnConnectionMapOutput) ElementType() reflect.Type { 1400 return reflect.TypeOf((*map[string]*VpnConnection)(nil)).Elem() 1401 } 1402 1403 func (o VpnConnectionMapOutput) ToVpnConnectionMapOutput() VpnConnectionMapOutput { 1404 return o 1405 } 1406 1407 func (o VpnConnectionMapOutput) ToVpnConnectionMapOutputWithContext(ctx context.Context) VpnConnectionMapOutput { 1408 return o 1409 } 1410 1411 func (o VpnConnectionMapOutput) MapIndex(k pulumi.StringInput) VpnConnectionOutput { 1412 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpnConnection { 1413 return vs[0].(map[string]*VpnConnection)[vs[1].(string)] 1414 }).(VpnConnectionOutput) 1415 } 1416 1417 func init() { 1418 pulumi.RegisterInputType(reflect.TypeOf((*VpnConnectionInput)(nil)).Elem(), &VpnConnection{}) 1419 pulumi.RegisterInputType(reflect.TypeOf((*VpnConnectionArrayInput)(nil)).Elem(), VpnConnectionArray{}) 1420 pulumi.RegisterInputType(reflect.TypeOf((*VpnConnectionMapInput)(nil)).Elem(), VpnConnectionMap{}) 1421 pulumi.RegisterOutputType(VpnConnectionOutput{}) 1422 pulumi.RegisterOutputType(VpnConnectionArrayOutput{}) 1423 pulumi.RegisterOutputType(VpnConnectionMapOutput{}) 1424 }