/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

The VPN tunnel options.

See Also:

AWS * API Reference

*/ class AwsEc2VpnConnectionOptionsTunnelOptionsDetails { public: AWS_SECURITYHUB_API AwsEc2VpnConnectionOptionsTunnelOptionsDetails(); AWS_SECURITYHUB_API AwsEc2VpnConnectionOptionsTunnelOptionsDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsEc2VpnConnectionOptionsTunnelOptionsDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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::Vector& GetIkeVersions() const{ return m_ikeVersions; } /** *

The 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::Vector& value) { m_ikeVersionsHasBeenSet = true; m_ikeVersions = value; } /** *

The Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.

*/ inline void SetIkeVersions(Aws::Vector&& value) { m_ikeVersionsHasBeenSet = true; m_ikeVersions = std::move(value); } /** *

The Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithIkeVersions(const Aws::Vector& value) { SetIkeVersions(value); return *this;} /** *

The Internet Key Exchange (IKE) versions that are permitted for the VPN * tunnel.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithIkeVersions(Aws::Vector&& value) { SetIkeVersions(std::move(value)); return *this;} /** *

The 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::Vector& GetPhase1DhGroupNumbers() const{ return m_phase1DhGroupNumbers; } /** *

The 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::Vector& value) { m_phase1DhGroupNumbersHasBeenSet = true; m_phase1DhGroupNumbers = value; } /** *

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline void SetPhase1DhGroupNumbers(Aws::Vector&& value) { m_phase1DhGroupNumbersHasBeenSet = true; m_phase1DhGroupNumbers = std::move(value); } /** *

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1DhGroupNumbers(const Aws::Vector& value) { SetPhase1DhGroupNumbers(value); return *this;} /** *

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1DhGroupNumbers(Aws::Vector&& value) { SetPhase1DhGroupNumbers(std::move(value)); return *this;} /** *

The 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::Vector& GetPhase1EncryptionAlgorithms() const{ return m_phase1EncryptionAlgorithms; } /** *

The 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::Vector& value) { m_phase1EncryptionAlgorithmsHasBeenSet = true; m_phase1EncryptionAlgorithms = value; } /** *

The permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline void SetPhase1EncryptionAlgorithms(Aws::Vector&& value) { m_phase1EncryptionAlgorithmsHasBeenSet = true; m_phase1EncryptionAlgorithms = std::move(value); } /** *

The permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1EncryptionAlgorithms(const Aws::Vector& value) { SetPhase1EncryptionAlgorithms(value); return *this;} /** *

The permitted encryption algorithms for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1EncryptionAlgorithms(Aws::Vector&& value) { SetPhase1EncryptionAlgorithms(std::move(value)); return *this;} /** *

The 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::Vector& GetPhase1IntegrityAlgorithms() const{ return m_phase1IntegrityAlgorithms; } /** *

The 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::Vector& value) { m_phase1IntegrityAlgorithmsHasBeenSet = true; m_phase1IntegrityAlgorithms = value; } /** *

The permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline void SetPhase1IntegrityAlgorithms(Aws::Vector&& value) { m_phase1IntegrityAlgorithmsHasBeenSet = true; m_phase1IntegrityAlgorithms = std::move(value); } /** *

The permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1IntegrityAlgorithms(const Aws::Vector& value) { SetPhase1IntegrityAlgorithms(value); return *this;} /** *

The permitted integrity algorithms for the VPN tunnel for phase 1 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase1IntegrityAlgorithms(Aws::Vector&& value) { SetPhase1IntegrityAlgorithms(std::move(value)); return *this;} /** *

The 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::Vector& GetPhase2DhGroupNumbers() const{ return m_phase2DhGroupNumbers; } /** *

The 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::Vector& value) { m_phase2DhGroupNumbersHasBeenSet = true; m_phase2DhGroupNumbers = value; } /** *

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline void SetPhase2DhGroupNumbers(Aws::Vector&& value) { m_phase2DhGroupNumbersHasBeenSet = true; m_phase2DhGroupNumbers = std::move(value); } /** *

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2DhGroupNumbers(const Aws::Vector& value) { SetPhase2DhGroupNumbers(value); return *this;} /** *

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2DhGroupNumbers(Aws::Vector&& value) { SetPhase2DhGroupNumbers(std::move(value)); return *this;} /** *

The 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::Vector& GetPhase2EncryptionAlgorithms() const{ return m_phase2EncryptionAlgorithms; } /** *

The 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::Vector& value) { m_phase2EncryptionAlgorithmsHasBeenSet = true; m_phase2EncryptionAlgorithms = value; } /** *

The permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline void SetPhase2EncryptionAlgorithms(Aws::Vector&& value) { m_phase2EncryptionAlgorithmsHasBeenSet = true; m_phase2EncryptionAlgorithms = std::move(value); } /** *

The permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2EncryptionAlgorithms(const Aws::Vector& value) { SetPhase2EncryptionAlgorithms(value); return *this;} /** *

The permitted encryption algorithms for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2EncryptionAlgorithms(Aws::Vector&& value) { SetPhase2EncryptionAlgorithms(std::move(value)); return *this;} /** *

The 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::Vector& GetPhase2IntegrityAlgorithms() const{ return m_phase2IntegrityAlgorithms; } /** *

The 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::Vector& value) { m_phase2IntegrityAlgorithmsHasBeenSet = true; m_phase2IntegrityAlgorithms = value; } /** *

The permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline void SetPhase2IntegrityAlgorithms(Aws::Vector&& value) { m_phase2IntegrityAlgorithmsHasBeenSet = true; m_phase2IntegrityAlgorithms = std::move(value); } /** *

The permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2IntegrityAlgorithms(const Aws::Vector& value) { SetPhase2IntegrityAlgorithms(value); return *this;} /** *

The permitted integrity algorithms for the VPN tunnel for phase 2 IKE * negotiations.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithPhase2IntegrityAlgorithms(Aws::Vector&& value) { SetPhase2IntegrityAlgorithms(std::move(value)); return *this;} /** *

The 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.

*/ inline int GetRekeyFuzzPercentage() const{ return m_rekeyFuzzPercentage; } /** *

The percentage of the rekey window, which is determined by * RekeyMarginTimeSeconds during which the rekey time is randomly * selected.

*/ inline bool RekeyFuzzPercentageHasBeenSet() const { return m_rekeyFuzzPercentageHasBeenSet; } /** *

The percentage of the rekey window, which is determined by * RekeyMarginTimeSeconds during which the rekey time is randomly * selected.

*/ inline void SetRekeyFuzzPercentage(int value) { m_rekeyFuzzPercentageHasBeenSet = true; m_rekeyFuzzPercentage = value; } /** *

The percentage of the rekey window, which is determined by * RekeyMarginTimeSeconds during which the rekey time is randomly * selected.

*/ inline AwsEc2VpnConnectionOptionsTunnelOptionsDetails& WithRekeyFuzzPercentage(int value) { SetRekeyFuzzPercentage(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 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 m_ikeVersions; bool m_ikeVersionsHasBeenSet = false; Aws::String m_outsideIpAddress; bool m_outsideIpAddressHasBeenSet = false; Aws::Vector m_phase1DhGroupNumbers; bool m_phase1DhGroupNumbersHasBeenSet = false; Aws::Vector m_phase1EncryptionAlgorithms; bool m_phase1EncryptionAlgorithmsHasBeenSet = false; Aws::Vector m_phase1IntegrityAlgorithms; bool m_phase1IntegrityAlgorithmsHasBeenSet = false; int m_phase1LifetimeSeconds; bool m_phase1LifetimeSecondsHasBeenSet = false; Aws::Vector m_phase2DhGroupNumbers; bool m_phase2DhGroupNumbersHasBeenSet = false; Aws::Vector m_phase2EncryptionAlgorithms; bool m_phase2EncryptionAlgorithmsHasBeenSet = false; Aws::Vector m_phase2IntegrityAlgorithms; bool m_phase2IntegrityAlgorithmsHasBeenSet = false; int m_phase2LifetimeSeconds; bool m_phase2LifetimeSecondsHasBeenSet = false; Aws::String m_preSharedKey; bool m_preSharedKeyHasBeenSet = false; int m_rekeyFuzzPercentage; bool m_rekeyFuzzPercentageHasBeenSet = false; int m_rekeyMarginTimeSeconds; bool m_rekeyMarginTimeSecondsHasBeenSet = false; int m_replayWindowSize; bool m_replayWindowSizeHasBeenSet = false; Aws::String m_tunnelInsideCidr; bool m_tunnelInsideCidrHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws