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

Specifies all of the type-specific parameters.

See Also:

AWS * API Reference

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

The Identity and Access Management (IAM) action definition details.

*/ inline const IamActionDefinition& GetIamActionDefinition() const{ return m_iamActionDefinition; } /** *

The Identity and Access Management (IAM) action definition details.

*/ inline bool IamActionDefinitionHasBeenSet() const { return m_iamActionDefinitionHasBeenSet; } /** *

The Identity and Access Management (IAM) action definition details.

*/ inline void SetIamActionDefinition(const IamActionDefinition& value) { m_iamActionDefinitionHasBeenSet = true; m_iamActionDefinition = value; } /** *

The Identity and Access Management (IAM) action definition details.

*/ inline void SetIamActionDefinition(IamActionDefinition&& value) { m_iamActionDefinitionHasBeenSet = true; m_iamActionDefinition = std::move(value); } /** *

The Identity and Access Management (IAM) action definition details.

*/ inline Definition& WithIamActionDefinition(const IamActionDefinition& value) { SetIamActionDefinition(value); return *this;} /** *

The Identity and Access Management (IAM) action definition details.

*/ inline Definition& WithIamActionDefinition(IamActionDefinition&& value) { SetIamActionDefinition(std::move(value)); return *this;} /** *

The service control policies (SCPs) action definition details.

*/ inline const ScpActionDefinition& GetScpActionDefinition() const{ return m_scpActionDefinition; } /** *

The service control policies (SCPs) action definition details.

*/ inline bool ScpActionDefinitionHasBeenSet() const { return m_scpActionDefinitionHasBeenSet; } /** *

The service control policies (SCPs) action definition details.

*/ inline void SetScpActionDefinition(const ScpActionDefinition& value) { m_scpActionDefinitionHasBeenSet = true; m_scpActionDefinition = value; } /** *

The service control policies (SCPs) action definition details.

*/ inline void SetScpActionDefinition(ScpActionDefinition&& value) { m_scpActionDefinitionHasBeenSet = true; m_scpActionDefinition = std::move(value); } /** *

The service control policies (SCPs) action definition details.

*/ inline Definition& WithScpActionDefinition(const ScpActionDefinition& value) { SetScpActionDefinition(value); return *this;} /** *

The service control policies (SCPs) action definition details.

*/ inline Definition& WithScpActionDefinition(ScpActionDefinition&& value) { SetScpActionDefinition(std::move(value)); return *this;} /** *

The Amazon Web Services Systems Manager (SSM) action definition details.

*/ inline const SsmActionDefinition& GetSsmActionDefinition() const{ return m_ssmActionDefinition; } /** *

The Amazon Web Services Systems Manager (SSM) action definition details.

*/ inline bool SsmActionDefinitionHasBeenSet() const { return m_ssmActionDefinitionHasBeenSet; } /** *

The Amazon Web Services Systems Manager (SSM) action definition details.

*/ inline void SetSsmActionDefinition(const SsmActionDefinition& value) { m_ssmActionDefinitionHasBeenSet = true; m_ssmActionDefinition = value; } /** *

The Amazon Web Services Systems Manager (SSM) action definition details.

*/ inline void SetSsmActionDefinition(SsmActionDefinition&& value) { m_ssmActionDefinitionHasBeenSet = true; m_ssmActionDefinition = std::move(value); } /** *

The Amazon Web Services Systems Manager (SSM) action definition details.

*/ inline Definition& WithSsmActionDefinition(const SsmActionDefinition& value) { SetSsmActionDefinition(value); return *this;} /** *

The Amazon Web Services Systems Manager (SSM) action definition details.

*/ inline Definition& WithSsmActionDefinition(SsmActionDefinition&& value) { SetSsmActionDefinition(std::move(value)); return *this;} private: IamActionDefinition m_iamActionDefinition; bool m_iamActionDefinitionHasBeenSet = false; ScpActionDefinition m_scpActionDefinition; bool m_scpActionDefinitionHasBeenSet = false; SsmActionDefinition m_ssmActionDefinition; bool m_ssmActionDefinitionHasBeenSet = false; }; } // namespace Model } // namespace Budgets } // namespace Aws