/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace EC2 { namespace Model { /** */ class ModifyIpamPoolRequest : public EC2Request { public: AWS_EC2_API ModifyIpamPoolRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "ModifyIpamPool"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

A check for whether you have the required permissions for the action without * actually making the request and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool GetDryRun() const{ return m_dryRun; } /** *

A check for whether you have the required permissions for the action without * actually making the request and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

A check for whether you have the required permissions for the action without * actually making the request and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

A check for whether you have the required permissions for the action without * actually making the request and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline ModifyIpamPoolRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

The ID of the IPAM pool you want to modify.

*/ inline const Aws::String& GetIpamPoolId() const{ return m_ipamPoolId; } /** *

The ID of the IPAM pool you want to modify.

*/ inline bool IpamPoolIdHasBeenSet() const { return m_ipamPoolIdHasBeenSet; } /** *

The ID of the IPAM pool you want to modify.

*/ inline void SetIpamPoolId(const Aws::String& value) { m_ipamPoolIdHasBeenSet = true; m_ipamPoolId = value; } /** *

The ID of the IPAM pool you want to modify.

*/ inline void SetIpamPoolId(Aws::String&& value) { m_ipamPoolIdHasBeenSet = true; m_ipamPoolId = std::move(value); } /** *

The ID of the IPAM pool you want to modify.

*/ inline void SetIpamPoolId(const char* value) { m_ipamPoolIdHasBeenSet = true; m_ipamPoolId.assign(value); } /** *

The ID of the IPAM pool you want to modify.

*/ inline ModifyIpamPoolRequest& WithIpamPoolId(const Aws::String& value) { SetIpamPoolId(value); return *this;} /** *

The ID of the IPAM pool you want to modify.

*/ inline ModifyIpamPoolRequest& WithIpamPoolId(Aws::String&& value) { SetIpamPoolId(std::move(value)); return *this;} /** *

The ID of the IPAM pool you want to modify.

*/ inline ModifyIpamPoolRequest& WithIpamPoolId(const char* value) { SetIpamPoolId(value); return *this;} /** *

The description of the IPAM pool you want to modify.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the IPAM pool you want to modify.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the IPAM pool you want to modify.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the IPAM pool you want to modify.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the IPAM pool you want to modify.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the IPAM pool you want to modify.

*/ inline ModifyIpamPoolRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the IPAM pool you want to modify.

*/ inline ModifyIpamPoolRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the IPAM pool you want to modify.

*/ inline ModifyIpamPoolRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

If true, 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.

*/ inline bool GetAutoImport() const{ return m_autoImport; } /** *

If true, 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.

*/ inline bool AutoImportHasBeenSet() const { return m_autoImportHasBeenSet; } /** *

If true, 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.

*/ inline void SetAutoImport(bool value) { m_autoImportHasBeenSet = true; m_autoImport = value; } /** *

If true, 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.

*/ inline ModifyIpamPoolRequest& WithAutoImport(bool value) { SetAutoImport(value); return *this;} /** *

The minimum netmask length required for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128. The minimum netmask length must * be less than the maximum netmask length.

*/ inline int GetAllocationMinNetmaskLength() const{ return m_allocationMinNetmaskLength; } /** *

The minimum netmask length required for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128. The minimum netmask length must * be less than the maximum netmask length.

*/ inline bool AllocationMinNetmaskLengthHasBeenSet() const { return m_allocationMinNetmaskLengthHasBeenSet; } /** *

The minimum netmask length required for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128. The minimum netmask length must * be less than the maximum netmask length.

*/ inline void SetAllocationMinNetmaskLength(int value) { m_allocationMinNetmaskLengthHasBeenSet = true; m_allocationMinNetmaskLength = value; } /** *

The minimum netmask length required for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128. The minimum netmask length must * be less than the maximum netmask length.

*/ inline ModifyIpamPoolRequest& WithAllocationMinNetmaskLength(int value) { SetAllocationMinNetmaskLength(value); return *this;} /** *

The maximum netmask length possible for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128.The maximum netmask length must * be greater than the minimum netmask length.

*/ inline int GetAllocationMaxNetmaskLength() const{ return m_allocationMaxNetmaskLength; } /** *

The maximum netmask length possible for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128.The maximum netmask length must * be greater than the minimum netmask length.

*/ inline bool AllocationMaxNetmaskLengthHasBeenSet() const { return m_allocationMaxNetmaskLengthHasBeenSet; } /** *

The maximum netmask length possible for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128.The maximum netmask length must * be greater than the minimum netmask length.

*/ inline void SetAllocationMaxNetmaskLength(int value) { m_allocationMaxNetmaskLengthHasBeenSet = true; m_allocationMaxNetmaskLength = value; } /** *

The maximum netmask length possible for CIDR allocations in this IPAM pool to * be compliant. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible * netmask lengths for IPv6 addresses are 0 - 128.The maximum netmask length must * be greater than the minimum netmask length.

*/ inline ModifyIpamPoolRequest& WithAllocationMaxNetmaskLength(int value) { SetAllocationMaxNetmaskLength(value); return *this;} /** *

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.

*/ inline int GetAllocationDefaultNetmaskLength() const{ return m_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.

*/ inline bool AllocationDefaultNetmaskLengthHasBeenSet() const { return m_allocationDefaultNetmaskLengthHasBeenSet; } /** *

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.

*/ inline void SetAllocationDefaultNetmaskLength(int value) { m_allocationDefaultNetmaskLengthHasBeenSet = true; m_allocationDefaultNetmaskLength = value; } /** *

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.

*/ inline ModifyIpamPoolRequest& WithAllocationDefaultNetmaskLength(int value) { SetAllocationDefaultNetmaskLength(value); return *this;} /** *

Clear the default netmask length allocation rule for this pool.

*/ inline bool GetClearAllocationDefaultNetmaskLength() const{ return m_clearAllocationDefaultNetmaskLength; } /** *

Clear the default netmask length allocation rule for this pool.

*/ inline bool ClearAllocationDefaultNetmaskLengthHasBeenSet() const { return m_clearAllocationDefaultNetmaskLengthHasBeenSet; } /** *

Clear the default netmask length allocation rule for this pool.

*/ inline void SetClearAllocationDefaultNetmaskLength(bool value) { m_clearAllocationDefaultNetmaskLengthHasBeenSet = true; m_clearAllocationDefaultNetmaskLength = value; } /** *

Clear the default netmask length allocation rule for this pool.

*/ inline ModifyIpamPoolRequest& WithClearAllocationDefaultNetmaskLength(bool value) { SetClearAllocationDefaultNetmaskLength(value); return *this;} /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline const Aws::Vector& GetAddAllocationResourceTags() const{ return m_addAllocationResourceTags; } /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline bool AddAllocationResourceTagsHasBeenSet() const { return m_addAllocationResourceTagsHasBeenSet; } /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline void SetAddAllocationResourceTags(const Aws::Vector& value) { m_addAllocationResourceTagsHasBeenSet = true; m_addAllocationResourceTags = value; } /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline void SetAddAllocationResourceTags(Aws::Vector&& value) { m_addAllocationResourceTagsHasBeenSet = true; m_addAllocationResourceTags = std::move(value); } /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline ModifyIpamPoolRequest& WithAddAllocationResourceTags(const Aws::Vector& value) { SetAddAllocationResourceTags(value); return *this;} /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline ModifyIpamPoolRequest& WithAddAllocationResourceTags(Aws::Vector&& value) { SetAddAllocationResourceTags(std::move(value)); return *this;} /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline ModifyIpamPoolRequest& AddAddAllocationResourceTags(const RequestIpamResourceTag& value) { m_addAllocationResourceTagsHasBeenSet = true; m_addAllocationResourceTags.push_back(value); return *this; } /** *

Add tag allocation rules to a pool. For more information about allocation * rules, see Create a * top-level pool in the Amazon VPC IPAM User Guide.

*/ inline ModifyIpamPoolRequest& AddAddAllocationResourceTags(RequestIpamResourceTag&& value) { m_addAllocationResourceTagsHasBeenSet = true; m_addAllocationResourceTags.push_back(std::move(value)); return *this; } /** *

Remove tag allocation rules from a pool.

*/ inline const Aws::Vector& GetRemoveAllocationResourceTags() const{ return m_removeAllocationResourceTags; } /** *

Remove tag allocation rules from a pool.

*/ inline bool RemoveAllocationResourceTagsHasBeenSet() const { return m_removeAllocationResourceTagsHasBeenSet; } /** *

Remove tag allocation rules from a pool.

*/ inline void SetRemoveAllocationResourceTags(const Aws::Vector& value) { m_removeAllocationResourceTagsHasBeenSet = true; m_removeAllocationResourceTags = value; } /** *

Remove tag allocation rules from a pool.

*/ inline void SetRemoveAllocationResourceTags(Aws::Vector&& value) { m_removeAllocationResourceTagsHasBeenSet = true; m_removeAllocationResourceTags = std::move(value); } /** *

Remove tag allocation rules from a pool.

*/ inline ModifyIpamPoolRequest& WithRemoveAllocationResourceTags(const Aws::Vector& value) { SetRemoveAllocationResourceTags(value); return *this;} /** *

Remove tag allocation rules from a pool.

*/ inline ModifyIpamPoolRequest& WithRemoveAllocationResourceTags(Aws::Vector&& value) { SetRemoveAllocationResourceTags(std::move(value)); return *this;} /** *

Remove tag allocation rules from a pool.

*/ inline ModifyIpamPoolRequest& AddRemoveAllocationResourceTags(const RequestIpamResourceTag& value) { m_removeAllocationResourceTagsHasBeenSet = true; m_removeAllocationResourceTags.push_back(value); return *this; } /** *

Remove tag allocation rules from a pool.

*/ inline ModifyIpamPoolRequest& AddRemoveAllocationResourceTags(RequestIpamResourceTag&& value) { m_removeAllocationResourceTagsHasBeenSet = true; m_removeAllocationResourceTags.push_back(std::move(value)); return *this; } private: bool m_dryRun; bool m_dryRunHasBeenSet = false; Aws::String m_ipamPoolId; bool m_ipamPoolIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_autoImport; bool m_autoImportHasBeenSet = false; int m_allocationMinNetmaskLength; bool m_allocationMinNetmaskLengthHasBeenSet = false; int m_allocationMaxNetmaskLength; bool m_allocationMaxNetmaskLengthHasBeenSet = false; int m_allocationDefaultNetmaskLength; bool m_allocationDefaultNetmaskLengthHasBeenSet = false; bool m_clearAllocationDefaultNetmaskLength; bool m_clearAllocationDefaultNetmaskLengthHasBeenSet = false; Aws::Vector m_addAllocationResourceTags; bool m_addAllocationResourceTagsHasBeenSet = false; Aws::Vector m_removeAllocationResourceTags; bool m_removeAllocationResourceTagsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws