/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace EC2 { namespace Model { /** */ class ModifyVpcAttributeRequest : public EC2Request { public: AWS_EC2_API ModifyVpcAttributeRequest(); // 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 "ModifyVpcAttribute"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

Indicates whether the instances launched in the VPC get DNS hostnames. If * enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

*

You cannot modify the DNS resolution and DNS hostnames attributes in the same * request. Use separate requests for each attribute. You can only enable DNS * hostnames if you've enabled DNS support.

*/ inline const AttributeBooleanValue& GetEnableDnsHostnames() const{ return m_enableDnsHostnames; } /** *

Indicates whether the instances launched in the VPC get DNS hostnames. If * enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

*

You cannot modify the DNS resolution and DNS hostnames attributes in the same * request. Use separate requests for each attribute. You can only enable DNS * hostnames if you've enabled DNS support.

*/ inline bool EnableDnsHostnamesHasBeenSet() const { return m_enableDnsHostnamesHasBeenSet; } /** *

Indicates whether the instances launched in the VPC get DNS hostnames. If * enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

*

You cannot modify the DNS resolution and DNS hostnames attributes in the same * request. Use separate requests for each attribute. You can only enable DNS * hostnames if you've enabled DNS support.

*/ inline void SetEnableDnsHostnames(const AttributeBooleanValue& value) { m_enableDnsHostnamesHasBeenSet = true; m_enableDnsHostnames = value; } /** *

Indicates whether the instances launched in the VPC get DNS hostnames. If * enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

*

You cannot modify the DNS resolution and DNS hostnames attributes in the same * request. Use separate requests for each attribute. You can only enable DNS * hostnames if you've enabled DNS support.

*/ inline void SetEnableDnsHostnames(AttributeBooleanValue&& value) { m_enableDnsHostnamesHasBeenSet = true; m_enableDnsHostnames = std::move(value); } /** *

Indicates whether the instances launched in the VPC get DNS hostnames. If * enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

*

You cannot modify the DNS resolution and DNS hostnames attributes in the same * request. Use separate requests for each attribute. You can only enable DNS * hostnames if you've enabled DNS support.

*/ inline ModifyVpcAttributeRequest& WithEnableDnsHostnames(const AttributeBooleanValue& value) { SetEnableDnsHostnames(value); return *this;} /** *

Indicates whether the instances launched in the VPC get DNS hostnames. If * enabled, instances in the VPC get DNS hostnames; otherwise, they do not.

*

You cannot modify the DNS resolution and DNS hostnames attributes in the same * request. Use separate requests for each attribute. You can only enable DNS * hostnames if you've enabled DNS support.

*/ inline ModifyVpcAttributeRequest& WithEnableDnsHostnames(AttributeBooleanValue&& value) { SetEnableDnsHostnames(std::move(value)); return *this;} /** *

Indicates whether the DNS resolution is supported for the VPC. If enabled, * queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or * the reserved IP address at the base of the VPC network range "plus two" succeed. * If disabled, the Amazon provided DNS service in the VPC that resolves public DNS * hostnames to IP addresses is not enabled.

You cannot modify the DNS * resolution and DNS hostnames attributes in the same request. Use separate * requests for each attribute.

*/ inline const AttributeBooleanValue& GetEnableDnsSupport() const{ return m_enableDnsSupport; } /** *

Indicates whether the DNS resolution is supported for the VPC. If enabled, * queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or * the reserved IP address at the base of the VPC network range "plus two" succeed. * If disabled, the Amazon provided DNS service in the VPC that resolves public DNS * hostnames to IP addresses is not enabled.

You cannot modify the DNS * resolution and DNS hostnames attributes in the same request. Use separate * requests for each attribute.

*/ inline bool EnableDnsSupportHasBeenSet() const { return m_enableDnsSupportHasBeenSet; } /** *

Indicates whether the DNS resolution is supported for the VPC. If enabled, * queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or * the reserved IP address at the base of the VPC network range "plus two" succeed. * If disabled, the Amazon provided DNS service in the VPC that resolves public DNS * hostnames to IP addresses is not enabled.

You cannot modify the DNS * resolution and DNS hostnames attributes in the same request. Use separate * requests for each attribute.

*/ inline void SetEnableDnsSupport(const AttributeBooleanValue& value) { m_enableDnsSupportHasBeenSet = true; m_enableDnsSupport = value; } /** *

Indicates whether the DNS resolution is supported for the VPC. If enabled, * queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or * the reserved IP address at the base of the VPC network range "plus two" succeed. * If disabled, the Amazon provided DNS service in the VPC that resolves public DNS * hostnames to IP addresses is not enabled.

You cannot modify the DNS * resolution and DNS hostnames attributes in the same request. Use separate * requests for each attribute.

*/ inline void SetEnableDnsSupport(AttributeBooleanValue&& value) { m_enableDnsSupportHasBeenSet = true; m_enableDnsSupport = std::move(value); } /** *

Indicates whether the DNS resolution is supported for the VPC. If enabled, * queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or * the reserved IP address at the base of the VPC network range "plus two" succeed. * If disabled, the Amazon provided DNS service in the VPC that resolves public DNS * hostnames to IP addresses is not enabled.

You cannot modify the DNS * resolution and DNS hostnames attributes in the same request. Use separate * requests for each attribute.

*/ inline ModifyVpcAttributeRequest& WithEnableDnsSupport(const AttributeBooleanValue& value) { SetEnableDnsSupport(value); return *this;} /** *

Indicates whether the DNS resolution is supported for the VPC. If enabled, * queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or * the reserved IP address at the base of the VPC network range "plus two" succeed. * If disabled, the Amazon provided DNS service in the VPC that resolves public DNS * hostnames to IP addresses is not enabled.

You cannot modify the DNS * resolution and DNS hostnames attributes in the same request. Use separate * requests for each attribute.

*/ inline ModifyVpcAttributeRequest& WithEnableDnsSupport(AttributeBooleanValue&& value) { SetEnableDnsSupport(std::move(value)); return *this;} /** *

The ID of the VPC.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The ID of the VPC.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The ID of the VPC.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The ID of the VPC.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The ID of the VPC.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The ID of the VPC.

*/ inline ModifyVpcAttributeRequest& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The ID of the VPC.

*/ inline ModifyVpcAttributeRequest& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The ID of the VPC.

*/ inline ModifyVpcAttributeRequest& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

Indicates whether Network Address Usage metrics are enabled for your VPC.

*/ inline const AttributeBooleanValue& GetEnableNetworkAddressUsageMetrics() const{ return m_enableNetworkAddressUsageMetrics; } /** *

Indicates whether Network Address Usage metrics are enabled for your VPC.

*/ inline bool EnableNetworkAddressUsageMetricsHasBeenSet() const { return m_enableNetworkAddressUsageMetricsHasBeenSet; } /** *

Indicates whether Network Address Usage metrics are enabled for your VPC.

*/ inline void SetEnableNetworkAddressUsageMetrics(const AttributeBooleanValue& value) { m_enableNetworkAddressUsageMetricsHasBeenSet = true; m_enableNetworkAddressUsageMetrics = value; } /** *

Indicates whether Network Address Usage metrics are enabled for your VPC.

*/ inline void SetEnableNetworkAddressUsageMetrics(AttributeBooleanValue&& value) { m_enableNetworkAddressUsageMetricsHasBeenSet = true; m_enableNetworkAddressUsageMetrics = std::move(value); } /** *

Indicates whether Network Address Usage metrics are enabled for your VPC.

*/ inline ModifyVpcAttributeRequest& WithEnableNetworkAddressUsageMetrics(const AttributeBooleanValue& value) { SetEnableNetworkAddressUsageMetrics(value); return *this;} /** *

Indicates whether Network Address Usage metrics are enabled for your VPC.

*/ inline ModifyVpcAttributeRequest& WithEnableNetworkAddressUsageMetrics(AttributeBooleanValue&& value) { SetEnableNetworkAddressUsageMetrics(std::move(value)); return *this;} private: AttributeBooleanValue m_enableDnsHostnames; bool m_enableDnsHostnamesHasBeenSet = false; AttributeBooleanValue m_enableDnsSupport; bool m_enableDnsSupportHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; AttributeBooleanValue m_enableNetworkAddressUsageMetrics; bool m_enableNetworkAddressUsageMetricsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws