1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/budgets/Budgets_EXPORTS.h> 8 #include <aws/budgets/model/IamActionDefinition.h> 9 #include <aws/budgets/model/ScpActionDefinition.h> 10 #include <aws/budgets/model/SsmActionDefinition.h> 11 #include <utility> 12 13 namespace Aws 14 { 15 namespace Utils 16 { 17 namespace Json 18 { 19 class JsonValue; 20 class JsonView; 21 } // namespace Json 22 } // namespace Utils 23 namespace Budgets 24 { 25 namespace Model 26 { 27 28 /** 29 * <p> Specifies all of the type-specific parameters. </p><p><h3>See Also:</h3> 30 * <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/budgets-2016-10-20/Definition">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_BUDGETS_API Definition 35 { 36 public: 37 Definition(); 38 Definition(Aws::Utils::Json::JsonView jsonValue); 39 Definition& operator=(Aws::Utils::Json::JsonView jsonValue); 40 Aws::Utils::Json::JsonValue Jsonize() const; 41 42 43 /** 44 * <p> The AWS Identity and Access Management (IAM) action definition details. </p> 45 */ GetIamActionDefinition()46 inline const IamActionDefinition& GetIamActionDefinition() const{ return m_iamActionDefinition; } 47 48 /** 49 * <p> The AWS Identity and Access Management (IAM) action definition details. </p> 50 */ IamActionDefinitionHasBeenSet()51 inline bool IamActionDefinitionHasBeenSet() const { return m_iamActionDefinitionHasBeenSet; } 52 53 /** 54 * <p> The AWS Identity and Access Management (IAM) action definition details. </p> 55 */ SetIamActionDefinition(const IamActionDefinition & value)56 inline void SetIamActionDefinition(const IamActionDefinition& value) { m_iamActionDefinitionHasBeenSet = true; m_iamActionDefinition = value; } 57 58 /** 59 * <p> The AWS Identity and Access Management (IAM) action definition details. </p> 60 */ SetIamActionDefinition(IamActionDefinition && value)61 inline void SetIamActionDefinition(IamActionDefinition&& value) { m_iamActionDefinitionHasBeenSet = true; m_iamActionDefinition = std::move(value); } 62 63 /** 64 * <p> The AWS Identity and Access Management (IAM) action definition details. </p> 65 */ WithIamActionDefinition(const IamActionDefinition & value)66 inline Definition& WithIamActionDefinition(const IamActionDefinition& value) { SetIamActionDefinition(value); return *this;} 67 68 /** 69 * <p> The AWS Identity and Access Management (IAM) action definition details. </p> 70 */ WithIamActionDefinition(IamActionDefinition && value)71 inline Definition& WithIamActionDefinition(IamActionDefinition&& value) { SetIamActionDefinition(std::move(value)); return *this;} 72 73 74 /** 75 * <p> The service control policies (SCPs) action definition details. </p> 76 */ GetScpActionDefinition()77 inline const ScpActionDefinition& GetScpActionDefinition() const{ return m_scpActionDefinition; } 78 79 /** 80 * <p> The service control policies (SCPs) action definition details. </p> 81 */ ScpActionDefinitionHasBeenSet()82 inline bool ScpActionDefinitionHasBeenSet() const { return m_scpActionDefinitionHasBeenSet; } 83 84 /** 85 * <p> The service control policies (SCPs) action definition details. </p> 86 */ SetScpActionDefinition(const ScpActionDefinition & value)87 inline void SetScpActionDefinition(const ScpActionDefinition& value) { m_scpActionDefinitionHasBeenSet = true; m_scpActionDefinition = value; } 88 89 /** 90 * <p> The service control policies (SCPs) action definition details. </p> 91 */ SetScpActionDefinition(ScpActionDefinition && value)92 inline void SetScpActionDefinition(ScpActionDefinition&& value) { m_scpActionDefinitionHasBeenSet = true; m_scpActionDefinition = std::move(value); } 93 94 /** 95 * <p> The service control policies (SCPs) action definition details. </p> 96 */ WithScpActionDefinition(const ScpActionDefinition & value)97 inline Definition& WithScpActionDefinition(const ScpActionDefinition& value) { SetScpActionDefinition(value); return *this;} 98 99 /** 100 * <p> The service control policies (SCPs) action definition details. </p> 101 */ WithScpActionDefinition(ScpActionDefinition && value)102 inline Definition& WithScpActionDefinition(ScpActionDefinition&& value) { SetScpActionDefinition(std::move(value)); return *this;} 103 104 105 /** 106 * <p> The AWS Systems Manager (SSM) action definition details. </p> 107 */ GetSsmActionDefinition()108 inline const SsmActionDefinition& GetSsmActionDefinition() const{ return m_ssmActionDefinition; } 109 110 /** 111 * <p> The AWS Systems Manager (SSM) action definition details. </p> 112 */ SsmActionDefinitionHasBeenSet()113 inline bool SsmActionDefinitionHasBeenSet() const { return m_ssmActionDefinitionHasBeenSet; } 114 115 /** 116 * <p> The AWS Systems Manager (SSM) action definition details. </p> 117 */ SetSsmActionDefinition(const SsmActionDefinition & value)118 inline void SetSsmActionDefinition(const SsmActionDefinition& value) { m_ssmActionDefinitionHasBeenSet = true; m_ssmActionDefinition = value; } 119 120 /** 121 * <p> The AWS Systems Manager (SSM) action definition details. </p> 122 */ SetSsmActionDefinition(SsmActionDefinition && value)123 inline void SetSsmActionDefinition(SsmActionDefinition&& value) { m_ssmActionDefinitionHasBeenSet = true; m_ssmActionDefinition = std::move(value); } 124 125 /** 126 * <p> The AWS Systems Manager (SSM) action definition details. </p> 127 */ WithSsmActionDefinition(const SsmActionDefinition & value)128 inline Definition& WithSsmActionDefinition(const SsmActionDefinition& value) { SetSsmActionDefinition(value); return *this;} 129 130 /** 131 * <p> The AWS Systems Manager (SSM) action definition details. </p> 132 */ WithSsmActionDefinition(SsmActionDefinition && value)133 inline Definition& WithSsmActionDefinition(SsmActionDefinition&& value) { SetSsmActionDefinition(std::move(value)); return *this;} 134 135 private: 136 137 IamActionDefinition m_iamActionDefinition; 138 bool m_iamActionDefinitionHasBeenSet; 139 140 ScpActionDefinition m_scpActionDefinition; 141 bool m_scpActionDefinitionHasBeenSet; 142 143 SsmActionDefinition m_ssmActionDefinition; 144 bool m_ssmActionDefinitionHasBeenSet; 145 }; 146 147 } // namespace Model 148 } // namespace Budgets 149 } // namespace Aws 150