/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the ec2-2016-11-15.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.EC2.Model { /// /// The tunnel options for a single VPN tunnel. /// public partial class VpnTunnelOptionsSpecification { private string _dpdTimeoutAction; private int? _dpdTimeoutSeconds; private bool? _enableTunnelLifecycleControl; private List _ikeVersions = new List(); private VpnTunnelLogOptionsSpecification _logOptions; private List _phase1DHGroupNumbers = new List(); private List _phase1EncryptionAlgorithms = new List(); private List _phase1IntegrityAlgorithms = new List(); private int? _phase1LifetimeSeconds; private List _phase2DHGroupNumbers = new List(); private List _phase2EncryptionAlgorithms = new List(); private List _phase2IntegrityAlgorithms = new List(); private int? _phase2LifetimeSeconds; private string _preSharedKey; private int? _rekeyFuzzPercentage; private int? _rekeyMarginTimeSeconds; private int? _replayWindowSize; private string _startupAction; private string _tunnelInsideCidr; private string _tunnelInsideIpv6Cidr; /// /// Gets and sets the property DPDTimeoutAction. /// /// The action to take after DPD timeout occurs. Specify restart to restart /// the IKE initiation. Specify clear to end the IKE session. /// /// /// /// Valid Values: clear | none | restart /// /// /// /// Default: clear /// /// public string DPDTimeoutAction { get { return this._dpdTimeoutAction; } set { this._dpdTimeoutAction = value; } } // Check to see if DPDTimeoutAction property is set internal bool IsSetDPDTimeoutAction() { return this._dpdTimeoutAction != null; } /// /// Gets and sets the property DPDTimeoutSeconds. /// /// The number of seconds after which a DPD timeout occurs. /// /// /// /// Constraints: A value greater than or equal to 30. /// /// /// /// Default: 30 /// /// public int DPDTimeoutSeconds { get { return this._dpdTimeoutSeconds.GetValueOrDefault(); } set { this._dpdTimeoutSeconds = value; } } // Check to see if DPDTimeoutSeconds property is set internal bool IsSetDPDTimeoutSeconds() { return this._dpdTimeoutSeconds.HasValue; } /// /// Gets and sets the property EnableTunnelLifecycleControl. /// /// Turn on or off tunnel endpoint lifecycle control feature. /// /// public bool EnableTunnelLifecycleControl { get { return this._enableTunnelLifecycleControl.GetValueOrDefault(); } set { this._enableTunnelLifecycleControl = value; } } // Check to see if EnableTunnelLifecycleControl property is set internal bool IsSetEnableTunnelLifecycleControl() { return this._enableTunnelLifecycleControl.HasValue; } /// /// Gets and sets the property IKEVersions. /// /// The IKE versions that are permitted for the VPN tunnel. /// /// /// /// Valid values: ikev1 | ikev2 /// /// public List IKEVersions { get { return this._ikeVersions; } set { this._ikeVersions = value; } } // Check to see if IKEVersions property is set internal bool IsSetIKEVersions() { return this._ikeVersions != null && this._ikeVersions.Count > 0; } /// /// Gets and sets the property LogOptions. /// /// Options for logging VPN tunnel activity. /// /// public VpnTunnelLogOptionsSpecification LogOptions { get { return this._logOptions; } set { this._logOptions = value; } } // Check to see if LogOptions property is set internal bool IsSetLogOptions() { return this._logOptions != null; } /// /// Gets and sets the property Phase1DHGroupNumbers. /// /// One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for /// phase 1 IKE negotiations. /// /// /// /// Valid values: 2 | 14 | 15 | 16 /// | 17 | 18 | 19 | 20 | 21 /// | 22 | 23 | 24 /// /// public List Phase1DHGroupNumbers { get { return this._phase1DHGroupNumbers; } set { this._phase1DHGroupNumbers = value; } } // Check to see if Phase1DHGroupNumbers property is set internal bool IsSetPhase1DHGroupNumbers() { return this._phase1DHGroupNumbers != null && this._phase1DHGroupNumbers.Count > 0; } /// /// Gets and sets the property Phase1EncryptionAlgorithms. /// /// One or more encryption algorithms that are permitted for the VPN tunnel for phase /// 1 IKE negotiations. /// /// /// /// Valid values: AES128 | AES256 | AES128-GCM-16 /// | AES256-GCM-16 /// /// public List Phase1EncryptionAlgorithms { get { return this._phase1EncryptionAlgorithms; } set { this._phase1EncryptionAlgorithms = value; } } // Check to see if Phase1EncryptionAlgorithms property is set internal bool IsSetPhase1EncryptionAlgorithms() { return this._phase1EncryptionAlgorithms != null && this._phase1EncryptionAlgorithms.Count > 0; } /// /// Gets and sets the property Phase1IntegrityAlgorithms. /// /// One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 /// IKE negotiations. /// /// /// /// Valid values: SHA1 | SHA2-256 | SHA2-384 | /// SHA2-512 /// /// public List Phase1IntegrityAlgorithms { get { return this._phase1IntegrityAlgorithms; } set { this._phase1IntegrityAlgorithms = value; } } // Check to see if Phase1IntegrityAlgorithms property is set internal bool IsSetPhase1IntegrityAlgorithms() { return this._phase1IntegrityAlgorithms != null && this._phase1IntegrityAlgorithms.Count > 0; } /// /// Gets and sets the property Phase1LifetimeSeconds. /// /// The lifetime for phase 1 of the IKE negotiation, in seconds. /// /// /// /// Constraints: A value between 900 and 28,800. /// /// /// /// Default: 28800 /// /// public int Phase1LifetimeSeconds { get { return this._phase1LifetimeSeconds.GetValueOrDefault(); } set { this._phase1LifetimeSeconds = value; } } // Check to see if Phase1LifetimeSeconds property is set internal bool IsSetPhase1LifetimeSeconds() { return this._phase1LifetimeSeconds.HasValue; } /// /// Gets and sets the property Phase2DHGroupNumbers. /// /// One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for /// phase 2 IKE negotiations. /// /// /// /// Valid values: 2 | 5 | 14 | 15 /// | 16 | 17 | 18 | 19 | 20 /// | 21 | 22 | 23 | 24 /// /// public List Phase2DHGroupNumbers { get { return this._phase2DHGroupNumbers; } set { this._phase2DHGroupNumbers = value; } } // Check to see if Phase2DHGroupNumbers property is set internal bool IsSetPhase2DHGroupNumbers() { return this._phase2DHGroupNumbers != null && this._phase2DHGroupNumbers.Count > 0; } /// /// Gets and sets the property Phase2EncryptionAlgorithms. /// /// One or more encryption algorithms that are permitted for the VPN tunnel for phase /// 2 IKE negotiations. /// /// /// /// Valid values: AES128 | AES256 | AES128-GCM-16 /// | AES256-GCM-16 /// /// public List Phase2EncryptionAlgorithms { get { return this._phase2EncryptionAlgorithms; } set { this._phase2EncryptionAlgorithms = value; } } // Check to see if Phase2EncryptionAlgorithms property is set internal bool IsSetPhase2EncryptionAlgorithms() { return this._phase2EncryptionAlgorithms != null && this._phase2EncryptionAlgorithms.Count > 0; } /// /// Gets and sets the property Phase2IntegrityAlgorithms. /// /// One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 /// IKE negotiations. /// /// /// /// Valid values: SHA1 | SHA2-256 | SHA2-384 | /// SHA2-512 /// /// public List Phase2IntegrityAlgorithms { get { return this._phase2IntegrityAlgorithms; } set { this._phase2IntegrityAlgorithms = value; } } // Check to see if Phase2IntegrityAlgorithms property is set internal bool IsSetPhase2IntegrityAlgorithms() { return this._phase2IntegrityAlgorithms != null && this._phase2IntegrityAlgorithms.Count > 0; } /// /// Gets and sets the property Phase2LifetimeSeconds. /// /// The lifetime for phase 2 of the IKE negotiation, in seconds. /// /// /// /// Constraints: A value between 900 and 3,600. The value must be less than the value /// for Phase1LifetimeSeconds. /// /// /// /// Default: 3600 /// /// public int Phase2LifetimeSeconds { get { return this._phase2LifetimeSeconds.GetValueOrDefault(); } set { this._phase2LifetimeSeconds = value; } } // Check to see if Phase2LifetimeSeconds property is set internal bool IsSetPhase2LifetimeSeconds() { return this._phase2LifetimeSeconds.HasValue; } /// /// Gets and sets the property PreSharedKey. /// /// The pre-shared key (PSK) to establish initial authentication between the virtual private /// gateway and customer gateway. /// /// /// /// Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores /// (_). Must be between 8 and 64 characters in length and cannot start with zero (0). /// /// [AWSProperty(Sensitive=true)] public string PreSharedKey { get { return this._preSharedKey; } set { this._preSharedKey = value; } } // Check to see if PreSharedKey property is set internal bool IsSetPreSharedKey() { return this._preSharedKey != null; } /// /// Gets and sets the property RekeyFuzzPercentage. /// /// The percentage of the rekey window (determined by RekeyMarginTimeSeconds) /// during which the rekey time is randomly selected. /// /// /// /// Constraints: A value between 0 and 100. /// /// /// /// Default: 100 /// /// public int RekeyFuzzPercentage { get { return this._rekeyFuzzPercentage.GetValueOrDefault(); } set { this._rekeyFuzzPercentage = value; } } // Check to see if RekeyFuzzPercentage property is set internal bool IsSetRekeyFuzzPercentage() { return this._rekeyFuzzPercentage.HasValue; } /// /// Gets and sets the property 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. The exact time /// of the rekey is randomly selected based on the value for RekeyFuzzPercentage. /// /// /// /// Constraints: A value between 60 and half of Phase2LifetimeSeconds. /// /// /// /// Default: 540 /// /// public int RekeyMarginTimeSeconds { get { return this._rekeyMarginTimeSeconds.GetValueOrDefault(); } set { this._rekeyMarginTimeSeconds = value; } } // Check to see if RekeyMarginTimeSeconds property is set internal bool IsSetRekeyMarginTimeSeconds() { return this._rekeyMarginTimeSeconds.HasValue; } /// /// Gets and sets the property ReplayWindowSize. /// /// The number of packets in an IKE replay window. /// /// /// /// Constraints: A value between 64 and 2048. /// /// /// /// Default: 1024 /// /// public int ReplayWindowSize { get { return this._replayWindowSize.GetValueOrDefault(); } set { this._replayWindowSize = value; } } // Check to see if ReplayWindowSize property is set internal bool IsSetReplayWindowSize() { return this._replayWindowSize.HasValue; } /// /// Gets and sets the property StartupAction. /// /// The action to take when the establishing the tunnel for the VPN connection. By default, /// your customer gateway device must initiate the IKE negotiation and bring up the tunnel. /// Specify start for Amazon Web Services to initiate the IKE negotiation. /// /// /// /// Valid Values: add | start /// /// /// /// Default: add /// /// public string StartupAction { get { return this._startupAction; } set { this._startupAction = value; } } // Check to see if StartupAction property is set internal bool IsSetStartupAction() { return this._startupAction != null; } /// /// Gets and sets the property TunnelInsideCidr. /// /// The range of inside IPv4 addresses for the tunnel. Any specified CIDR blocks must /// be unique across all VPN connections that use the same virtual private gateway. /// /// /// /// Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The /// following CIDR blocks are reserved and cannot be used: /// ///
  • /// /// 169.254.0.0/30 /// ///
  • /// /// 169.254.1.0/30 /// ///
  • /// /// 169.254.2.0/30 /// ///
  • /// /// 169.254.3.0/30 /// ///
  • /// /// 169.254.4.0/30 /// ///
  • /// /// 169.254.5.0/30 /// ///
  • /// /// 169.254.169.252/30 /// ///
///
public string TunnelInsideCidr { get { return this._tunnelInsideCidr; } set { this._tunnelInsideCidr = value; } } // Check to see if TunnelInsideCidr property is set internal bool IsSetTunnelInsideCidr() { return this._tunnelInsideCidr != null; } /// /// Gets and sets the property TunnelInsideIpv6Cidr. /// /// The range of inside IPv6 addresses for the tunnel. Any specified CIDR blocks must /// be unique across all VPN connections that use the same transit gateway. /// /// /// /// Constraints: A size /126 CIDR block from the local fd00::/8 range. /// /// public string TunnelInsideIpv6Cidr { get { return this._tunnelInsideIpv6Cidr; } set { this._tunnelInsideIpv6Cidr = value; } } // Check to see if TunnelInsideIpv6Cidr property is set internal bool IsSetTunnelInsideIpv6Cidr() { return this._tunnelInsideIpv6Cidr != null; } } }