/*
* 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
{
///
/// Container for the parameters to the AssignPrivateIpAddresses operation.
/// Assigns one or more secondary private IP addresses to the specified network interface.
///
///
///
/// You can specify one or more specific secondary IP addresses, or you can specify the
/// number of secondary IP addresses to be automatically assigned within the subnet's
/// CIDR block range. The number of secondary IP addresses that you can assign to an instance
/// varies by instance type. For information about instance types, see Instance
/// Types in the Amazon Elastic Compute Cloud User Guide. For more information
/// about Elastic IP addresses, see Elastic
/// IP Addresses in the Amazon Elastic Compute Cloud User Guide.
///
///
///
/// When you move a secondary private IP address to another network interface, any Elastic
/// IP address that is associated with the IP address is also moved.
///
///
///
/// Remapping an IP address is an asynchronous operation. When you move an IP address
/// from one network interface to another, check network/interfaces/macs/mac/local-ipv4s
/// in the instance metadata to confirm that the remapping is complete.
///
///
///
/// You must specify either the IP addresses or the IP address count in the request.
///
///
///
/// You can optionally use Prefix Delegation on the network interface. You must specify
/// either the IPv4 Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For
/// information, see
/// Assigning prefixes to Amazon EC2 network interfaces in the Amazon Elastic Compute
/// Cloud User Guide.
///
///
public partial class AssignPrivateIpAddressesRequest : AmazonEC2Request
{
private bool? _allowReassignment;
private int? _ipv4PrefixCount;
private List _ipv4Prefixes = new List();
private string _networkInterfaceId;
private List _privateIpAddresses = new List();
private int? _secondaryPrivateIpAddressCount;
///
/// Gets and sets the property AllowReassignment.
///
/// Indicates whether to allow an IP address that is already assigned to another network
/// interface or instance to be reassigned to the specified network interface.
///
///
public bool AllowReassignment
{
get { return this._allowReassignment.GetValueOrDefault(); }
set { this._allowReassignment = value; }
}
// Check to see if AllowReassignment property is set
internal bool IsSetAllowReassignment()
{
return this._allowReassignment.HasValue;
}
///
/// Gets and sets the property Ipv4PrefixCount.
///
/// The number of IPv4 prefixes that Amazon Web Services automatically assigns to the
/// network interface. You cannot use this option if you use the Ipv4 Prefixes
/// option.
///
///
public int Ipv4PrefixCount
{
get { return this._ipv4PrefixCount.GetValueOrDefault(); }
set { this._ipv4PrefixCount = value; }
}
// Check to see if Ipv4PrefixCount property is set
internal bool IsSetIpv4PrefixCount()
{
return this._ipv4PrefixCount.HasValue;
}
///
/// Gets and sets the property Ipv4Prefixes.
///
/// One or more IPv4 prefixes assigned to the network interface. You cannot use this option
/// if you use the Ipv4PrefixCount
option.
///
///
public List Ipv4Prefixes
{
get { return this._ipv4Prefixes; }
set { this._ipv4Prefixes = value; }
}
// Check to see if Ipv4Prefixes property is set
internal bool IsSetIpv4Prefixes()
{
return this._ipv4Prefixes != null && this._ipv4Prefixes.Count > 0;
}
///
/// Gets and sets the property NetworkInterfaceId.
///
/// The ID of the network interface.
///
///
[AWSProperty(Required=true)]
public string NetworkInterfaceId
{
get { return this._networkInterfaceId; }
set { this._networkInterfaceId = value; }
}
// Check to see if NetworkInterfaceId property is set
internal bool IsSetNetworkInterfaceId()
{
return this._networkInterfaceId != null;
}
///
/// Gets and sets the property PrivateIpAddresses.
///
/// The IP addresses to be assigned as a secondary private IP address to the network interface.
/// You can't specify this parameter when also specifying a number of secondary IP addresses.
///
///
///
/// If you don't specify an IP address, Amazon EC2 automatically selects an IP address
/// within the subnet range.
///
///
public List PrivateIpAddresses
{
get { return this._privateIpAddresses; }
set { this._privateIpAddresses = value; }
}
// Check to see if PrivateIpAddresses property is set
internal bool IsSetPrivateIpAddresses()
{
return this._privateIpAddresses != null && this._privateIpAddresses.Count > 0;
}
///
/// Gets and sets the property SecondaryPrivateIpAddressCount.
///
/// The number of secondary IP addresses to assign to the network interface. You can't
/// specify this parameter when also specifying private IP addresses.
///
///
public int SecondaryPrivateIpAddressCount
{
get { return this._secondaryPrivateIpAddressCount.GetValueOrDefault(); }
set { this._secondaryPrivateIpAddressCount = value; }
}
// Check to see if SecondaryPrivateIpAddressCount property is set
internal bool IsSetSecondaryPrivateIpAddressCount()
{
return this._secondaryPrivateIpAddressCount.HasValue;
}
}
}