/*
* 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 AssociateVpcCidrBlock operation.
/// Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block,
/// an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6 address pool
/// that you provisioned through bring your own IP addresses (BYOIP).
/// The IPv6 CIDR block size is fixed at /56.
///
///
///
/// You must specify one of the following in the request: an IPv4 CIDR block, an IPv6
/// pool, or an Amazon-provided IPv6 CIDR block.
///
///
///
/// For more information about associating CIDR blocks with your VPC and applicable restrictions,
/// see IP
/// addressing for your VPCs and subnets in the Amazon VPC User Guide.
///
///
public partial class AssociateVpcCidrBlockRequest : AmazonEC2Request
{
private bool? _amazonProvidedIpv6CidrBlock;
private string _cidrBlock;
private string _ipv4IpamPoolId;
private int? _ipv4NetmaskLength;
private string _ipv6CidrBlock;
private string _ipv6CidrBlockNetworkBorderGroup;
private string _ipv6IpamPoolId;
private int? _ipv6NetmaskLength;
private string _ipv6Pool;
private string _vpcId;
///
/// Gets and sets the property AmazonProvidedIpv6CidrBlock.
///
/// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC.
/// You cannot specify the range of IPv6 addresses, or the size of the CIDR block.
///
///
public bool AmazonProvidedIpv6CidrBlock
{
get { return this._amazonProvidedIpv6CidrBlock.GetValueOrDefault(); }
set { this._amazonProvidedIpv6CidrBlock = value; }
}
// Check to see if AmazonProvidedIpv6CidrBlock property is set
internal bool IsSetAmazonProvidedIpv6CidrBlock()
{
return this._amazonProvidedIpv6CidrBlock.HasValue;
}
///
/// Gets and sets the property CidrBlock.
///
/// An IPv4 CIDR block to associate with the VPC.
///
///
public string CidrBlock
{
get { return this._cidrBlock; }
set { this._cidrBlock = value; }
}
// Check to see if CidrBlock property is set
internal bool IsSetCidrBlock()
{
return this._cidrBlock != null;
}
///
/// Gets and sets the property Ipv4IpamPoolId.
///
/// Associate a CIDR allocated from an IPv4 IPAM pool to a VPC. For more information about
/// Amazon VPC IP Address Manager (IPAM), see What
/// is IPAM? in the Amazon VPC IPAM User Guide.
///
///
public string Ipv4IpamPoolId
{
get { return this._ipv4IpamPoolId; }
set { this._ipv4IpamPoolId = value; }
}
// Check to see if Ipv4IpamPoolId property is set
internal bool IsSetIpv4IpamPoolId()
{
return this._ipv4IpamPoolId != null;
}
///
/// Gets and sets the property Ipv4NetmaskLength.
///
/// The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC
/// IP Address Manager (IPAM) pool. For more information about IPAM, see What
/// is IPAM? in the Amazon VPC IPAM User Guide.
///
///
public int Ipv4NetmaskLength
{
get { return this._ipv4NetmaskLength.GetValueOrDefault(); }
set { this._ipv4NetmaskLength = value; }
}
// Check to see if Ipv4NetmaskLength property is set
internal bool IsSetIpv4NetmaskLength()
{
return this._ipv4NetmaskLength.HasValue;
}
///
/// Gets and sets the property Ipv6CidrBlock.
///
/// An IPv6 CIDR block from the IPv6 address pool. You must also specify Ipv6Pool
/// in the request.
///
///
///
/// To let Amazon choose the IPv6 CIDR block for you, omit this parameter.
///
///
public string Ipv6CidrBlock
{
get { return this._ipv6CidrBlock; }
set { this._ipv6CidrBlock = value; }
}
// Check to see if Ipv6CidrBlock property is set
internal bool IsSetIpv6CidrBlock()
{
return this._ipv6CidrBlock != null;
}
///
/// Gets and sets the property Ipv6CidrBlockNetworkBorderGroup.
///
/// The name of the location from which we advertise the IPV6 CIDR block. Use this parameter
/// to limit the CIDR block to this location.
///
///
///
/// You must set AmazonProvidedIpv6CidrBlock
to true
to use
/// this parameter.
///
///
///
/// You can have one IPv6 CIDR block association per network border group.
///
///
public string Ipv6CidrBlockNetworkBorderGroup
{
get { return this._ipv6CidrBlockNetworkBorderGroup; }
set { this._ipv6CidrBlockNetworkBorderGroup = value; }
}
// Check to see if Ipv6CidrBlockNetworkBorderGroup property is set
internal bool IsSetIpv6CidrBlockNetworkBorderGroup()
{
return this._ipv6CidrBlockNetworkBorderGroup != null;
}
///
/// Gets and sets the property Ipv6IpamPoolId.
///
/// Associates a CIDR allocated from an IPv6 IPAM pool to a VPC. For more information
/// about Amazon VPC IP Address Manager (IPAM), see What
/// is IPAM? in the Amazon VPC IPAM User Guide.
///
///
public string Ipv6IpamPoolId
{
get { return this._ipv6IpamPoolId; }
set { this._ipv6IpamPoolId = value; }
}
// Check to see if Ipv6IpamPoolId property is set
internal bool IsSetIpv6IpamPoolId()
{
return this._ipv6IpamPoolId != null;
}
///
/// Gets and sets the property Ipv6NetmaskLength.
///
/// The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC
/// IP Address Manager (IPAM) pool. For more information about IPAM, see What
/// is IPAM? in the Amazon VPC IPAM User Guide.
///
///
public int Ipv6NetmaskLength
{
get { return this._ipv6NetmaskLength.GetValueOrDefault(); }
set { this._ipv6NetmaskLength = value; }
}
// Check to see if Ipv6NetmaskLength property is set
internal bool IsSetIpv6NetmaskLength()
{
return this._ipv6NetmaskLength.HasValue;
}
///
/// Gets and sets the property Ipv6Pool.
///
/// The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.
///
///
public string Ipv6Pool
{
get { return this._ipv6Pool; }
set { this._ipv6Pool = value; }
}
// Check to see if Ipv6Pool property is set
internal bool IsSetIpv6Pool()
{
return this._ipv6Pool != null;
}
///
/// Gets and sets the property VpcId.
///
/// The ID of the VPC.
///
///
[AWSProperty(Required=true)]
public string VpcId
{
get { return this._vpcId; }
set { this._vpcId = value; }
}
// Check to see if VpcId property is set
internal bool IsSetVpcId()
{
return this._vpcId != null;
}
}
}