/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The criteria by which the behavior is determined to be normal.See
* Also:
AWS
* API Reference
The operator that relates the thing measured (metric) to the
* criteria (containing a value or statisticalThreshold).
* Valid operators include:
string-list:
* in-set and not-in-set
* number-list: in-set and not-in-set
ip-address-list: in-cidr-set and
* not-in-cidr-set
number:
* less-than, less-than-equals,
* greater-than, and greater-than-equals
The operator that relates the thing measured (metric) to the
* criteria (containing a value or statisticalThreshold).
* Valid operators include:
string-list:
* in-set and not-in-set
* number-list: in-set and not-in-set
ip-address-list: in-cidr-set and
* not-in-cidr-set
number:
* less-than, less-than-equals,
* greater-than, and greater-than-equals
The operator that relates the thing measured (metric) to the
* criteria (containing a value or statisticalThreshold).
* Valid operators include:
string-list:
* in-set and not-in-set
* number-list: in-set and not-in-set
ip-address-list: in-cidr-set and
* not-in-cidr-set
number:
* less-than, less-than-equals,
* greater-than, and greater-than-equals
The operator that relates the thing measured (metric) to the
* criteria (containing a value or statisticalThreshold).
* Valid operators include:
string-list:
* in-set and not-in-set
* number-list: in-set and not-in-set
ip-address-list: in-cidr-set and
* not-in-cidr-set
number:
* less-than, less-than-equals,
* greater-than, and greater-than-equals
The operator that relates the thing measured (metric) to the
* criteria (containing a value or statisticalThreshold).
* Valid operators include:
string-list:
* in-set and not-in-set
* number-list: in-set and not-in-set
ip-address-list: in-cidr-set and
* not-in-cidr-set
number:
* less-than, less-than-equals,
* greater-than, and greater-than-equals
The operator that relates the thing measured (metric) to the
* criteria (containing a value or statisticalThreshold).
* Valid operators include:
string-list:
* in-set and not-in-set
* number-list: in-set and not-in-set
ip-address-list: in-cidr-set and
* not-in-cidr-set
number:
* less-than, less-than-equals,
* greater-than, and greater-than-equals
The value to be compared with the metric.
The value to be compared with the metric.
The value to be compared with the metric.
The value to be compared with the metric.
The value to be compared with the metric.
The value to be compared with the metric.
Use this to specify the time duration over which the behavior is evaluated,
* for those criteria that have a time dimension (for example,
* NUM_MESSAGES_SENT). For a statisticalThreshhold metric
* comparison, measurements from all devices are accumulated over this time
* duration before being used to calculate percentiles, and later, measurements
* from an individual device are also accumulated over this time duration before
* being given a percentile rank. Cannot be used with list-based metric
* datatypes.
Use this to specify the time duration over which the behavior is evaluated,
* for those criteria that have a time dimension (for example,
* NUM_MESSAGES_SENT). For a statisticalThreshhold metric
* comparison, measurements from all devices are accumulated over this time
* duration before being used to calculate percentiles, and later, measurements
* from an individual device are also accumulated over this time duration before
* being given a percentile rank. Cannot be used with list-based metric
* datatypes.
Use this to specify the time duration over which the behavior is evaluated,
* for those criteria that have a time dimension (for example,
* NUM_MESSAGES_SENT). For a statisticalThreshhold metric
* comparison, measurements from all devices are accumulated over this time
* duration before being used to calculate percentiles, and later, measurements
* from an individual device are also accumulated over this time duration before
* being given a percentile rank. Cannot be used with list-based metric
* datatypes.
Use this to specify the time duration over which the behavior is evaluated,
* for those criteria that have a time dimension (for example,
* NUM_MESSAGES_SENT). For a statisticalThreshhold metric
* comparison, measurements from all devices are accumulated over this time
* duration before being used to calculate percentiles, and later, measurements
* from an individual device are also accumulated over this time duration before
* being given a percentile rank. Cannot be used with list-based metric
* datatypes.
If a device is in violation of the behavior for the specified number of * consecutive datapoints, an alarm occurs. If not specified, the default is 1.
*/ inline int GetConsecutiveDatapointsToAlarm() const{ return m_consecutiveDatapointsToAlarm; } /** *If a device is in violation of the behavior for the specified number of * consecutive datapoints, an alarm occurs. If not specified, the default is 1.
*/ inline bool ConsecutiveDatapointsToAlarmHasBeenSet() const { return m_consecutiveDatapointsToAlarmHasBeenSet; } /** *If a device is in violation of the behavior for the specified number of * consecutive datapoints, an alarm occurs. If not specified, the default is 1.
*/ inline void SetConsecutiveDatapointsToAlarm(int value) { m_consecutiveDatapointsToAlarmHasBeenSet = true; m_consecutiveDatapointsToAlarm = value; } /** *If a device is in violation of the behavior for the specified number of * consecutive datapoints, an alarm occurs. If not specified, the default is 1.
*/ inline BehaviorCriteria& WithConsecutiveDatapointsToAlarm(int value) { SetConsecutiveDatapointsToAlarm(value); return *this;} /** *If an alarm has occurred and the offending device is no longer in violation * of the behavior for the specified number of consecutive datapoints, the alarm is * cleared. If not specified, the default is 1.
*/ inline int GetConsecutiveDatapointsToClear() const{ return m_consecutiveDatapointsToClear; } /** *If an alarm has occurred and the offending device is no longer in violation * of the behavior for the specified number of consecutive datapoints, the alarm is * cleared. If not specified, the default is 1.
*/ inline bool ConsecutiveDatapointsToClearHasBeenSet() const { return m_consecutiveDatapointsToClearHasBeenSet; } /** *If an alarm has occurred and the offending device is no longer in violation * of the behavior for the specified number of consecutive datapoints, the alarm is * cleared. If not specified, the default is 1.
*/ inline void SetConsecutiveDatapointsToClear(int value) { m_consecutiveDatapointsToClearHasBeenSet = true; m_consecutiveDatapointsToClear = value; } /** *If an alarm has occurred and the offending device is no longer in violation * of the behavior for the specified number of consecutive datapoints, the alarm is * cleared. If not specified, the default is 1.
*/ inline BehaviorCriteria& WithConsecutiveDatapointsToClear(int value) { SetConsecutiveDatapointsToClear(value); return *this;} /** *A statistical ranking (percentile)that indicates a threshold value by which a * behavior is determined to be in compliance or in violation of the behavior.
*/ inline const StatisticalThreshold& GetStatisticalThreshold() const{ return m_statisticalThreshold; } /** *A statistical ranking (percentile)that indicates a threshold value by which a * behavior is determined to be in compliance or in violation of the behavior.
*/ inline bool StatisticalThresholdHasBeenSet() const { return m_statisticalThresholdHasBeenSet; } /** *A statistical ranking (percentile)that indicates a threshold value by which a * behavior is determined to be in compliance or in violation of the behavior.
*/ inline void SetStatisticalThreshold(const StatisticalThreshold& value) { m_statisticalThresholdHasBeenSet = true; m_statisticalThreshold = value; } /** *A statistical ranking (percentile)that indicates a threshold value by which a * behavior is determined to be in compliance or in violation of the behavior.
*/ inline void SetStatisticalThreshold(StatisticalThreshold&& value) { m_statisticalThresholdHasBeenSet = true; m_statisticalThreshold = std::move(value); } /** *A statistical ranking (percentile)that indicates a threshold value by which a * behavior is determined to be in compliance or in violation of the behavior.
*/ inline BehaviorCriteria& WithStatisticalThreshold(const StatisticalThreshold& value) { SetStatisticalThreshold(value); return *this;} /** *A statistical ranking (percentile)that indicates a threshold value by which a * behavior is determined to be in compliance or in violation of the behavior.
*/ inline BehaviorCriteria& WithStatisticalThreshold(StatisticalThreshold&& value) { SetStatisticalThreshold(std::move(value)); return *this;} /** *The configuration of an ML Detect
*/ inline const MachineLearningDetectionConfig& GetMlDetectionConfig() const{ return m_mlDetectionConfig; } /** *The configuration of an ML Detect
*/ inline bool MlDetectionConfigHasBeenSet() const { return m_mlDetectionConfigHasBeenSet; } /** *The configuration of an ML Detect
*/ inline void SetMlDetectionConfig(const MachineLearningDetectionConfig& value) { m_mlDetectionConfigHasBeenSet = true; m_mlDetectionConfig = value; } /** *The configuration of an ML Detect
*/ inline void SetMlDetectionConfig(MachineLearningDetectionConfig&& value) { m_mlDetectionConfigHasBeenSet = true; m_mlDetectionConfig = std::move(value); } /** *The configuration of an ML Detect
*/ inline BehaviorCriteria& WithMlDetectionConfig(const MachineLearningDetectionConfig& value) { SetMlDetectionConfig(value); return *this;} /** *The configuration of an ML Detect
*/ inline BehaviorCriteria& WithMlDetectionConfig(MachineLearningDetectionConfig&& value) { SetMlDetectionConfig(std::move(value)); return *this;} private: ComparisonOperator m_comparisonOperator; bool m_comparisonOperatorHasBeenSet = false; MetricValue m_value; bool m_valueHasBeenSet = false; int m_durationSeconds; bool m_durationSecondsHasBeenSet = false; int m_consecutiveDatapointsToAlarm; bool m_consecutiveDatapointsToAlarmHasBeenSet = false; int m_consecutiveDatapointsToClear; bool m_consecutiveDatapointsToClearHasBeenSet = false; StatisticalThreshold m_statisticalThreshold; bool m_statisticalThresholdHasBeenSet = false; MachineLearningDetectionConfig m_mlDetectionConfig; bool m_mlDetectionConfigHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws