/*
* 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 directconnect-2012-10-25.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.DirectConnect.Model
{
///
/// Information about a virtual interface.
///
public partial class VirtualInterface
{
private AddressFamily _addressFamily;
private string _amazonAddress;
private long? _amazonSideAsn;
private int? _asn;
private string _authKey;
private string _awsDeviceV2;
private string _awsLogicalDeviceId;
private List _bgpPeers = new List();
private string _connectionId;
private string _customerAddress;
private string _customerRouterConfig;
private string _directConnectGatewayId;
private bool? _jumboFrameCapable;
private string _location;
private int? _mtu;
private string _ownerAccount;
private string _region;
private List _routeFilterPrefixes = new List();
private bool? _siteLinkEnabled;
private List _tags = new List();
private string _virtualGatewayId;
private string _virtualInterfaceId;
private string _virtualInterfaceName;
private VirtualInterfaceState _virtualInterfaceState;
private string _virtualInterfaceType;
private int? _vlan;
///
/// Gets and sets the property AddressFamily.
///
/// The address family for the BGP peer.
///
///
public AddressFamily AddressFamily
{
get { return this._addressFamily; }
set { this._addressFamily = value; }
}
// Check to see if AddressFamily property is set
internal bool IsSetAddressFamily()
{
return this._addressFamily != null;
}
///
/// Gets and sets the property AmazonAddress.
///
/// The IP address assigned to the Amazon interface.
///
///
public string AmazonAddress
{
get { return this._amazonAddress; }
set { this._amazonAddress = value; }
}
// Check to see if AmazonAddress property is set
internal bool IsSetAmazonAddress()
{
return this._amazonAddress != null;
}
///
/// Gets and sets the property AmazonSideAsn.
///
/// The autonomous system number (ASN) for the Amazon side of the connection.
///
///
public long AmazonSideAsn
{
get { return this._amazonSideAsn.GetValueOrDefault(); }
set { this._amazonSideAsn = value; }
}
// Check to see if AmazonSideAsn property is set
internal bool IsSetAmazonSideAsn()
{
return this._amazonSideAsn.HasValue;
}
///
/// Gets and sets the property Asn.
///
/// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
///
///
///
/// The valid values are 1-2147483647.
///
///
public int Asn
{
get { return this._asn.GetValueOrDefault(); }
set { this._asn = value; }
}
// Check to see if Asn property is set
internal bool IsSetAsn()
{
return this._asn.HasValue;
}
///
/// Gets and sets the property AuthKey.
///
/// The authentication key for BGP configuration. This string has a minimum length of
/// 6 characters and and a maximun lenth of 80 characters.
///
///
public string AuthKey
{
get { return this._authKey; }
set { this._authKey = value; }
}
// Check to see if AuthKey property is set
internal bool IsSetAuthKey()
{
return this._authKey != null;
}
///
/// Gets and sets the property AwsDeviceV2.
///
/// The Direct Connect endpoint that terminates the physical connection.
///
///
public string AwsDeviceV2
{
get { return this._awsDeviceV2; }
set { this._awsDeviceV2 = value; }
}
// Check to see if AwsDeviceV2 property is set
internal bool IsSetAwsDeviceV2()
{
return this._awsDeviceV2 != null;
}
///
/// Gets and sets the property AwsLogicalDeviceId.
///
/// The Direct Connect endpoint that terminates the logical connection. This device might
/// be different than the device that terminates the physical connection.
///
///
public string AwsLogicalDeviceId
{
get { return this._awsLogicalDeviceId; }
set { this._awsLogicalDeviceId = value; }
}
// Check to see if AwsLogicalDeviceId property is set
internal bool IsSetAwsLogicalDeviceId()
{
return this._awsLogicalDeviceId != null;
}
///
/// Gets and sets the property BgpPeers.
///
/// The BGP peers configured on this virtual interface.
///
///
public List BgpPeers
{
get { return this._bgpPeers; }
set { this._bgpPeers = value; }
}
// Check to see if BgpPeers property is set
internal bool IsSetBgpPeers()
{
return this._bgpPeers != null && this._bgpPeers.Count > 0;
}
///
/// Gets and sets the property ConnectionId.
///
/// The ID of the connection.
///
///
public string ConnectionId
{
get { return this._connectionId; }
set { this._connectionId = value; }
}
// Check to see if ConnectionId property is set
internal bool IsSetConnectionId()
{
return this._connectionId != null;
}
///
/// Gets and sets the property CustomerAddress.
///
/// The IP address assigned to the customer interface.
///
///
public string CustomerAddress
{
get { return this._customerAddress; }
set { this._customerAddress = value; }
}
// Check to see if CustomerAddress property is set
internal bool IsSetCustomerAddress()
{
return this._customerAddress != null;
}
///
/// Gets and sets the property CustomerRouterConfig.
///
/// The customer router configuration.
///
///
public string CustomerRouterConfig
{
get { return this._customerRouterConfig; }
set { this._customerRouterConfig = value; }
}
// Check to see if CustomerRouterConfig property is set
internal bool IsSetCustomerRouterConfig()
{
return this._customerRouterConfig != null;
}
///
/// Gets and sets the property DirectConnectGatewayId.
///
/// The ID of the Direct Connect gateway.
///
///
public string DirectConnectGatewayId
{
get { return this._directConnectGatewayId; }
set { this._directConnectGatewayId = value; }
}
// Check to see if DirectConnectGatewayId property is set
internal bool IsSetDirectConnectGatewayId()
{
return this._directConnectGatewayId != null;
}
///
/// Gets and sets the property JumboFrameCapable.
///
/// Indicates whether jumbo frames are supported.
///
///
public bool JumboFrameCapable
{
get { return this._jumboFrameCapable.GetValueOrDefault(); }
set { this._jumboFrameCapable = value; }
}
// Check to see if JumboFrameCapable property is set
internal bool IsSetJumboFrameCapable()
{
return this._jumboFrameCapable.HasValue;
}
///
/// Gets and sets the property Location.
///
/// The location of the connection.
///
///
public string Location
{
get { return this._location; }
set { this._location = value; }
}
// Check to see if Location property is set
internal bool IsSetLocation()
{
return this._location != null;
}
///
/// Gets and sets the property Mtu.
///
/// The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 8500.
/// The default value is 1500
///
///
public int Mtu
{
get { return this._mtu.GetValueOrDefault(); }
set { this._mtu = value; }
}
// Check to see if Mtu property is set
internal bool IsSetMtu()
{
return this._mtu.HasValue;
}
///
/// Gets and sets the property OwnerAccount.
///
/// The ID of the Amazon Web Services account that owns the virtual interface.
///
///
public string OwnerAccount
{
get { return this._ownerAccount; }
set { this._ownerAccount = value; }
}
// Check to see if OwnerAccount property is set
internal bool IsSetOwnerAccount()
{
return this._ownerAccount != null;
}
///
/// Gets and sets the property Region.
///
/// The Amazon Web Services Region where the virtual interface is located.
///
///
public string Region
{
get { return this._region; }
set { this._region = value; }
}
// Check to see if Region property is set
internal bool IsSetRegion()
{
return this._region != null;
}
///
/// Gets and sets the property RouteFilterPrefixes.
///
/// The routes to be advertised to the Amazon Web Services network in this Region. Applies
/// to public virtual interfaces.
///
///
public List RouteFilterPrefixes
{
get { return this._routeFilterPrefixes; }
set { this._routeFilterPrefixes = value; }
}
// Check to see if RouteFilterPrefixes property is set
internal bool IsSetRouteFilterPrefixes()
{
return this._routeFilterPrefixes != null && this._routeFilterPrefixes.Count > 0;
}
///
/// Gets and sets the property SiteLinkEnabled.
///
/// Indicates whether SiteLink is enabled.
///
///
public bool SiteLinkEnabled
{
get { return this._siteLinkEnabled.GetValueOrDefault(); }
set { this._siteLinkEnabled = value; }
}
// Check to see if SiteLinkEnabled property is set
internal bool IsSetSiteLinkEnabled()
{
return this._siteLinkEnabled.HasValue;
}
///
/// Gets and sets the property Tags.
///
/// The tags associated with the virtual interface.
///
///
[AWSProperty(Min=1)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property VirtualGatewayId.
///
/// The ID of the virtual private gateway. Applies only to private virtual interfaces.
///
///
public string VirtualGatewayId
{
get { return this._virtualGatewayId; }
set { this._virtualGatewayId = value; }
}
// Check to see if VirtualGatewayId property is set
internal bool IsSetVirtualGatewayId()
{
return this._virtualGatewayId != null;
}
///
/// Gets and sets the property VirtualInterfaceId.
///
/// The ID of the virtual interface.
///
///
public string VirtualInterfaceId
{
get { return this._virtualInterfaceId; }
set { this._virtualInterfaceId = value; }
}
// Check to see if VirtualInterfaceId property is set
internal bool IsSetVirtualInterfaceId()
{
return this._virtualInterfaceId != null;
}
///
/// Gets and sets the property VirtualInterfaceName.
///
/// The name of the virtual interface assigned by the customer network. The name has a
/// maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen
/// (-).
///
///
public string VirtualInterfaceName
{
get { return this._virtualInterfaceName; }
set { this._virtualInterfaceName = value; }
}
// Check to see if VirtualInterfaceName property is set
internal bool IsSetVirtualInterfaceName()
{
return this._virtualInterfaceName != null;
}
///
/// Gets and sets the property VirtualInterfaceState.
///
/// The state of the virtual interface. The following are the possible values:
///
/// -
///
///
confirming
: The creation of the virtual interface is pending confirmation
/// from the virtual interface owner. If the owner of the virtual interface is different
/// from the owner of the connection on which it is provisioned, then the virtual interface
/// will remain in this state until it is confirmed by the virtual interface owner.
///
/// -
///
///
verifying
: This state only applies to public virtual interfaces. Each
/// public virtual interface needs validation before the virtual interface can be created.
///
/// -
///
///
pending
: A virtual interface is in this state from the time that it
/// is created until the virtual interface is ready to forward traffic.
///
/// -
///
///
available
: A virtual interface that is able to forward traffic.
///
/// -
///
///
down
: A virtual interface that is BGP down.
///
/// -
///
///
deleting
: A virtual interface is in this state immediately after calling
/// DeleteVirtualInterface until it can no longer forward traffic.
///
/// -
///
///
deleted
: A virtual interface that cannot forward traffic.
///
/// -
///
///
rejected
: The virtual interface owner has declined creation of the virtual
/// interface. If a virtual interface in the Confirming
state is deleted
/// by the virtual interface owner, the virtual interface enters the Rejected
/// state.
///
/// -
///
///
unknown
: The state of the virtual interface is not available.
///
///
///
public VirtualInterfaceState VirtualInterfaceState
{
get { return this._virtualInterfaceState; }
set { this._virtualInterfaceState = value; }
}
// Check to see if VirtualInterfaceState property is set
internal bool IsSetVirtualInterfaceState()
{
return this._virtualInterfaceState != null;
}
///
/// Gets and sets the property VirtualInterfaceType.
///
/// The type of virtual interface. The possible values are private
and public
.
///
///
public string VirtualInterfaceType
{
get { return this._virtualInterfaceType; }
set { this._virtualInterfaceType = value; }
}
// Check to see if VirtualInterfaceType property is set
internal bool IsSetVirtualInterfaceType()
{
return this._virtualInterfaceType != null;
}
///
/// Gets and sets the property Vlan.
///
/// The ID of the VLAN.
///
///
public int Vlan
{
get { return this._vlan.GetValueOrDefault(); }
set { this._vlan = value; }
}
// Check to see if Vlan property is set
internal bool IsSetVlan()
{
return this._vlan.HasValue;
}
}
}