/*
* 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
{
///
/// Container for the parameters to the CreateLag operation.
/// Creates a link aggregation group (LAG) with the specified number of bundled physical
/// dedicated connections between the customer network and a specific Direct Connect location.
/// A LAG is a logical interface that uses the Link Aggregation Control Protocol (LACP)
/// to aggregate multiple interfaces, enabling you to treat them as a single interface.
///
///
///
/// All connections in a LAG must use the same bandwidth (either 1Gbps or 10Gbps) and
/// must terminate at the same Direct Connect endpoint.
///
///
///
/// You can have up to 10 dedicated connections per LAG. Regardless of this limit, if
/// you request more connections for the LAG than Direct Connect can allocate on a single
/// endpoint, no LAG is created.
///
///
///
/// You can specify an existing physical dedicated connection or interconnect to include
/// in the LAG (which counts towards the total number of connections). Doing so interrupts
/// the current physical dedicated connection, and re-establishes them as a member of
/// the LAG. The LAG will be created on the same Direct Connect endpoint to which the
/// dedicated connection terminates. Any virtual interfaces associated with the dedicated
/// connection are automatically disassociated and re-associated with the LAG. The connection
/// ID does not change.
///
///
///
/// If the Amazon Web Services account used to create a LAG is a registered Direct Connect
/// Partner, the LAG is automatically enabled to host sub-connections. For a LAG owned
/// by a partner, any associated virtual interfaces cannot be directly configured.
///
///
public partial class CreateLagRequest : AmazonDirectConnectRequest
{
private List _childConnectionTags = new List();
private string _connectionId;
private string _connectionsBandwidth;
private string _lagName;
private string _location;
private int? _numberOfConnections;
private string _providerName;
private bool? _requestmacSec;
private List _tags = new List();
///
/// Gets and sets the property ChildConnectionTags.
///
/// The tags to associate with the automtically created LAGs.
///
///
[AWSProperty(Min=1)]
public List ChildConnectionTags
{
get { return this._childConnectionTags; }
set { this._childConnectionTags = value; }
}
// Check to see if ChildConnectionTags property is set
internal bool IsSetChildConnectionTags()
{
return this._childConnectionTags != null && this._childConnectionTags.Count > 0;
}
///
/// Gets and sets the property ConnectionId.
///
/// The ID of an existing dedicated connection to migrate to the LAG.
///
///
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 ConnectionsBandwidth.
///
/// The bandwidth of the individual physical dedicated connections bundled by the LAG.
/// The possible values are 1Gbps and 10Gbps.
///
///
[AWSProperty(Required=true)]
public string ConnectionsBandwidth
{
get { return this._connectionsBandwidth; }
set { this._connectionsBandwidth = value; }
}
// Check to see if ConnectionsBandwidth property is set
internal bool IsSetConnectionsBandwidth()
{
return this._connectionsBandwidth != null;
}
///
/// Gets and sets the property LagName.
///
/// The name of the LAG.
///
///
[AWSProperty(Required=true)]
public string LagName
{
get { return this._lagName; }
set { this._lagName = value; }
}
// Check to see if LagName property is set
internal bool IsSetLagName()
{
return this._lagName != null;
}
///
/// Gets and sets the property Location.
///
/// The location for the LAG.
///
///
[AWSProperty(Required=true)]
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 NumberOfConnections.
///
/// The number of physical dedicated connections initially provisioned and bundled by
/// the LAG. You can have a maximum of four connections when the port speed is 1G or 10G,
/// or two when the port speed is 100G.
///
///
[AWSProperty(Required=true)]
public int NumberOfConnections
{
get { return this._numberOfConnections.GetValueOrDefault(); }
set { this._numberOfConnections = value; }
}
// Check to see if NumberOfConnections property is set
internal bool IsSetNumberOfConnections()
{
return this._numberOfConnections.HasValue;
}
///
/// Gets and sets the property ProviderName.
///
/// The name of the service provider associated with the LAG.
///
///
public string ProviderName
{
get { return this._providerName; }
set { this._providerName = value; }
}
// Check to see if ProviderName property is set
internal bool IsSetProviderName()
{
return this._providerName != null;
}
///
/// Gets and sets the property RequestMACSec.
///
/// Indicates whether the connection will support MAC Security (MACsec).
///
///
///
/// All connections in the LAG must be capable of supporting MAC Security (MACsec). For
/// information about MAC Security (MACsec) prerequisties, see MACsec
/// prerequisties in the Direct Connect User Guide.
///
///
///
public bool RequestMACSec
{
get { return this._requestmacSec.GetValueOrDefault(); }
set { this._requestmacSec = value; }
}
// Check to see if RequestMACSec property is set
internal bool IsSetRequestMACSec()
{
return this._requestmacSec.HasValue;
}
///
/// Gets and sets the property Tags.
///
/// The tags to associate with the LAG.
///
///
[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;
}
}
}