/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace IoT { namespace Model { /** *

A Device Defender security profile behavior.

See Also:

AWS API * Reference

*/ class Behavior { public: AWS_IOT_API Behavior(); AWS_IOT_API Behavior(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API Behavior& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name you've given to the behavior.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name you've given to the behavior.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name you've given to the behavior.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name you've given to the behavior.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name you've given to the behavior.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name you've given to the behavior.

*/ inline Behavior& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name you've given to the behavior.

*/ inline Behavior& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name you've given to the behavior.

*/ inline Behavior& WithName(const char* value) { SetName(value); return *this;} /** *

What is measured by the behavior.

*/ inline const Aws::String& GetMetric() const{ return m_metric; } /** *

What is measured by the behavior.

*/ inline bool MetricHasBeenSet() const { return m_metricHasBeenSet; } /** *

What is measured by the behavior.

*/ inline void SetMetric(const Aws::String& value) { m_metricHasBeenSet = true; m_metric = value; } /** *

What is measured by the behavior.

*/ inline void SetMetric(Aws::String&& value) { m_metricHasBeenSet = true; m_metric = std::move(value); } /** *

What is measured by the behavior.

*/ inline void SetMetric(const char* value) { m_metricHasBeenSet = true; m_metric.assign(value); } /** *

What is measured by the behavior.

*/ inline Behavior& WithMetric(const Aws::String& value) { SetMetric(value); return *this;} /** *

What is measured by the behavior.

*/ inline Behavior& WithMetric(Aws::String&& value) { SetMetric(std::move(value)); return *this;} /** *

What is measured by the behavior.

*/ inline Behavior& WithMetric(const char* value) { SetMetric(value); return *this;} /** *

The dimension for a metric in your behavior. For example, using a * TOPIC_FILTER dimension, you can narrow down the scope of the metric * to only MQTT topics where the name matches the pattern specified in the * dimension. This can't be used with custom metrics.

*/ inline const MetricDimension& GetMetricDimension() const{ return m_metricDimension; } /** *

The dimension for a metric in your behavior. For example, using a * TOPIC_FILTER dimension, you can narrow down the scope of the metric * to only MQTT topics where the name matches the pattern specified in the * dimension. This can't be used with custom metrics.

*/ inline bool MetricDimensionHasBeenSet() const { return m_metricDimensionHasBeenSet; } /** *

The dimension for a metric in your behavior. For example, using a * TOPIC_FILTER dimension, you can narrow down the scope of the metric * to only MQTT topics where the name matches the pattern specified in the * dimension. This can't be used with custom metrics.

*/ inline void SetMetricDimension(const MetricDimension& value) { m_metricDimensionHasBeenSet = true; m_metricDimension = value; } /** *

The dimension for a metric in your behavior. For example, using a * TOPIC_FILTER dimension, you can narrow down the scope of the metric * to only MQTT topics where the name matches the pattern specified in the * dimension. This can't be used with custom metrics.

*/ inline void SetMetricDimension(MetricDimension&& value) { m_metricDimensionHasBeenSet = true; m_metricDimension = std::move(value); } /** *

The dimension for a metric in your behavior. For example, using a * TOPIC_FILTER dimension, you can narrow down the scope of the metric * to only MQTT topics where the name matches the pattern specified in the * dimension. This can't be used with custom metrics.

*/ inline Behavior& WithMetricDimension(const MetricDimension& value) { SetMetricDimension(value); return *this;} /** *

The dimension for a metric in your behavior. For example, using a * TOPIC_FILTER dimension, you can narrow down the scope of the metric * to only MQTT topics where the name matches the pattern specified in the * dimension. This can't be used with custom metrics.

*/ inline Behavior& WithMetricDimension(MetricDimension&& value) { SetMetricDimension(std::move(value)); return *this;} /** *

The criteria that determine if a device is behaving normally in regard to the * metric.

*/ inline const BehaviorCriteria& GetCriteria() const{ return m_criteria; } /** *

The criteria that determine if a device is behaving normally in regard to the * metric.

*/ inline bool CriteriaHasBeenSet() const { return m_criteriaHasBeenSet; } /** *

The criteria that determine if a device is behaving normally in regard to the * metric.

*/ inline void SetCriteria(const BehaviorCriteria& value) { m_criteriaHasBeenSet = true; m_criteria = value; } /** *

The criteria that determine if a device is behaving normally in regard to the * metric.

*/ inline void SetCriteria(BehaviorCriteria&& value) { m_criteriaHasBeenSet = true; m_criteria = std::move(value); } /** *

The criteria that determine if a device is behaving normally in regard to the * metric.

*/ inline Behavior& WithCriteria(const BehaviorCriteria& value) { SetCriteria(value); return *this;} /** *

The criteria that determine if a device is behaving normally in regard to the * metric.

*/ inline Behavior& WithCriteria(BehaviorCriteria&& value) { SetCriteria(std::move(value)); return *this;} /** *

Suppresses alerts.

*/ inline bool GetSuppressAlerts() const{ return m_suppressAlerts; } /** *

Suppresses alerts.

*/ inline bool SuppressAlertsHasBeenSet() const { return m_suppressAlertsHasBeenSet; } /** *

Suppresses alerts.

*/ inline void SetSuppressAlerts(bool value) { m_suppressAlertsHasBeenSet = true; m_suppressAlerts = value; } /** *

Suppresses alerts.

*/ inline Behavior& WithSuppressAlerts(bool value) { SetSuppressAlerts(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_metric; bool m_metricHasBeenSet = false; MetricDimension m_metricDimension; bool m_metricDimensionHasBeenSet = false; BehaviorCriteria m_criteria; bool m_criteriaHasBeenSet = false; bool m_suppressAlerts; bool m_suppressAlertsHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws