/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace InternetMonitor { namespace Model { /** */ class UpdateMonitorRequest : public InternetMonitorRequest { public: AWS_INTERNETMONITOR_API UpdateMonitorRequest(); // 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 "UpdateMonitor"; } AWS_INTERNETMONITOR_API Aws::String SerializePayload() const override; /** *

The name of the monitor.

*/ inline const Aws::String& GetMonitorName() const{ return m_monitorName; } /** *

The name of the monitor.

*/ inline bool MonitorNameHasBeenSet() const { return m_monitorNameHasBeenSet; } /** *

The name of the monitor.

*/ inline void SetMonitorName(const Aws::String& value) { m_monitorNameHasBeenSet = true; m_monitorName = value; } /** *

The name of the monitor.

*/ inline void SetMonitorName(Aws::String&& value) { m_monitorNameHasBeenSet = true; m_monitorName = std::move(value); } /** *

The name of the monitor.

*/ inline void SetMonitorName(const char* value) { m_monitorNameHasBeenSet = true; m_monitorName.assign(value); } /** *

The name of the monitor.

*/ inline UpdateMonitorRequest& WithMonitorName(const Aws::String& value) { SetMonitorName(value); return *this;} /** *

The name of the monitor.

*/ inline UpdateMonitorRequest& WithMonitorName(Aws::String&& value) { SetMonitorName(std::move(value)); return *this;} /** *

The name of the monitor.

*/ inline UpdateMonitorRequest& WithMonitorName(const char* value) { SetMonitorName(value); return *this;} /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline const Aws::Vector& GetResourcesToAdd() const{ return m_resourcesToAdd; } /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline bool ResourcesToAddHasBeenSet() const { return m_resourcesToAddHasBeenSet; } /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline void SetResourcesToAdd(const Aws::Vector& value) { m_resourcesToAddHasBeenSet = true; m_resourcesToAdd = value; } /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline void SetResourcesToAdd(Aws::Vector&& value) { m_resourcesToAddHasBeenSet = true; m_resourcesToAdd = std::move(value); } /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline UpdateMonitorRequest& WithResourcesToAdd(const Aws::Vector& value) { SetResourcesToAdd(value); return *this;} /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline UpdateMonitorRequest& WithResourcesToAdd(Aws::Vector&& value) { SetResourcesToAdd(std::move(value)); return *this;} /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline UpdateMonitorRequest& AddResourcesToAdd(const Aws::String& value) { m_resourcesToAddHasBeenSet = true; m_resourcesToAdd.push_back(value); return *this; } /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline UpdateMonitorRequest& AddResourcesToAdd(Aws::String&& value) { m_resourcesToAddHasBeenSet = true; m_resourcesToAdd.push_back(std::move(value)); return *this; } /** *

The resources to include in a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

You can add a combination of Amazon Virtual * Private Clouds (VPCs) and Amazon CloudFront distributions, or you can add Amazon * WorkSpaces directories. You can't add all three types of resources.

*

If you add only VPC resources, at least one VPC must have an Internet Gateway * attached to it, to make sure that it has internet connectivity.

*/ inline UpdateMonitorRequest& AddResourcesToAdd(const char* value) { m_resourcesToAddHasBeenSet = true; m_resourcesToAdd.push_back(value); return *this; } /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline const Aws::Vector& GetResourcesToRemove() const{ return m_resourcesToRemove; } /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline bool ResourcesToRemoveHasBeenSet() const { return m_resourcesToRemoveHasBeenSet; } /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline void SetResourcesToRemove(const Aws::Vector& value) { m_resourcesToRemoveHasBeenSet = true; m_resourcesToRemove = value; } /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline void SetResourcesToRemove(Aws::Vector&& value) { m_resourcesToRemoveHasBeenSet = true; m_resourcesToRemove = std::move(value); } /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline UpdateMonitorRequest& WithResourcesToRemove(const Aws::Vector& value) { SetResourcesToRemove(value); return *this;} /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline UpdateMonitorRequest& WithResourcesToRemove(Aws::Vector&& value) { SetResourcesToRemove(std::move(value)); return *this;} /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline UpdateMonitorRequest& AddResourcesToRemove(const Aws::String& value) { m_resourcesToRemoveHasBeenSet = true; m_resourcesToRemove.push_back(value); return *this; } /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline UpdateMonitorRequest& AddResourcesToRemove(Aws::String&& value) { m_resourcesToRemoveHasBeenSet = true; m_resourcesToRemove.push_back(std::move(value)); return *this; } /** *

The resources to remove from a monitor, which you provide as a set of Amazon * Resource Names (ARNs).

*/ inline UpdateMonitorRequest& AddResourcesToRemove(const char* value) { m_resourcesToRemoveHasBeenSet = true; m_resourcesToRemove.push_back(value); return *this; } /** *

The status for a monitor. The accepted values for Status with * the UpdateMonitor API call are the following: ACTIVE * and INACTIVE. The following values are not accepted: * PENDING, and ERROR.

*/ inline const MonitorConfigState& GetStatus() const{ return m_status; } /** *

The status for a monitor. The accepted values for Status with * the UpdateMonitor API call are the following: ACTIVE * and INACTIVE. The following values are not accepted: * PENDING, and ERROR.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status for a monitor. The accepted values for Status with * the UpdateMonitor API call are the following: ACTIVE * and INACTIVE. The following values are not accepted: * PENDING, and ERROR.

*/ inline void SetStatus(const MonitorConfigState& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status for a monitor. The accepted values for Status with * the UpdateMonitor API call are the following: ACTIVE * and INACTIVE. The following values are not accepted: * PENDING, and ERROR.

*/ inline void SetStatus(MonitorConfigState&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status for a monitor. The accepted values for Status with * the UpdateMonitor API call are the following: ACTIVE * and INACTIVE. The following values are not accepted: * PENDING, and ERROR.

*/ inline UpdateMonitorRequest& WithStatus(const MonitorConfigState& value) { SetStatus(value); return *this;} /** *

The status for a monitor. The accepted values for Status with * the UpdateMonitor API call are the following: ACTIVE * and INACTIVE. The following values are not accepted: * PENDING, and ERROR.

*/ inline UpdateMonitorRequest& WithStatus(MonitorConfigState&& value) { SetStatus(std::move(value)); return *this;} /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline UpdateMonitorRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline UpdateMonitorRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique, case-sensitive string of up to 64 ASCII characters that you specify * to make an idempotent API request. You should not reuse the same client token * for other API requests.

*/ inline UpdateMonitorRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The maximum number of city-networks to monitor for your resources. A * city-network is the location (city) where clients access your application * resources from and the network or ASN, such as an internet service provider, * that clients access the resources through.

*/ inline int GetMaxCityNetworksToMonitor() const{ return m_maxCityNetworksToMonitor; } /** *

The maximum number of city-networks to monitor for your resources. A * city-network is the location (city) where clients access your application * resources from and the network or ASN, such as an internet service provider, * that clients access the resources through.

*/ inline bool MaxCityNetworksToMonitorHasBeenSet() const { return m_maxCityNetworksToMonitorHasBeenSet; } /** *

The maximum number of city-networks to monitor for your resources. A * city-network is the location (city) where clients access your application * resources from and the network or ASN, such as an internet service provider, * that clients access the resources through.

*/ inline void SetMaxCityNetworksToMonitor(int value) { m_maxCityNetworksToMonitorHasBeenSet = true; m_maxCityNetworksToMonitor = value; } /** *

The maximum number of city-networks to monitor for your resources. A * city-network is the location (city) where clients access your application * resources from and the network or ASN, such as an internet service provider, * that clients access the resources through.

*/ inline UpdateMonitorRequest& WithMaxCityNetworksToMonitor(int value) { SetMaxCityNetworksToMonitor(value); return *this;} /** *

Publish internet measurements for Internet Monitor to another location, such * as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch * Logs.

*/ inline const InternetMeasurementsLogDelivery& GetInternetMeasurementsLogDelivery() const{ return m_internetMeasurementsLogDelivery; } /** *

Publish internet measurements for Internet Monitor to another location, such * as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch * Logs.

*/ inline bool InternetMeasurementsLogDeliveryHasBeenSet() const { return m_internetMeasurementsLogDeliveryHasBeenSet; } /** *

Publish internet measurements for Internet Monitor to another location, such * as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch * Logs.

*/ inline void SetInternetMeasurementsLogDelivery(const InternetMeasurementsLogDelivery& value) { m_internetMeasurementsLogDeliveryHasBeenSet = true; m_internetMeasurementsLogDelivery = value; } /** *

Publish internet measurements for Internet Monitor to another location, such * as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch * Logs.

*/ inline void SetInternetMeasurementsLogDelivery(InternetMeasurementsLogDelivery&& value) { m_internetMeasurementsLogDeliveryHasBeenSet = true; m_internetMeasurementsLogDelivery = std::move(value); } /** *

Publish internet measurements for Internet Monitor to another location, such * as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch * Logs.

*/ inline UpdateMonitorRequest& WithInternetMeasurementsLogDelivery(const InternetMeasurementsLogDelivery& value) { SetInternetMeasurementsLogDelivery(value); return *this;} /** *

Publish internet measurements for Internet Monitor to another location, such * as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch * Logs.

*/ inline UpdateMonitorRequest& WithInternetMeasurementsLogDelivery(InternetMeasurementsLogDelivery&& value) { SetInternetMeasurementsLogDelivery(std::move(value)); return *this;} /** *

The percentage of the internet-facing traffic for your application that you * want to monitor with this monitor.

*/ inline int GetTrafficPercentageToMonitor() const{ return m_trafficPercentageToMonitor; } /** *

The percentage of the internet-facing traffic for your application that you * want to monitor with this monitor.

*/ inline bool TrafficPercentageToMonitorHasBeenSet() const { return m_trafficPercentageToMonitorHasBeenSet; } /** *

The percentage of the internet-facing traffic for your application that you * want to monitor with this monitor.

*/ inline void SetTrafficPercentageToMonitor(int value) { m_trafficPercentageToMonitorHasBeenSet = true; m_trafficPercentageToMonitor = value; } /** *

The percentage of the internet-facing traffic for your application that you * want to monitor with this monitor.

*/ inline UpdateMonitorRequest& WithTrafficPercentageToMonitor(int value) { SetTrafficPercentageToMonitor(value); return *this;} /** *

The list of health event thresholds. A health event threshold percentage, for * performance and availability, determines when Internet Monitor creates a health * event when there's an internet issue that affects your application end * users.

*/ inline const HealthEventsConfig& GetHealthEventsConfig() const{ return m_healthEventsConfig; } /** *

The list of health event thresholds. A health event threshold percentage, for * performance and availability, determines when Internet Monitor creates a health * event when there's an internet issue that affects your application end * users.

*/ inline bool HealthEventsConfigHasBeenSet() const { return m_healthEventsConfigHasBeenSet; } /** *

The list of health event thresholds. A health event threshold percentage, for * performance and availability, determines when Internet Monitor creates a health * event when there's an internet issue that affects your application end * users.

*/ inline void SetHealthEventsConfig(const HealthEventsConfig& value) { m_healthEventsConfigHasBeenSet = true; m_healthEventsConfig = value; } /** *

The list of health event thresholds. A health event threshold percentage, for * performance and availability, determines when Internet Monitor creates a health * event when there's an internet issue that affects your application end * users.

*/ inline void SetHealthEventsConfig(HealthEventsConfig&& value) { m_healthEventsConfigHasBeenSet = true; m_healthEventsConfig = std::move(value); } /** *

The list of health event thresholds. A health event threshold percentage, for * performance and availability, determines when Internet Monitor creates a health * event when there's an internet issue that affects your application end * users.

*/ inline UpdateMonitorRequest& WithHealthEventsConfig(const HealthEventsConfig& value) { SetHealthEventsConfig(value); return *this;} /** *

The list of health event thresholds. A health event threshold percentage, for * performance and availability, determines when Internet Monitor creates a health * event when there's an internet issue that affects your application end * users.

*/ inline UpdateMonitorRequest& WithHealthEventsConfig(HealthEventsConfig&& value) { SetHealthEventsConfig(std::move(value)); return *this;} private: Aws::String m_monitorName; bool m_monitorNameHasBeenSet = false; Aws::Vector m_resourcesToAdd; bool m_resourcesToAddHasBeenSet = false; Aws::Vector m_resourcesToRemove; bool m_resourcesToRemoveHasBeenSet = false; MonitorConfigState m_status; bool m_statusHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; int m_maxCityNetworksToMonitor; bool m_maxCityNetworksToMonitorHasBeenSet = false; InternetMeasurementsLogDelivery m_internetMeasurementsLogDelivery; bool m_internetMeasurementsLogDeliveryHasBeenSet = false; int m_trafficPercentageToMonitor; bool m_trafficPercentageToMonitorHasBeenSet = false; HealthEventsConfig m_healthEventsConfig; bool m_healthEventsConfigHasBeenSet = false; }; } // namespace Model } // namespace InternetMonitor } // namespace Aws