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/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace Budgets
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p> The service control policies (SCP) action definition details. </p><p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/budgets-2016-10-20/ScpActionDefinition">AWS
31    * API Reference</a></p>
32    */
33   class AWS_BUDGETS_API ScpActionDefinition
34   {
35   public:
36     ScpActionDefinition();
37     ScpActionDefinition(Aws::Utils::Json::JsonView jsonValue);
38     ScpActionDefinition& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p> The policy ID attached. </p>
44      */
GetPolicyId()45     inline const Aws::String& GetPolicyId() const{ return m_policyId; }
46 
47     /**
48      * <p> The policy ID attached. </p>
49      */
PolicyIdHasBeenSet()50     inline bool PolicyIdHasBeenSet() const { return m_policyIdHasBeenSet; }
51 
52     /**
53      * <p> The policy ID attached. </p>
54      */
SetPolicyId(const Aws::String & value)55     inline void SetPolicyId(const Aws::String& value) { m_policyIdHasBeenSet = true; m_policyId = value; }
56 
57     /**
58      * <p> The policy ID attached. </p>
59      */
SetPolicyId(Aws::String && value)60     inline void SetPolicyId(Aws::String&& value) { m_policyIdHasBeenSet = true; m_policyId = std::move(value); }
61 
62     /**
63      * <p> The policy ID attached. </p>
64      */
SetPolicyId(const char * value)65     inline void SetPolicyId(const char* value) { m_policyIdHasBeenSet = true; m_policyId.assign(value); }
66 
67     /**
68      * <p> The policy ID attached. </p>
69      */
WithPolicyId(const Aws::String & value)70     inline ScpActionDefinition& WithPolicyId(const Aws::String& value) { SetPolicyId(value); return *this;}
71 
72     /**
73      * <p> The policy ID attached. </p>
74      */
WithPolicyId(Aws::String && value)75     inline ScpActionDefinition& WithPolicyId(Aws::String&& value) { SetPolicyId(std::move(value)); return *this;}
76 
77     /**
78      * <p> The policy ID attached. </p>
79      */
WithPolicyId(const char * value)80     inline ScpActionDefinition& WithPolicyId(const char* value) { SetPolicyId(value); return *this;}
81 
82 
83     /**
84      * <p> A list of target IDs. </p>
85      */
GetTargetIds()86     inline const Aws::Vector<Aws::String>& GetTargetIds() const{ return m_targetIds; }
87 
88     /**
89      * <p> A list of target IDs. </p>
90      */
TargetIdsHasBeenSet()91     inline bool TargetIdsHasBeenSet() const { return m_targetIdsHasBeenSet; }
92 
93     /**
94      * <p> A list of target IDs. </p>
95      */
SetTargetIds(const Aws::Vector<Aws::String> & value)96     inline void SetTargetIds(const Aws::Vector<Aws::String>& value) { m_targetIdsHasBeenSet = true; m_targetIds = value; }
97 
98     /**
99      * <p> A list of target IDs. </p>
100      */
SetTargetIds(Aws::Vector<Aws::String> && value)101     inline void SetTargetIds(Aws::Vector<Aws::String>&& value) { m_targetIdsHasBeenSet = true; m_targetIds = std::move(value); }
102 
103     /**
104      * <p> A list of target IDs. </p>
105      */
WithTargetIds(const Aws::Vector<Aws::String> & value)106     inline ScpActionDefinition& WithTargetIds(const Aws::Vector<Aws::String>& value) { SetTargetIds(value); return *this;}
107 
108     /**
109      * <p> A list of target IDs. </p>
110      */
WithTargetIds(Aws::Vector<Aws::String> && value)111     inline ScpActionDefinition& WithTargetIds(Aws::Vector<Aws::String>&& value) { SetTargetIds(std::move(value)); return *this;}
112 
113     /**
114      * <p> A list of target IDs. </p>
115      */
AddTargetIds(const Aws::String & value)116     inline ScpActionDefinition& AddTargetIds(const Aws::String& value) { m_targetIdsHasBeenSet = true; m_targetIds.push_back(value); return *this; }
117 
118     /**
119      * <p> A list of target IDs. </p>
120      */
AddTargetIds(Aws::String && value)121     inline ScpActionDefinition& AddTargetIds(Aws::String&& value) { m_targetIdsHasBeenSet = true; m_targetIds.push_back(std::move(value)); return *this; }
122 
123     /**
124      * <p> A list of target IDs. </p>
125      */
AddTargetIds(const char * value)126     inline ScpActionDefinition& AddTargetIds(const char* value) { m_targetIdsHasBeenSet = true; m_targetIds.push_back(value); return *this; }
127 
128   private:
129 
130     Aws::String m_policyId;
131     bool m_policyIdHasBeenSet;
132 
133     Aws::Vector<Aws::String> m_targetIds;
134     bool m_targetIdsHasBeenSet;
135   };
136 
137 } // namespace Model
138 } // namespace Budgets
139 } // namespace Aws
140