/* * 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 { /// /// In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you /// to organize your IP addresses according to your routing and security needs. For example, /// if you have separate routing and security needs for development and production applications, /// you can create a pool for each. /// public partial class IpamPool { private AddressFamily _addressFamily; private int? _allocationDefaultNetmaskLength; private int? _allocationMaxNetmaskLength; private int? _allocationMinNetmaskLength; private List _allocationResourceTags = new List(); private bool? _autoImport; private IpamPoolAwsService _awsService; private string _description; private string _ipamArn; private string _ipamPoolArn; private string _ipamPoolId; private string _ipamRegion; private string _ipamScopeArn; private IpamScopeType _ipamScopeType; private string _locale; private string _ownerId; private int? _poolDepth; private IpamPoolPublicIpSource _publicIpSource; private bool? _publiclyAdvertisable; private string _sourceIpamPoolId; private IpamPoolState _state; private string _stateMessage; private List _tags = new List(); /// /// Gets and sets the property AddressFamily. /// /// The address family of the pool. /// /// public AddressFamily AddressFamily { get { return this._addressFamily; } set { this._addressFamily = value; } } // Check to see if AddressFamily property is set internal bool IsSetAddressFamily() { return this._addressFamily != null; } /// /// Gets and sets the property AllocationDefaultNetmaskLength. /// /// The default netmask length for allocations added to this pool. If, for example, the /// CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will /// default to 10.0.0.0/16. /// /// [AWSProperty(Min=0, Max=128)] public int AllocationDefaultNetmaskLength { get { return this._allocationDefaultNetmaskLength.GetValueOrDefault(); } set { this._allocationDefaultNetmaskLength = value; } } // Check to see if AllocationDefaultNetmaskLength property is set internal bool IsSetAllocationDefaultNetmaskLength() { return this._allocationDefaultNetmaskLength.HasValue; } /// /// Gets and sets the property AllocationMaxNetmaskLength. /// /// The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. /// The maximum netmask length must be greater than the minimum netmask length. Possible /// netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses /// are 0 - 128. /// /// [AWSProperty(Min=0, Max=128)] public int AllocationMaxNetmaskLength { get { return this._allocationMaxNetmaskLength.GetValueOrDefault(); } set { this._allocationMaxNetmaskLength = value; } } // Check to see if AllocationMaxNetmaskLength property is set internal bool IsSetAllocationMaxNetmaskLength() { return this._allocationMaxNetmaskLength.HasValue; } /// /// Gets and sets the property AllocationMinNetmaskLength. /// /// The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. /// The minimum netmask length must be less than the maximum netmask length. Possible /// netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses /// are 0 - 128. /// /// [AWSProperty(Min=0, Max=128)] public int AllocationMinNetmaskLength { get { return this._allocationMinNetmaskLength.GetValueOrDefault(); } set { this._allocationMinNetmaskLength = value; } } // Check to see if AllocationMinNetmaskLength property is set internal bool IsSetAllocationMinNetmaskLength() { return this._allocationMinNetmaskLength.HasValue; } /// /// Gets and sets the property AllocationResourceTags. /// /// Tags that are required for resources that use CIDRs from this IPAM pool. Resources /// that do not have these tags will not be allowed to allocate space from the pool. If /// the resources have their tags changed after they have allocated space or if the allocation /// tagging requirements are changed on the pool, the resource may be marked as noncompliant. /// /// public List AllocationResourceTags { get { return this._allocationResourceTags; } set { this._allocationResourceTags = value; } } // Check to see if AllocationResourceTags property is set internal bool IsSetAllocationResourceTags() { return this._allocationResourceTags != null && this._allocationResourceTags.Count > 0; } /// /// Gets and sets the property AutoImport. /// /// If selected, IPAM will continuously look for resources within the CIDR range of this /// pool and automatically import them as allocations into your IPAM. The CIDRs that will /// be allocated for these resources must not already be allocated to other resources /// in order for the import to succeed. IPAM will import a CIDR regardless of its compliance /// with the pool's allocation rules, so a resource might be imported and subsequently /// marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import /// the largest CIDR only. If IPAM discovers multiple CIDRs with matching CIDRs, IPAM /// will randomly import one of them only. /// /// /// /// A locale must be set on the pool for this feature to work. /// /// public bool AutoImport { get { return this._autoImport.GetValueOrDefault(); } set { this._autoImport = value; } } // Check to see if AutoImport property is set internal bool IsSetAutoImport() { return this._autoImport.HasValue; } /// /// Gets and sets the property AwsService. /// /// Limits which service in Amazon Web Services that the pool can be used in. "ec2", for /// example, allows users to use space for Elastic IP addresses and VPCs. /// /// public IpamPoolAwsService AwsService { get { return this._awsService; } set { this._awsService = value; } } // Check to see if AwsService property is set internal bool IsSetAwsService() { return this._awsService != null; } /// /// Gets and sets the property Description. /// /// The description of the IPAM pool. /// /// 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 IpamArn. /// /// The ARN of the IPAM. /// /// [AWSProperty(Min=1, Max=1283)] public string IpamArn { get { return this._ipamArn; } set { this._ipamArn = value; } } // Check to see if IpamArn property is set internal bool IsSetIpamArn() { return this._ipamArn != null; } /// /// Gets and sets the property IpamPoolArn. /// /// The Amazon Resource Name (ARN) of the IPAM pool. /// /// [AWSProperty(Min=1, Max=1283)] public string IpamPoolArn { get { return this._ipamPoolArn; } set { this._ipamPoolArn = value; } } // Check to see if IpamPoolArn property is set internal bool IsSetIpamPoolArn() { return this._ipamPoolArn != null; } /// /// Gets and sets the property IpamPoolId. /// /// The ID of the IPAM pool. /// /// 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 IpamRegion. /// /// The Amazon Web Services Region of the IPAM pool. /// /// public string IpamRegion { get { return this._ipamRegion; } set { this._ipamRegion = value; } } // Check to see if IpamRegion property is set internal bool IsSetIpamRegion() { return this._ipamRegion != null; } /// /// Gets and sets the property IpamScopeArn. /// /// The ARN of the scope of the IPAM pool. /// /// [AWSProperty(Min=1, Max=1283)] public string IpamScopeArn { get { return this._ipamScopeArn; } set { this._ipamScopeArn = value; } } // Check to see if IpamScopeArn property is set internal bool IsSetIpamScopeArn() { return this._ipamScopeArn != null; } /// /// Gets and sets the property IpamScopeType. /// /// In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two /// default scopes. Each scope represents the IP space for a single network. The private /// scope is intended for all private IP address space. The public scope is intended for /// all public IP address space. Scopes enable you to reuse IP addresses across multiple /// unconnected networks without causing IP address overlap or conflict. /// /// public IpamScopeType IpamScopeType { get { return this._ipamScopeType; } set { this._ipamScopeType = value; } } // Check to see if IpamScopeType property is set internal bool IsSetIpamScopeType() { return this._ipamScopeType != null; } /// /// Gets and sets the property Locale. /// /// The locale of the IPAM pool. In IPAM, the locale is the Amazon Web Services Region /// where you want to make an IPAM pool available for allocations. Only resources in the /// same Region as the locale of the pool can get IP address allocations from the pool. /// You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares /// a locale with the VPC’s Region. Note that once you choose a Locale for a pool, you /// cannot modify it. If you choose an Amazon Web Services Region for locale that has /// not been configured as an operating Region for the IPAM, you'll get an error. /// /// public string Locale { get { return this._locale; } set { this._locale = value; } } // Check to see if Locale property is set internal bool IsSetLocale() { return this._locale != null; } /// /// Gets and sets the property OwnerId. /// /// The Amazon Web Services account ID of the owner of the IPAM pool. /// /// public string OwnerId { get { return this._ownerId; } set { this._ownerId = value; } } // Check to see if OwnerId property is set internal bool IsSetOwnerId() { return this._ownerId != null; } /// /// Gets and sets the property PoolDepth. /// /// The depth of pools in your IPAM pool. The pool depth quota is 10. For more information, /// see Quotas /// in IPAM in the Amazon VPC IPAM User Guide. /// /// public int PoolDepth { get { return this._poolDepth.GetValueOrDefault(); } set { this._poolDepth = value; } } // Check to see if PoolDepth property is set internal bool IsSetPoolDepth() { return this._poolDepth.HasValue; } /// /// Gets and sets the property PublicIpSource. /// /// The IP address source for pools in the public scope. Only used for provisioning IP /// address CIDRs to pools in the public scope. Default is BYOIP. For more /// information, see Create /// IPv6 pools in the Amazon VPC IPAM User Guide. By default, you can add only /// one Amazon-provided IPv6 CIDR block to a top-level IPv6 pool. For information on increasing /// the default limit, see /// Quotas for your IPAM in the Amazon VPC IPAM User Guide. /// /// public IpamPoolPublicIpSource PublicIpSource { get { return this._publicIpSource; } set { this._publicIpSource = value; } } // Check to see if PublicIpSource property is set internal bool IsSetPublicIpSource() { return this._publicIpSource != null; } /// /// Gets and sets the property PubliclyAdvertisable. /// /// Determines if a pool is publicly advertisable. This option is not available for pools /// with AddressFamily set to ipv4. /// /// public bool PubliclyAdvertisable { get { return this._publiclyAdvertisable.GetValueOrDefault(); } set { this._publiclyAdvertisable = value; } } // Check to see if PubliclyAdvertisable property is set internal bool IsSetPubliclyAdvertisable() { return this._publiclyAdvertisable.HasValue; } /// /// Gets and sets the property SourceIpamPoolId. /// /// The ID of the source IPAM pool. You can use this option to create an IPAM pool within /// an existing source pool. /// /// public string SourceIpamPoolId { get { return this._sourceIpamPoolId; } set { this._sourceIpamPoolId = value; } } // Check to see if SourceIpamPoolId property is set internal bool IsSetSourceIpamPoolId() { return this._sourceIpamPoolId != null; } /// /// Gets and sets the property State. /// /// The state of the IPAM pool. /// /// public IpamPoolState State { get { return this._state; } set { this._state = value; } } // Check to see if State property is set internal bool IsSetState() { return this._state != null; } /// /// Gets and sets the property StateMessage. /// /// A message related to the failed creation of an IPAM pool. /// /// public string StateMessage { get { return this._stateMessage; } set { this._stateMessage = value; } } // Check to see if StateMessage property is set internal bool IsSetStateMessage() { return this._stateMessage != null; } /// /// Gets and sets the property Tags. /// /// The key/value combination of a tag assigned to the resource. Use the tag key in the /// filter name and the tag value as the filter value. For example, to find all resources /// that have a tag with the key Owner and the value TeamA, /// specify tag:Owner for the filter name and TeamA for the /// filter value. /// /// public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } } }