/*
* 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 AllocateIpamPoolCidr operation.
/// Allocate a CIDR from an IPAM pool. The Region you use should be the IPAM pool locale.
/// The locale is the Amazon Web Services Region where this IPAM pool is available for
/// allocations.
///
///
///
/// In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM pool
/// or to a resource. For more information, see Allocate
/// CIDRs in the Amazon VPC IPAM User Guide.
///
///
///
/// This action creates an allocation with strong consistency. The returned CIDR will
/// not overlap with any other allocations from the same pool.
///
///
///
public partial class AllocateIpamPoolCidrRequest : AmazonEC2Request
{
private string _cidr;
private string _clientToken;
private string _description;
private List _disallowedCidrs = new List();
private string _ipamPoolId;
private int? _netmaskLength;
private bool? _previewNextCidr;
///
/// Gets and sets the property Cidr.
///
/// The CIDR you would like to allocate from the IPAM pool. Note the following:
///
/// -
///
/// If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify
/// either the NetmaskLength or the CIDR.
///
///
-
///
/// If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either
/// the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be
/// ignored.
///
///
///
/// Possible values: Any available IPv4 or IPv6 CIDR.
///
///
public string Cidr
{
get { return this._cidr; }
set { this._cidr = value; }
}
// Check to see if Cidr property is set
internal bool IsSetCidr()
{
return this._cidr != null;
}
///
/// Gets and sets the property ClientToken.
///
/// A unique, case-sensitive identifier that you provide to ensure the idempotency of
/// the request. For more information, see Ensuring
/// Idempotency.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property Description.
///
/// A description for the allocation.
///
///
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property DisallowedCidrs.
///
/// Exclude a particular CIDR range from being returned by the pool. Disallowed CIDRs
/// are only allowed if using netmask length for allocation.
///
///
public List DisallowedCidrs
{
get { return this._disallowedCidrs; }
set { this._disallowedCidrs = value; }
}
// Check to see if DisallowedCidrs property is set
internal bool IsSetDisallowedCidrs()
{
return this._disallowedCidrs != null && this._disallowedCidrs.Count > 0;
}
///
/// Gets and sets the property IpamPoolId.
///
/// The ID of the IPAM pool from which you would like to allocate a CIDR.
///
///
[AWSProperty(Required=true)]
public string IpamPoolId
{
get { return this._ipamPoolId; }
set { this._ipamPoolId = value; }
}
// Check to see if IpamPoolId property is set
internal bool IsSetIpamPoolId()
{
return this._ipamPoolId != null;
}
///
/// Gets and sets the property NetmaskLength.
///
/// The netmask length of the CIDR you would like to allocate from the IPAM pool. Note
/// the following:
///
/// -
///
/// If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify
/// either the NetmaskLength or the CIDR.
///
///
-
///
/// If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either
/// the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be
/// ignored.
///
///
///
/// Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for
/// IPv6 addresses are 0 - 128.
///
///
public int NetmaskLength
{
get { return this._netmaskLength.GetValueOrDefault(); }
set { this._netmaskLength = value; }
}
// Check to see if NetmaskLength property is set
internal bool IsSetNetmaskLength()
{
return this._netmaskLength.HasValue;
}
///
/// Gets and sets the property PreviewNextCidr.
///
/// A preview of the next available CIDR in a pool.
///
///
public bool PreviewNextCidr
{
get { return this._previewNextCidr.GetValueOrDefault(); }
set { this._previewNextCidr = value; }
}
// Check to see if PreviewNextCidr property is set
internal bool IsSetPreviewNextCidr()
{
return this._previewNextCidr.HasValue;
}
}
}