/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The VPN tunnel options.See Also:
AWS
* API Reference
The number of seconds after which a Dead Peer Detection (DPD) timeout * occurs.
*/ inline int GetDpdTimeoutSeconds() const{ return m_dpdTimeoutSeconds; } /** *The number of seconds after which a Dead Peer Detection (DPD) timeout * occurs.
*/ inline bool DpdTimeoutSecondsHasBeenSet() const { return m_dpdTimeoutSecondsHasBeenSet; } /** *The number of seconds after which a Dead Peer Detection (DPD) timeout * occurs.
*/ inline void SetDpdTimeoutSeconds(int value) { m_dpdTimeoutSecondsHasBeenSet = true; m_dpdTimeoutSeconds = value; } /** *The number of seconds after which a Dead Peer Detection (DPD) timeout * occurs.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithDpdTimeoutSeconds(int value) { SetDpdTimeoutSeconds(value); return *this;} /** *The Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline const Aws::VectorThe Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline bool IkeVersionsHasBeenSet() const { return m_ikeVersionsHasBeenSet; } /** *The Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline void SetIkeVersions(const Aws::VectorThe Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline void SetIkeVersions(Aws::VectorThe Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithIkeVersions(const Aws::VectorThe Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithIkeVersions(Aws::VectorThe Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddIkeVersions(const Aws::String& value) { m_ikeVersionsHasBeenSet = true; m_ikeVersions.push_back(value); return *this; } /** *The Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddIkeVersions(Aws::String&& value) { m_ikeVersionsHasBeenSet = true; m_ikeVersions.push_back(std::move(value)); return *this; } /** *The Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddIkeVersions(const char* value) { m_ikeVersionsHasBeenSet = true; m_ikeVersions.push_back(value); return *this; } /** *The external IP address of the VPN tunnel.
*/ inline const Aws::String& GetOutsideIpAddress() const{ return m_outsideIpAddress; } /** *The external IP address of the VPN tunnel.
*/ inline bool OutsideIpAddressHasBeenSet() const { return m_outsideIpAddressHasBeenSet; } /** *The external IP address of the VPN tunnel.
*/ inline void SetOutsideIpAddress(const Aws::String& value) { m_outsideIpAddressHasBeenSet = true; m_outsideIpAddress = value; } /** *The external IP address of the VPN tunnel.
*/ inline void SetOutsideIpAddress(Aws::String&& value) { m_outsideIpAddressHasBeenSet = true; m_outsideIpAddress = std::move(value); } /** *The external IP address of the VPN tunnel.
*/ inline void SetOutsideIpAddress(const char* value) { m_outsideIpAddressHasBeenSet = true; m_outsideIpAddress.assign(value); } /** *The external IP address of the VPN tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithOutsideIpAddress(const Aws::String& value) { SetOutsideIpAddress(value); return *this;} /** *The external IP address of the VPN tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithOutsideIpAddress(Aws::String&& value) { SetOutsideIpAddress(std::move(value)); return *this;} /** *The external IP address of the VPN tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithOutsideIpAddress(const char* value) { SetOutsideIpAddress(value); return *this;} /** *The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline bool Phase1DhGroupNumbersHasBeenSet() const { return m_phase1DhGroupNumbersHasBeenSet; } /** *The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline void SetPhase1DhGroupNumbers(const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline void SetPhase1DhGroupNumbers(Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1DhGroupNumbers(const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1DhGroupNumbers(Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase1DhGroupNumbers(int value) { m_phase1DhGroupNumbersHasBeenSet = true; m_phase1DhGroupNumbers.push_back(value); return *this; } /** *The permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline bool Phase1EncryptionAlgorithmsHasBeenSet() const { return m_phase1EncryptionAlgorithmsHasBeenSet; } /** *The permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline void SetPhase1EncryptionAlgorithms(const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline void SetPhase1EncryptionAlgorithms(Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1EncryptionAlgorithms(const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1EncryptionAlgorithms(Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase1EncryptionAlgorithms(const Aws::String& value) { m_phase1EncryptionAlgorithmsHasBeenSet = true; m_phase1EncryptionAlgorithms.push_back(value); return *this; } /** *The permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase1EncryptionAlgorithms(Aws::String&& value) { m_phase1EncryptionAlgorithmsHasBeenSet = true; m_phase1EncryptionAlgorithms.push_back(std::move(value)); return *this; } /** *The permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase1EncryptionAlgorithms(const char* value) { m_phase1EncryptionAlgorithmsHasBeenSet = true; m_phase1EncryptionAlgorithms.push_back(value); return *this; } /** *The permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline bool Phase1IntegrityAlgorithmsHasBeenSet() const { return m_phase1IntegrityAlgorithmsHasBeenSet; } /** *The permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline void SetPhase1IntegrityAlgorithms(const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline void SetPhase1IntegrityAlgorithms(Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1IntegrityAlgorithms(const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1IntegrityAlgorithms(Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase1IntegrityAlgorithms(const Aws::String& value) { m_phase1IntegrityAlgorithmsHasBeenSet = true; m_phase1IntegrityAlgorithms.push_back(value); return *this; } /** *The permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase1IntegrityAlgorithms(Aws::String&& value) { m_phase1IntegrityAlgorithmsHasBeenSet = true; m_phase1IntegrityAlgorithms.push_back(std::move(value)); return *this; } /** *The permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase1IntegrityAlgorithms(const char* value) { m_phase1IntegrityAlgorithmsHasBeenSet = true; m_phase1IntegrityAlgorithms.push_back(value); return *this; } /** *The lifetime for phase 1 of the IKE negotiation, in seconds.
*/ inline int GetPhase1LifetimeSeconds() const{ return m_phase1LifetimeSeconds; } /** *The lifetime for phase 1 of the IKE negotiation, in seconds.
*/ inline bool Phase1LifetimeSecondsHasBeenSet() const { return m_phase1LifetimeSecondsHasBeenSet; } /** *The lifetime for phase 1 of the IKE negotiation, in seconds.
*/ inline void SetPhase1LifetimeSeconds(int value) { m_phase1LifetimeSecondsHasBeenSet = true; m_phase1LifetimeSeconds = value; } /** *The lifetime for phase 1 of the IKE negotiation, in seconds.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1LifetimeSeconds(int value) { SetPhase1LifetimeSeconds(value); return *this;} /** *The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline bool Phase2DhGroupNumbersHasBeenSet() const { return m_phase2DhGroupNumbersHasBeenSet; } /** *The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline void SetPhase2DhGroupNumbers(const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline void SetPhase2DhGroupNumbers(Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2DhGroupNumbers(const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2DhGroupNumbers(Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase2DhGroupNumbers(int value) { m_phase2DhGroupNumbersHasBeenSet = true; m_phase2DhGroupNumbers.push_back(value); return *this; } /** *The permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline bool Phase2EncryptionAlgorithmsHasBeenSet() const { return m_phase2EncryptionAlgorithmsHasBeenSet; } /** *The permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline void SetPhase2EncryptionAlgorithms(const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline void SetPhase2EncryptionAlgorithms(Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2EncryptionAlgorithms(const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2EncryptionAlgorithms(Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase2EncryptionAlgorithms(const Aws::String& value) { m_phase2EncryptionAlgorithmsHasBeenSet = true; m_phase2EncryptionAlgorithms.push_back(value); return *this; } /** *The permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase2EncryptionAlgorithms(Aws::String&& value) { m_phase2EncryptionAlgorithmsHasBeenSet = true; m_phase2EncryptionAlgorithms.push_back(std::move(value)); return *this; } /** *The permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase2EncryptionAlgorithms(const char* value) { m_phase2EncryptionAlgorithmsHasBeenSet = true; m_phase2EncryptionAlgorithms.push_back(value); return *this; } /** *The permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline bool Phase2IntegrityAlgorithmsHasBeenSet() const { return m_phase2IntegrityAlgorithmsHasBeenSet; } /** *The permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline void SetPhase2IntegrityAlgorithms(const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline void SetPhase2IntegrityAlgorithms(Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2IntegrityAlgorithms(const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2IntegrityAlgorithms(Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase2IntegrityAlgorithms(const Aws::String& value) { m_phase2IntegrityAlgorithmsHasBeenSet = true; m_phase2IntegrityAlgorithms.push_back(value); return *this; } /** *The permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase2IntegrityAlgorithms(Aws::String&& value) { m_phase2IntegrityAlgorithmsHasBeenSet = true; m_phase2IntegrityAlgorithms.push_back(std::move(value)); return *this; } /** *The permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& AddPhase2IntegrityAlgorithms(const char* value) { m_phase2IntegrityAlgorithmsHasBeenSet = true; m_phase2IntegrityAlgorithms.push_back(value); return *this; } /** *The lifetime for phase 2 of the IKE negotiation, in seconds.
*/ inline int GetPhase2LifetimeSeconds() const{ return m_phase2LifetimeSeconds; } /** *The lifetime for phase 2 of the IKE negotiation, in seconds.
*/ inline bool Phase2LifetimeSecondsHasBeenSet() const { return m_phase2LifetimeSecondsHasBeenSet; } /** *The lifetime for phase 2 of the IKE negotiation, in seconds.
*/ inline void SetPhase2LifetimeSeconds(int value) { m_phase2LifetimeSecondsHasBeenSet = true; m_phase2LifetimeSeconds = value; } /** *The lifetime for phase 2 of the IKE negotiation, in seconds.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2LifetimeSeconds(int value) { SetPhase2LifetimeSeconds(value); return *this;} /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline const Aws::String& GetPreSharedKey() const{ return m_preSharedKey; } /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline bool PreSharedKeyHasBeenSet() const { return m_preSharedKeyHasBeenSet; } /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline void SetPreSharedKey(const Aws::String& value) { m_preSharedKeyHasBeenSet = true; m_preSharedKey = value; } /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline void SetPreSharedKey(Aws::String&& value) { m_preSharedKeyHasBeenSet = true; m_preSharedKey = std::move(value); } /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline void SetPreSharedKey(const char* value) { m_preSharedKeyHasBeenSet = true; m_preSharedKey.assign(value); } /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPreSharedKey(const Aws::String& value) { SetPreSharedKey(value); return *this;} /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPreSharedKey(Aws::String&& value) { SetPreSharedKey(std::move(value)); return *this;} /** *The preshared key to establish initial authentication between the virtual * private gateway and the customer gateway.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPreSharedKey(const char* value) { SetPreSharedKey(value); return *this;} /** *The percentage of the rekey window, which is determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
The percentage of the rekey window, which is determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
The percentage of the rekey window, which is determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
The percentage of the rekey window, which is determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
The margin time, in seconds, before the phase 2 lifetime expires, during * which the Amazon Web Services side of the VPN connection performs an IKE * rekey.
*/ inline int GetRekeyMarginTimeSeconds() const{ return m_rekeyMarginTimeSeconds; } /** *The margin time, in seconds, before the phase 2 lifetime expires, during * which the Amazon Web Services side of the VPN connection performs an IKE * rekey.
*/ inline bool RekeyMarginTimeSecondsHasBeenSet() const { return m_rekeyMarginTimeSecondsHasBeenSet; } /** *The margin time, in seconds, before the phase 2 lifetime expires, during * which the Amazon Web Services side of the VPN connection performs an IKE * rekey.
*/ inline void SetRekeyMarginTimeSeconds(int value) { m_rekeyMarginTimeSecondsHasBeenSet = true; m_rekeyMarginTimeSeconds = value; } /** *The margin time, in seconds, before the phase 2 lifetime expires, during * which the Amazon Web Services side of the VPN connection performs an IKE * rekey.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithRekeyMarginTimeSeconds(int value) { SetRekeyMarginTimeSeconds(value); return *this;} /** *The number of packets in an IKE replay window.
*/ inline int GetReplayWindowSize() const{ return m_replayWindowSize; } /** *The number of packets in an IKE replay window.
*/ inline bool ReplayWindowSizeHasBeenSet() const { return m_replayWindowSizeHasBeenSet; } /** *The number of packets in an IKE replay window.
*/ inline void SetReplayWindowSize(int value) { m_replayWindowSizeHasBeenSet = true; m_replayWindowSize = value; } /** *The number of packets in an IKE replay window.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithReplayWindowSize(int value) { SetReplayWindowSize(value); return *this;} /** *The range of inside IPv4 addresses for the tunnel.
*/ inline const Aws::String& GetTunnelInsideCidr() const{ return m_tunnelInsideCidr; } /** *The range of inside IPv4 addresses for the tunnel.
*/ inline bool TunnelInsideCidrHasBeenSet() const { return m_tunnelInsideCidrHasBeenSet; } /** *The range of inside IPv4 addresses for the tunnel.
*/ inline void SetTunnelInsideCidr(const Aws::String& value) { m_tunnelInsideCidrHasBeenSet = true; m_tunnelInsideCidr = value; } /** *The range of inside IPv4 addresses for the tunnel.
*/ inline void SetTunnelInsideCidr(Aws::String&& value) { m_tunnelInsideCidrHasBeenSet = true; m_tunnelInsideCidr = std::move(value); } /** *The range of inside IPv4 addresses for the tunnel.
*/ inline void SetTunnelInsideCidr(const char* value) { m_tunnelInsideCidrHasBeenSet = true; m_tunnelInsideCidr.assign(value); } /** *The range of inside IPv4 addresses for the tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithTunnelInsideCidr(const Aws::String& value) { SetTunnelInsideCidr(value); return *this;} /** *The range of inside IPv4 addresses for the tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithTunnelInsideCidr(Aws::String&& value) { SetTunnelInsideCidr(std::move(value)); return *this;} /** *The range of inside IPv4 addresses for the tunnel.
*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithTunnelInsideCidr(const char* value) { SetTunnelInsideCidr(value); return *this;} private: int m_dpdTimeoutSeconds; bool m_dpdTimeoutSecondsHasBeenSet = false; Aws::Vector