/** * 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 Backup { namespace Model { /** *

Contains detailed information about all of the controls of a framework. Each * framework must contain at least one control.

See Also:

AWS * API Reference

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

The name of a control. This name is between 1 and 256 characters.

*/ inline const Aws::String& GetControlName() const{ return m_controlName; } /** *

The name of a control. This name is between 1 and 256 characters.

*/ inline bool ControlNameHasBeenSet() const { return m_controlNameHasBeenSet; } /** *

The name of a control. This name is between 1 and 256 characters.

*/ inline void SetControlName(const Aws::String& value) { m_controlNameHasBeenSet = true; m_controlName = value; } /** *

The name of a control. This name is between 1 and 256 characters.

*/ inline void SetControlName(Aws::String&& value) { m_controlNameHasBeenSet = true; m_controlName = std::move(value); } /** *

The name of a control. This name is between 1 and 256 characters.

*/ inline void SetControlName(const char* value) { m_controlNameHasBeenSet = true; m_controlName.assign(value); } /** *

The name of a control. This name is between 1 and 256 characters.

*/ inline FrameworkControl& WithControlName(const Aws::String& value) { SetControlName(value); return *this;} /** *

The name of a control. This name is between 1 and 256 characters.

*/ inline FrameworkControl& WithControlName(Aws::String&& value) { SetControlName(std::move(value)); return *this;} /** *

The name of a control. This name is between 1 and 256 characters.

*/ inline FrameworkControl& WithControlName(const char* value) { SetControlName(value); return *this;} /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline const Aws::Vector& GetControlInputParameters() const{ return m_controlInputParameters; } /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline bool ControlInputParametersHasBeenSet() const { return m_controlInputParametersHasBeenSet; } /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline void SetControlInputParameters(const Aws::Vector& value) { m_controlInputParametersHasBeenSet = true; m_controlInputParameters = value; } /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline void SetControlInputParameters(Aws::Vector&& value) { m_controlInputParametersHasBeenSet = true; m_controlInputParameters = std::move(value); } /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline FrameworkControl& WithControlInputParameters(const Aws::Vector& value) { SetControlInputParameters(value); return *this;} /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline FrameworkControl& WithControlInputParameters(Aws::Vector&& value) { SetControlInputParameters(std::move(value)); return *this;} /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline FrameworkControl& AddControlInputParameters(const ControlInputParameter& value) { m_controlInputParametersHasBeenSet = true; m_controlInputParameters.push_back(value); return *this; } /** *

A list of ParameterName and ParameterValue * pairs.

*/ inline FrameworkControl& AddControlInputParameters(ControlInputParameter&& value) { m_controlInputParametersHasBeenSet = true; m_controlInputParameters.push_back(std::move(value)); return *this; } /** *

The scope of a control. The control scope defines what the control will * evaluate. Three examples of control scopes are: a specific backup plan, all * backup plans with a specific tag, or all backup plans. For more information, see * * ControlScope.

*/ inline const ControlScope& GetControlScope() const{ return m_controlScope; } /** *

The scope of a control. The control scope defines what the control will * evaluate. Three examples of control scopes are: a specific backup plan, all * backup plans with a specific tag, or all backup plans. For more information, see * * ControlScope.

*/ inline bool ControlScopeHasBeenSet() const { return m_controlScopeHasBeenSet; } /** *

The scope of a control. The control scope defines what the control will * evaluate. Three examples of control scopes are: a specific backup plan, all * backup plans with a specific tag, or all backup plans. For more information, see * * ControlScope.

*/ inline void SetControlScope(const ControlScope& value) { m_controlScopeHasBeenSet = true; m_controlScope = value; } /** *

The scope of a control. The control scope defines what the control will * evaluate. Three examples of control scopes are: a specific backup plan, all * backup plans with a specific tag, or all backup plans. For more information, see * * ControlScope.

*/ inline void SetControlScope(ControlScope&& value) { m_controlScopeHasBeenSet = true; m_controlScope = std::move(value); } /** *

The scope of a control. The control scope defines what the control will * evaluate. Three examples of control scopes are: a specific backup plan, all * backup plans with a specific tag, or all backup plans. For more information, see * * ControlScope.

*/ inline FrameworkControl& WithControlScope(const ControlScope& value) { SetControlScope(value); return *this;} /** *

The scope of a control. The control scope defines what the control will * evaluate. Three examples of control scopes are: a specific backup plan, all * backup plans with a specific tag, or all backup plans. For more information, see * * ControlScope.

*/ inline FrameworkControl& WithControlScope(ControlScope&& value) { SetControlScope(std::move(value)); return *this;} private: Aws::String m_controlName; bool m_controlNameHasBeenSet = false; Aws::Vector m_controlInputParameters; bool m_controlInputParametersHasBeenSet = false; ControlScope m_controlScope; bool m_controlScopeHasBeenSet = false; }; } // namespace Model } // namespace Backup } // namespace Aws