/*
* 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 VPN tunnel options.
///
public partial class TunnelOption
{
private string _dpdTimeoutAction;
private int? _dpdTimeoutSeconds;
private bool? _enableTunnelLifecycleControl;
private List _ikeVersions = new List();
private VpnTunnelLogOptions _logOptions;
private string _outsideIpAddress;
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 a DPD timeout occurs.
///
///
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.
///
///
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.
///
/// Status of 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.
///
///
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 VpnTunnelLogOptions 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 OutsideIpAddress.
///
/// The external IP address of the VPN tunnel.
///
///
public string OutsideIpAddress
{
get { return this._outsideIpAddress; }
set { this._outsideIpAddress = value; }
}
// Check to see if OutsideIpAddress property is set
internal bool IsSetOutsideIpAddress()
{
return this._outsideIpAddress != null;
}
///
/// Gets and sets the property Phase1DHGroupNumbers.
///
/// The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE negotiations.
///
///
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.
///
/// The permitted encryption algorithms for the VPN tunnel for phase 1 IKE negotiations.
///
///
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.
///
/// The permitted integrity algorithms for the VPN tunnel for phase 1 IKE negotiations.
///
///
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.
///
///
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.
///
/// The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE negotiations.
///
///
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.
///
/// The permitted encryption algorithms for the VPN tunnel for phase 2 IKE negotiations.
///
///
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.
///
/// The permitted integrity algorithms for the VPN tunnel for phase 2 IKE negotiations.
///
///
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.
///
///
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 the customer gateway.
///
///
[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.
///
///
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.
///
///
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.
///
///
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 VPN tunnels for a VPN connection.
///
///
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.
///
///
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.
///
///
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;
}
}
}