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