/**
* 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 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 TunnelOption& WithOutsideIpAddress(const Aws::String& value) { SetOutsideIpAddress(value); return *this;} /** *The external IP address of the VPN tunnel.
*/ inline TunnelOption& WithOutsideIpAddress(Aws::String&& value) { SetOutsideIpAddress(std::move(value)); return *this;} /** *The external IP address of the VPN tunnel.
*/ inline TunnelOption& WithOutsideIpAddress(const char* value) { SetOutsideIpAddress(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 TunnelOption& WithTunnelInsideCidr(const Aws::String& value) { SetTunnelInsideCidr(value); return *this;} /** *The range of inside IPv4 addresses for the tunnel.
*/ inline TunnelOption& WithTunnelInsideCidr(Aws::String&& value) { SetTunnelInsideCidr(std::move(value)); return *this;} /** *The range of inside IPv4 addresses for the tunnel.
*/ inline TunnelOption& WithTunnelInsideCidr(const char* value) { SetTunnelInsideCidr(value); return *this;} /** *The range of inside IPv6 addresses for the tunnel.
*/ inline const Aws::String& GetTunnelInsideIpv6Cidr() const{ return m_tunnelInsideIpv6Cidr; } /** *The range of inside IPv6 addresses for the tunnel.
*/ inline bool TunnelInsideIpv6CidrHasBeenSet() const { return m_tunnelInsideIpv6CidrHasBeenSet; } /** *The range of inside IPv6 addresses for the tunnel.
*/ inline void SetTunnelInsideIpv6Cidr(const Aws::String& value) { m_tunnelInsideIpv6CidrHasBeenSet = true; m_tunnelInsideIpv6Cidr = value; } /** *The range of inside IPv6 addresses for the tunnel.
*/ inline void SetTunnelInsideIpv6Cidr(Aws::String&& value) { m_tunnelInsideIpv6CidrHasBeenSet = true; m_tunnelInsideIpv6Cidr = std::move(value); } /** *The range of inside IPv6 addresses for the tunnel.
*/ inline void SetTunnelInsideIpv6Cidr(const char* value) { m_tunnelInsideIpv6CidrHasBeenSet = true; m_tunnelInsideIpv6Cidr.assign(value); } /** *The range of inside IPv6 addresses for the tunnel.
*/ inline TunnelOption& WithTunnelInsideIpv6Cidr(const Aws::String& value) { SetTunnelInsideIpv6Cidr(value); return *this;} /** *The range of inside IPv6 addresses for the tunnel.
*/ inline TunnelOption& WithTunnelInsideIpv6Cidr(Aws::String&& value) { SetTunnelInsideIpv6Cidr(std::move(value)); return *this;} /** *The range of inside IPv6 addresses for the tunnel.
*/ inline TunnelOption& WithTunnelInsideIpv6Cidr(const char* value) { SetTunnelInsideIpv6Cidr(value); return *this;} /** *The pre-shared key (PSK) to establish initial authentication between the * virtual private gateway and the customer gateway.
*/ inline const Aws::String& GetPreSharedKey() const{ return m_preSharedKey; } /** *The pre-shared key (PSK) to establish initial authentication between the * virtual private gateway and the customer gateway.
*/ inline bool PreSharedKeyHasBeenSet() const { return m_preSharedKeyHasBeenSet; } /** *The pre-shared key (PSK) 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 pre-shared key (PSK) 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 pre-shared key (PSK) 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 pre-shared key (PSK) to establish initial authentication between the * virtual private gateway and the customer gateway.
*/ inline TunnelOption& WithPreSharedKey(const Aws::String& value) { SetPreSharedKey(value); return *this;} /** *The pre-shared key (PSK) to establish initial authentication between the * virtual private gateway and the customer gateway.
*/ inline TunnelOption& WithPreSharedKey(Aws::String&& value) { SetPreSharedKey(std::move(value)); return *this;} /** *The pre-shared key (PSK) to establish initial authentication between the * virtual private gateway and the customer gateway.
*/ inline TunnelOption& WithPreSharedKey(const char* value) { SetPreSharedKey(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 TunnelOption& WithPhase1LifetimeSeconds(int value) { SetPhase1LifetimeSeconds(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 TunnelOption& WithPhase2LifetimeSeconds(int value) { SetPhase2LifetimeSeconds(value); return *this;} /** *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 TunnelOption& WithRekeyMarginTimeSeconds(int value) { SetRekeyMarginTimeSeconds(value); return *this;} /** *The percentage of the rekey window determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
The percentage of the rekey window determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
The percentage of the rekey window determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
The percentage of the rekey window determined by
* RekeyMarginTimeSeconds
during which the rekey time is randomly
* selected.
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 TunnelOption& WithReplayWindowSize(int value) { SetReplayWindowSize(value); return *this;} /** *The number of seconds after which a DPD timeout occurs.
*/ inline int GetDpdTimeoutSeconds() const{ return m_dpdTimeoutSeconds; } /** *The number of seconds after which a DPD timeout occurs.
*/ inline bool DpdTimeoutSecondsHasBeenSet() const { return m_dpdTimeoutSecondsHasBeenSet; } /** *The number of seconds after which a DPD timeout occurs.
*/ inline void SetDpdTimeoutSeconds(int value) { m_dpdTimeoutSecondsHasBeenSet = true; m_dpdTimeoutSeconds = value; } /** *The number of seconds after which a DPD timeout occurs.
*/ inline TunnelOption& WithDpdTimeoutSeconds(int value) { SetDpdTimeoutSeconds(value); return *this;} /** *The action to take after a DPD timeout occurs.
*/ inline const Aws::String& GetDpdTimeoutAction() const{ return m_dpdTimeoutAction; } /** *The action to take after a DPD timeout occurs.
*/ inline bool DpdTimeoutActionHasBeenSet() const { return m_dpdTimeoutActionHasBeenSet; } /** *The action to take after a DPD timeout occurs.
*/ inline void SetDpdTimeoutAction(const Aws::String& value) { m_dpdTimeoutActionHasBeenSet = true; m_dpdTimeoutAction = value; } /** *The action to take after a DPD timeout occurs.
*/ inline void SetDpdTimeoutAction(Aws::String&& value) { m_dpdTimeoutActionHasBeenSet = true; m_dpdTimeoutAction = std::move(value); } /** *The action to take after a DPD timeout occurs.
*/ inline void SetDpdTimeoutAction(const char* value) { m_dpdTimeoutActionHasBeenSet = true; m_dpdTimeoutAction.assign(value); } /** *The action to take after a DPD timeout occurs.
*/ inline TunnelOption& WithDpdTimeoutAction(const Aws::String& value) { SetDpdTimeoutAction(value); return *this;} /** *The action to take after a DPD timeout occurs.
*/ inline TunnelOption& WithDpdTimeoutAction(Aws::String&& value) { SetDpdTimeoutAction(std::move(value)); return *this;} /** *The action to take after a DPD timeout occurs.
*/ inline TunnelOption& WithDpdTimeoutAction(const char* value) { SetDpdTimeoutAction(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 TunnelOption& WithPhase1EncryptionAlgorithms(const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline TunnelOption& WithPhase1EncryptionAlgorithms(Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline TunnelOption& AddPhase1EncryptionAlgorithms(const Phase1EncryptionAlgorithmsListValue& 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 TunnelOption& AddPhase1EncryptionAlgorithms(Phase1EncryptionAlgorithmsListValue&& value) { m_phase1EncryptionAlgorithmsHasBeenSet = true; m_phase1EncryptionAlgorithms.push_back(std::move(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 TunnelOption& WithPhase2EncryptionAlgorithms(const Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline TunnelOption& WithPhase2EncryptionAlgorithms(Aws::VectorThe permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline TunnelOption& AddPhase2EncryptionAlgorithms(const Phase2EncryptionAlgorithmsListValue& 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 TunnelOption& AddPhase2EncryptionAlgorithms(Phase2EncryptionAlgorithmsListValue&& value) { m_phase2EncryptionAlgorithmsHasBeenSet = true; m_phase2EncryptionAlgorithms.push_back(std::move(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 TunnelOption& WithPhase1IntegrityAlgorithms(const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline TunnelOption& WithPhase1IntegrityAlgorithms(Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline TunnelOption& AddPhase1IntegrityAlgorithms(const Phase1IntegrityAlgorithmsListValue& 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 TunnelOption& AddPhase1IntegrityAlgorithms(Phase1IntegrityAlgorithmsListValue&& value) { m_phase1IntegrityAlgorithmsHasBeenSet = true; m_phase1IntegrityAlgorithms.push_back(std::move(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 TunnelOption& WithPhase2IntegrityAlgorithms(const Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline TunnelOption& WithPhase2IntegrityAlgorithms(Aws::VectorThe permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline TunnelOption& AddPhase2IntegrityAlgorithms(const Phase2IntegrityAlgorithmsListValue& 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 TunnelOption& AddPhase2IntegrityAlgorithms(Phase2IntegrityAlgorithmsListValue&& value) { m_phase2IntegrityAlgorithmsHasBeenSet = true; m_phase2IntegrityAlgorithms.push_back(std::move(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 TunnelOption& WithPhase1DHGroupNumbers(const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline TunnelOption& WithPhase1DHGroupNumbers(Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline TunnelOption& AddPhase1DHGroupNumbers(const Phase1DHGroupNumbersListValue& value) { m_phase1DHGroupNumbersHasBeenSet = true; m_phase1DHGroupNumbers.push_back(value); return *this; } /** *The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.
*/ inline TunnelOption& AddPhase1DHGroupNumbers(Phase1DHGroupNumbersListValue&& value) { m_phase1DHGroupNumbersHasBeenSet = true; m_phase1DHGroupNumbers.push_back(std::move(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 TunnelOption& WithPhase2DHGroupNumbers(const Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline TunnelOption& WithPhase2DHGroupNumbers(Aws::VectorThe permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline TunnelOption& AddPhase2DHGroupNumbers(const Phase2DHGroupNumbersListValue& value) { m_phase2DHGroupNumbersHasBeenSet = true; m_phase2DHGroupNumbers.push_back(value); return *this; } /** *The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.
*/ inline TunnelOption& AddPhase2DHGroupNumbers(Phase2DHGroupNumbersListValue&& value) { m_phase2DHGroupNumbersHasBeenSet = true; m_phase2DHGroupNumbers.push_back(std::move(value)); return *this; } /** *The IKE versions that are permitted for the VPN tunnel.
*/ inline const Aws::VectorThe IKE versions that are permitted for the VPN tunnel.
*/ inline bool IkeVersionsHasBeenSet() const { return m_ikeVersionsHasBeenSet; } /** *The IKE versions that are permitted for the VPN tunnel.
*/ inline void SetIkeVersions(const Aws::VectorThe IKE versions that are permitted for the VPN tunnel.
*/ inline void SetIkeVersions(Aws::VectorThe IKE versions that are permitted for the VPN tunnel.
*/ inline TunnelOption& WithIkeVersions(const Aws::VectorThe IKE versions that are permitted for the VPN tunnel.
*/ inline TunnelOption& WithIkeVersions(Aws::VectorThe IKE versions that are permitted for the VPN tunnel.
*/ inline TunnelOption& AddIkeVersions(const IKEVersionsListValue& value) { m_ikeVersionsHasBeenSet = true; m_ikeVersions.push_back(value); return *this; } /** *The IKE versions that are permitted for the VPN tunnel.
*/ inline TunnelOption& AddIkeVersions(IKEVersionsListValue&& value) { m_ikeVersionsHasBeenSet = true; m_ikeVersions.push_back(std::move(value)); return *this; } /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline const Aws::String& GetStartupAction() const{ return m_startupAction; } /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline bool StartupActionHasBeenSet() const { return m_startupActionHasBeenSet; } /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline void SetStartupAction(const Aws::String& value) { m_startupActionHasBeenSet = true; m_startupAction = value; } /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline void SetStartupAction(Aws::String&& value) { m_startupActionHasBeenSet = true; m_startupAction = std::move(value); } /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline void SetStartupAction(const char* value) { m_startupActionHasBeenSet = true; m_startupAction.assign(value); } /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline TunnelOption& WithStartupAction(const Aws::String& value) { SetStartupAction(value); return *this;} /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline TunnelOption& WithStartupAction(Aws::String&& value) { SetStartupAction(std::move(value)); return *this;} /** *The action to take when the establishing the VPN tunnels for a VPN * connection.
*/ inline TunnelOption& WithStartupAction(const char* value) { SetStartupAction(value); return *this;} /** *Options for logging VPN tunnel activity.
*/ inline const VpnTunnelLogOptions& GetLogOptions() const{ return m_logOptions; } /** *Options for logging VPN tunnel activity.
*/ inline bool LogOptionsHasBeenSet() const { return m_logOptionsHasBeenSet; } /** *Options for logging VPN tunnel activity.
*/ inline void SetLogOptions(const VpnTunnelLogOptions& value) { m_logOptionsHasBeenSet = true; m_logOptions = value; } /** *Options for logging VPN tunnel activity.
*/ inline void SetLogOptions(VpnTunnelLogOptions&& value) { m_logOptionsHasBeenSet = true; m_logOptions = std::move(value); } /** *Options for logging VPN tunnel activity.
*/ inline TunnelOption& WithLogOptions(const VpnTunnelLogOptions& value) { SetLogOptions(value); return *this;} /** *Options for logging VPN tunnel activity.
*/ inline TunnelOption& WithLogOptions(VpnTunnelLogOptions&& value) { SetLogOptions(std::move(value)); return *this;} /** *Status of tunnel endpoint lifecycle control feature.
*/ inline bool GetEnableTunnelLifecycleControl() const{ return m_enableTunnelLifecycleControl; } /** *Status of tunnel endpoint lifecycle control feature.
*/ inline bool EnableTunnelLifecycleControlHasBeenSet() const { return m_enableTunnelLifecycleControlHasBeenSet; } /** *Status of tunnel endpoint lifecycle control feature.
*/ inline void SetEnableTunnelLifecycleControl(bool value) { m_enableTunnelLifecycleControlHasBeenSet = true; m_enableTunnelLifecycleControl = value; } /** *Status of tunnel endpoint lifecycle control feature.
*/ inline TunnelOption& WithEnableTunnelLifecycleControl(bool value) { SetEnableTunnelLifecycleControl(value); return *this;} private: Aws::String m_outsideIpAddress; bool m_outsideIpAddressHasBeenSet = false; Aws::String m_tunnelInsideCidr; bool m_tunnelInsideCidrHasBeenSet = false; Aws::String m_tunnelInsideIpv6Cidr; bool m_tunnelInsideIpv6CidrHasBeenSet = false; Aws::String m_preSharedKey; bool m_preSharedKeyHasBeenSet = false; int m_phase1LifetimeSeconds; bool m_phase1LifetimeSecondsHasBeenSet = false; int m_phase2LifetimeSeconds; bool m_phase2LifetimeSecondsHasBeenSet = false; int m_rekeyMarginTimeSeconds; bool m_rekeyMarginTimeSecondsHasBeenSet = false; int m_rekeyFuzzPercentage; bool m_rekeyFuzzPercentageHasBeenSet = false; int m_replayWindowSize; bool m_replayWindowSizeHasBeenSet = false; int m_dpdTimeoutSeconds; bool m_dpdTimeoutSecondsHasBeenSet = false; Aws::String m_dpdTimeoutAction; bool m_dpdTimeoutActionHasBeenSet = false; Aws::Vector