/** * 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 { /** *

Specifies what data to collect and how often or when to collect * it.

See Also:

AWS * API Reference

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

Information about a collection scheme that uses a time period to decide how * often to collect data.

*/ inline const TimeBasedCollectionScheme& GetTimeBasedCollectionScheme() const{ return m_timeBasedCollectionScheme; } /** *

Information about a collection scheme that uses a time period to decide how * often to collect data.

*/ inline bool TimeBasedCollectionSchemeHasBeenSet() const { return m_timeBasedCollectionSchemeHasBeenSet; } /** *

Information about a collection scheme that uses a time period to decide how * often to collect data.

*/ inline void SetTimeBasedCollectionScheme(const TimeBasedCollectionScheme& value) { m_timeBasedCollectionSchemeHasBeenSet = true; m_timeBasedCollectionScheme = value; } /** *

Information about a collection scheme that uses a time period to decide how * often to collect data.

*/ inline void SetTimeBasedCollectionScheme(TimeBasedCollectionScheme&& value) { m_timeBasedCollectionSchemeHasBeenSet = true; m_timeBasedCollectionScheme = std::move(value); } /** *

Information about a collection scheme that uses a time period to decide how * often to collect data.

*/ inline CollectionScheme& WithTimeBasedCollectionScheme(const TimeBasedCollectionScheme& value) { SetTimeBasedCollectionScheme(value); return *this;} /** *

Information about a collection scheme that uses a time period to decide how * often to collect data.

*/ inline CollectionScheme& WithTimeBasedCollectionScheme(TimeBasedCollectionScheme&& value) { SetTimeBasedCollectionScheme(std::move(value)); return *this;} /** *

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

*/ inline const ConditionBasedCollectionScheme& GetConditionBasedCollectionScheme() const{ return m_conditionBasedCollectionScheme; } /** *

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

*/ inline bool ConditionBasedCollectionSchemeHasBeenSet() const { return m_conditionBasedCollectionSchemeHasBeenSet; } /** *

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

*/ inline void SetConditionBasedCollectionScheme(const ConditionBasedCollectionScheme& value) { m_conditionBasedCollectionSchemeHasBeenSet = true; m_conditionBasedCollectionScheme = value; } /** *

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

*/ inline void SetConditionBasedCollectionScheme(ConditionBasedCollectionScheme&& value) { m_conditionBasedCollectionSchemeHasBeenSet = true; m_conditionBasedCollectionScheme = std::move(value); } /** *

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

*/ inline CollectionScheme& WithConditionBasedCollectionScheme(const ConditionBasedCollectionScheme& value) { SetConditionBasedCollectionScheme(value); return *this;} /** *

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

*/ inline CollectionScheme& WithConditionBasedCollectionScheme(ConditionBasedCollectionScheme&& value) { SetConditionBasedCollectionScheme(std::move(value)); return *this;} private: TimeBasedCollectionScheme m_timeBasedCollectionScheme; bool m_timeBasedCollectionSchemeHasBeenSet = false; ConditionBasedCollectionScheme m_conditionBasedCollectionScheme; bool m_conditionBasedCollectionSchemeHasBeenSet = false; }; } // namespace Model } // namespace IoTFleetWise } // namespace Aws