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

Contains an asset transform property. A transform is a one-to-one mapping of * a property's data points from one form to another. For example, you can use a * transform to convert a Celsius data stream to Fahrenheit by applying the * transformation expression to each data point of the Celsius stream. A transform * can only have a data type of DOUBLE and consume properties with * data types of INTEGER or DOUBLE.

For more * information, see Transforms * in the IoT SiteWise User Guide.

See Also:

AWS * API Reference

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The mathematical expression that defines the transformation function. You can * specify up to 10 variables per expression. You can specify up to 10 functions * per expression.

For more information, see Quotas * in the IoT SiteWise User Guide.

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

The list of variables used in the expression.

*/ inline const Aws::Vector& GetVariables() const{ return m_variables; } /** *

The list of variables used in the expression.

*/ inline bool VariablesHasBeenSet() const { return m_variablesHasBeenSet; } /** *

The list of variables used in the expression.

*/ inline void SetVariables(const Aws::Vector& value) { m_variablesHasBeenSet = true; m_variables = value; } /** *

The list of variables used in the expression.

*/ inline void SetVariables(Aws::Vector&& value) { m_variablesHasBeenSet = true; m_variables = std::move(value); } /** *

The list of variables used in the expression.

*/ inline Transform& WithVariables(const Aws::Vector& value) { SetVariables(value); return *this;} /** *

The list of variables used in the expression.

*/ inline Transform& WithVariables(Aws::Vector&& value) { SetVariables(std::move(value)); return *this;} /** *

The list of variables used in the expression.

*/ inline Transform& AddVariables(const ExpressionVariable& value) { m_variablesHasBeenSet = true; m_variables.push_back(value); return *this; } /** *

The list of variables used in the expression.

*/ inline Transform& AddVariables(ExpressionVariable&& value) { m_variablesHasBeenSet = true; m_variables.push_back(std::move(value)); return *this; } /** *

The processing configuration for the given transform property. You can * configure transforms to be kept at the edge or forwarded to the Amazon Web * Services Cloud. You can also configure transforms to be computed at the edge or * in the cloud.

*/ inline const TransformProcessingConfig& GetProcessingConfig() const{ return m_processingConfig; } /** *

The processing configuration for the given transform property. You can * configure transforms to be kept at the edge or forwarded to the Amazon Web * Services Cloud. You can also configure transforms to be computed at the edge or * in the cloud.

*/ inline bool ProcessingConfigHasBeenSet() const { return m_processingConfigHasBeenSet; } /** *

The processing configuration for the given transform property. You can * configure transforms to be kept at the edge or forwarded to the Amazon Web * Services Cloud. You can also configure transforms to be computed at the edge or * in the cloud.

*/ inline void SetProcessingConfig(const TransformProcessingConfig& value) { m_processingConfigHasBeenSet = true; m_processingConfig = value; } /** *

The processing configuration for the given transform property. You can * configure transforms to be kept at the edge or forwarded to the Amazon Web * Services Cloud. You can also configure transforms to be computed at the edge or * in the cloud.

*/ inline void SetProcessingConfig(TransformProcessingConfig&& value) { m_processingConfigHasBeenSet = true; m_processingConfig = std::move(value); } /** *

The processing configuration for the given transform property. You can * configure transforms to be kept at the edge or forwarded to the Amazon Web * Services Cloud. You can also configure transforms to be computed at the edge or * in the cloud.

*/ inline Transform& WithProcessingConfig(const TransformProcessingConfig& value) { SetProcessingConfig(value); return *this;} /** *

The processing configuration for the given transform property. You can * configure transforms to be kept at the edge or forwarded to the Amazon Web * Services Cloud. You can also configure transforms to be computed at the edge or * in the cloud.

*/ inline Transform& WithProcessingConfig(TransformProcessingConfig&& value) { SetProcessingConfig(std::move(value)); return *this;} private: Aws::String m_expression; bool m_expressionHasBeenSet = false; Aws::Vector m_variables; bool m_variablesHasBeenSet = false; TransformProcessingConfig m_processingConfig; bool m_processingConfigHasBeenSet = false; }; } // namespace Model } // namespace IoTSiteWise } // namespace Aws