/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace IoTFleetWise { namespace Model { /** *

Information about a collection scheme that uses a simple logical expression * to recognize what data to collect.

See Also:

AWS * API Reference

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

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline const Aws::String& GetExpression() const{ return m_expression; } /** *

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline bool ExpressionHasBeenSet() const { return m_expressionHasBeenSet; } /** *

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline void SetExpression(const Aws::String& value) { m_expressionHasBeenSet = true; m_expression = value; } /** *

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline void SetExpression(Aws::String&& value) { m_expressionHasBeenSet = true; m_expression = std::move(value); } /** *

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline void SetExpression(const char* value) { m_expressionHasBeenSet = true; m_expression.assign(value); } /** *

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline ConditionBasedCollectionScheme& WithExpression(const Aws::String& value) { SetExpression(value); return *this;} /** *

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline ConditionBasedCollectionScheme& WithExpression(Aws::String&& value) { SetExpression(std::move(value)); return *this;} /** *

The logical expression used to recognize what data to collect. For example, * $variable.Vehicle.OutsideAirTemperature >= 105.0.

*/ inline ConditionBasedCollectionScheme& WithExpression(const char* value) { SetExpression(value); return *this;} /** *

The minimum duration of time between two triggering events to collect data, * in milliseconds.

If a signal changes often, you might want to * collect data at a slower rate.

*/ inline long long GetMinimumTriggerIntervalMs() const{ return m_minimumTriggerIntervalMs; } /** *

The minimum duration of time between two triggering events to collect data, * in milliseconds.

If a signal changes often, you might want to * collect data at a slower rate.

*/ inline bool MinimumTriggerIntervalMsHasBeenSet() const { return m_minimumTriggerIntervalMsHasBeenSet; } /** *

The minimum duration of time between two triggering events to collect data, * in milliseconds.

If a signal changes often, you might want to * collect data at a slower rate.

*/ inline void SetMinimumTriggerIntervalMs(long long value) { m_minimumTriggerIntervalMsHasBeenSet = true; m_minimumTriggerIntervalMs = value; } /** *

The minimum duration of time between two triggering events to collect data, * in milliseconds.

If a signal changes often, you might want to * collect data at a slower rate.

*/ inline ConditionBasedCollectionScheme& WithMinimumTriggerIntervalMs(long long value) { SetMinimumTriggerIntervalMs(value); return *this;} /** *

Whether to collect data for all triggering events (ALWAYS). * Specify (RISING_EDGE), or specify only when the condition first * evaluates to false. For example, triggering on "AirbagDeployed"; Users aren't * interested on triggering when the airbag is already exploded; they only care * about the change from not deployed => deployed.

*/ inline const TriggerMode& GetTriggerMode() const{ return m_triggerMode; } /** *

Whether to collect data for all triggering events (ALWAYS). * Specify (RISING_EDGE), or specify only when the condition first * evaluates to false. For example, triggering on "AirbagDeployed"; Users aren't * interested on triggering when the airbag is already exploded; they only care * about the change from not deployed => deployed.

*/ inline bool TriggerModeHasBeenSet() const { return m_triggerModeHasBeenSet; } /** *

Whether to collect data for all triggering events (ALWAYS). * Specify (RISING_EDGE), or specify only when the condition first * evaluates to false. For example, triggering on "AirbagDeployed"; Users aren't * interested on triggering when the airbag is already exploded; they only care * about the change from not deployed => deployed.

*/ inline void SetTriggerMode(const TriggerMode& value) { m_triggerModeHasBeenSet = true; m_triggerMode = value; } /** *

Whether to collect data for all triggering events (ALWAYS). * Specify (RISING_EDGE), or specify only when the condition first * evaluates to false. For example, triggering on "AirbagDeployed"; Users aren't * interested on triggering when the airbag is already exploded; they only care * about the change from not deployed => deployed.

*/ inline void SetTriggerMode(TriggerMode&& value) { m_triggerModeHasBeenSet = true; m_triggerMode = std::move(value); } /** *

Whether to collect data for all triggering events (ALWAYS). * Specify (RISING_EDGE), or specify only when the condition first * evaluates to false. For example, triggering on "AirbagDeployed"; Users aren't * interested on triggering when the airbag is already exploded; they only care * about the change from not deployed => deployed.

*/ inline ConditionBasedCollectionScheme& WithTriggerMode(const TriggerMode& value) { SetTriggerMode(value); return *this;} /** *

Whether to collect data for all triggering events (ALWAYS). * Specify (RISING_EDGE), or specify only when the condition first * evaluates to false. For example, triggering on "AirbagDeployed"; Users aren't * interested on triggering when the airbag is already exploded; they only care * about the change from not deployed => deployed.

*/ inline ConditionBasedCollectionScheme& WithTriggerMode(TriggerMode&& value) { SetTriggerMode(std::move(value)); return *this;} /** *

Specifies the version of the conditional expression language.

*/ inline int GetConditionLanguageVersion() const{ return m_conditionLanguageVersion; } /** *

Specifies the version of the conditional expression language.

*/ inline bool ConditionLanguageVersionHasBeenSet() const { return m_conditionLanguageVersionHasBeenSet; } /** *

Specifies the version of the conditional expression language.

*/ inline void SetConditionLanguageVersion(int value) { m_conditionLanguageVersionHasBeenSet = true; m_conditionLanguageVersion = value; } /** *

Specifies the version of the conditional expression language.

*/ inline ConditionBasedCollectionScheme& WithConditionLanguageVersion(int value) { SetConditionLanguageVersion(value); return *this;} private: Aws::String m_expression; bool m_expressionHasBeenSet = false; long long m_minimumTriggerIntervalMs; bool m_minimumTriggerIntervalMsHasBeenSet = false; TriggerMode m_triggerMode; bool m_triggerModeHasBeenSet = false; int m_conditionLanguageVersion; bool m_conditionLanguageVersionHasBeenSet = false; }; } // namespace Model } // namespace IoTFleetWise } // namespace Aws