/* * 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 CreateVpc operation. /// Creates a VPC with the specified CIDR blocks. For more information, see IP /// addressing for your VPCs and subnets in the Amazon VPC User Guide. /// /// /// /// You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided /// IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an /// IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP). /// /// /// /// By default, each instance that you launch in the VPC has the default DHCP options, /// which include only a default DNS server that we provide (AmazonProvidedDNS). For more /// information, see DHCP /// option sets in the Amazon VPC User Guide. /// /// /// /// You can specify the instance tenancy value for the VPC when you create it. You can't /// change this value for the VPC after you create it. For more information, see Dedicated /// Instances in the Amazon EC2 User Guide. /// /// public partial class CreateVpcRequest : AmazonEC2Request { private bool? _amazonProvidedIpv6CidrBlock; private string _cidrBlock; private Tenancy _instanceTenancy; private string _ipv4IpamPoolId; private int? _ipv4NetmaskLength; private string _ipv6CidrBlock; private string _ipv6CidrBlockNetworkBorderGroup; private string _ipv6IpamPoolId; private int? _ipv6NetmaskLength; private string _ipv6Pool; private List _tagSpecifications = new List(); /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public CreateVpcRequest() { } /// /// Instantiates CreateVpcRequest with the parameterized properties /// /// The IPv4 network range for the VPC, in CIDR notation. For example, 10.0.0.0/16. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18. public CreateVpcRequest(string cidrBlock) { _cidrBlock = cidrBlock; } /// /// 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 IP 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. /// /// The IPv4 network range for the VPC, in CIDR notation. For example, 10.0.0.0/16. /// We modify the specified CIDR block to its canonical form; for example, if you specify /// 100.68.0.18/18, we modify it to 100.68.0.0/18. /// /// 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 InstanceTenancy. /// /// The tenancy options for instances launched into the VPC. For default, /// instances are launched with shared tenancy by default. You can launch instances with /// any tenancy into a shared tenancy VPC. For dedicated, instances are launched /// as dedicated tenancy instances by default. You can only launch instances with a tenancy /// of dedicated or host into a dedicated tenancy VPC. /// /// /// /// Important: The host value cannot be used with this parameter. /// Use the default or dedicated values only. /// /// /// /// Default: default /// /// public Tenancy InstanceTenancy { get { return this._instanceTenancy; } set { this._instanceTenancy = value; } } // Check to see if InstanceTenancy property is set internal bool IsSetInstanceTenancy() { return this._instanceTenancy != null; } /// /// Gets and sets the property Ipv4IpamPoolId. /// /// The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more /// information, 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 want to allocate to this VPC 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. /// /// The 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 address to this location. /// /// /// /// You must set AmazonProvidedIpv6CidrBlock to true to use /// this parameter. /// /// 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. /// /// The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. /// IPAM is a VPC feature that you can use to automate your IP address management workflows /// including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon /// Web Services Regions and accounts throughout your Amazon Web Services Organization. /// For more information, 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 want to allocate to this VPC 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 TagSpecifications. /// /// The tags to assign to the VPC. /// /// 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; } } }