/*
* 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 AllocateAddress operation.
/// Allocates an Elastic IP address to your Amazon Web Services account. After you allocate
/// the Elastic IP address you can associate it with an instance or network interface.
/// After you release an Elastic IP address, it is released to the IP address pool and
/// can be allocated to a different Amazon Web Services account.
///
///
///
/// You can allocate an Elastic IP address from an address pool owned by Amazon Web Services
/// or from an address pool created from a public IPv4 address range that you have brought
/// to Amazon Web Services for use with your Amazon Web Services resources using bring
/// your own IP addresses (BYOIP). For more information, see Bring
/// Your Own IP Addresses (BYOIP) in the Amazon Elastic Compute Cloud User Guide.
///
///
///
/// If you release an Elastic IP address, you might be able to recover it. You cannot
/// recover an Elastic IP address that you released after it is allocated to another Amazon
/// Web Services account. To attempt to recover an Elastic IP address that you released,
/// specify it in this operation.
///
///
///
/// For more information, see Elastic
/// IP Addresses in the Amazon Elastic Compute Cloud User Guide.
///
///
///
/// You can allocate a carrier IP address which is a public IP address from a telecommunication
/// carrier, to a network interface which resides in a subnet in a Wavelength Zone (for
/// example an EC2 instance).
///
///
public partial class AllocateAddressRequest : AmazonEC2Request
{
private string _address;
private string _customerOwnedIpv4Pool;
private DomainType _domain;
private string _networkBorderGroup;
private string _publicIpv4Pool;
private List _tagSpecifications = new List();
///
/// Gets and sets the property Address.
///
/// The Elastic IP address to recover or an IPv4 address from an address pool.
///
///
public string Address
{
get { return this._address; }
set { this._address = value; }
}
// Check to see if Address property is set
internal bool IsSetAddress()
{
return this._address != null;
}
///
/// Gets and sets the property CustomerOwnedIpv4Pool.
///
/// The ID of a customer-owned address pool. Use this parameter to let Amazon EC2 select
/// an address from the address pool. Alternatively, specify a specific address from the
/// address pool.
///
///
public string CustomerOwnedIpv4Pool
{
get { return this._customerOwnedIpv4Pool; }
set { this._customerOwnedIpv4Pool = value; }
}
// Check to see if CustomerOwnedIpv4Pool property is set
internal bool IsSetCustomerOwnedIpv4Pool()
{
return this._customerOwnedIpv4Pool != null;
}
///
/// Gets and sets the property Domain.
///
/// The network (vpc
).
///
///
public DomainType Domain
{
get { return this._domain; }
set { this._domain = value; }
}
// Check to see if Domain property is set
internal bool IsSetDomain()
{
return this._domain != null;
}
///
/// Gets and sets the property NetworkBorderGroup.
///
/// A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon
/// Web Services advertises IP addresses. Use this parameter to limit the IP address to
/// this location. IP addresses cannot move between network border groups.
///
///
///
/// Use DescribeAvailabilityZones
/// to view the network border groups.
///
///
///
/// You cannot use a network border group with EC2 Classic. If you attempt this operation
/// on EC2 Classic, you receive an InvalidParameterCombination
error.
///
///
public string NetworkBorderGroup
{
get { return this._networkBorderGroup; }
set { this._networkBorderGroup = value; }
}
// Check to see if NetworkBorderGroup property is set
internal bool IsSetNetworkBorderGroup()
{
return this._networkBorderGroup != null;
}
///
/// Gets and sets the property PublicIpv4Pool.
///
/// The ID of an address pool that you own. Use this parameter to let Amazon EC2 select
/// an address from the address pool. To specify a specific address from the address pool,
/// use the Address
parameter instead.
///
///
public string PublicIpv4Pool
{
get { return this._publicIpv4Pool; }
set { this._publicIpv4Pool = value; }
}
// Check to see if PublicIpv4Pool property is set
internal bool IsSetPublicIpv4Pool()
{
return this._publicIpv4Pool != null;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to assign to the Elastic IP address.
///
///
public List TagSpecifications
{
get { return this._tagSpecifications; }
set { this._tagSpecifications = value; }
}
// Check to see if TagSpecifications property is set
internal bool IsSetTagSpecifications()
{
return this._tagSpecifications != null && this._tagSpecifications.Count > 0;
}
}
}