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/resource-groups/ResourceGroups_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 ResourceGroups
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>A parameter for a group configuration item. For details about group service
29    * configuration syntax, see <a
30    * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service
31    * configurations for resource groups</a>.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GroupConfigurationParameter">AWS
33    * API Reference</a></p>
34    */
35   class AWS_RESOURCEGROUPS_API GroupConfigurationParameter
36   {
37   public:
38     GroupConfigurationParameter();
39     GroupConfigurationParameter(Aws::Utils::Json::JsonView jsonValue);
40     GroupConfigurationParameter& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The name of the group configuration parameter. For the list of parameters
46      * that you can use with each configuration item type, see <a
47      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
48      * resource types and parameters</a>.</p>
49      */
GetName()50     inline const Aws::String& GetName() const{ return m_name; }
51 
52     /**
53      * <p>The name of the group configuration parameter. For the list of parameters
54      * that you can use with each configuration item type, see <a
55      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
56      * resource types and parameters</a>.</p>
57      */
NameHasBeenSet()58     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
59 
60     /**
61      * <p>The name of the group configuration parameter. For the list of parameters
62      * that you can use with each configuration item type, see <a
63      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
64      * resource types and parameters</a>.</p>
65      */
SetName(const Aws::String & value)66     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
67 
68     /**
69      * <p>The name of the group configuration parameter. For the list of parameters
70      * that you can use with each configuration item type, see <a
71      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
72      * resource types and parameters</a>.</p>
73      */
SetName(Aws::String && value)74     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
75 
76     /**
77      * <p>The name of the group configuration parameter. For the list of parameters
78      * that you can use with each configuration item type, see <a
79      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
80      * resource types and parameters</a>.</p>
81      */
SetName(const char * value)82     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
83 
84     /**
85      * <p>The name of the group configuration parameter. For the list of parameters
86      * that you can use with each configuration item type, see <a
87      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
88      * resource types and parameters</a>.</p>
89      */
WithName(const Aws::String & value)90     inline GroupConfigurationParameter& WithName(const Aws::String& value) { SetName(value); return *this;}
91 
92     /**
93      * <p>The name of the group configuration parameter. For the list of parameters
94      * that you can use with each configuration item type, see <a
95      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
96      * resource types and parameters</a>.</p>
97      */
WithName(Aws::String && value)98     inline GroupConfigurationParameter& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
99 
100     /**
101      * <p>The name of the group configuration parameter. For the list of parameters
102      * that you can use with each configuration item type, see <a
103      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
104      * resource types and parameters</a>.</p>
105      */
WithName(const char * value)106     inline GroupConfigurationParameter& WithName(const char* value) { SetName(value); return *this;}
107 
108 
109     /**
110      * <p>The value or values to be used for the specified parameter. For the list of
111      * values you can use with each parameter, see <a
112      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
113      * resource types and parameters</a>.</p>
114      */
GetValues()115     inline const Aws::Vector<Aws::String>& GetValues() const{ return m_values; }
116 
117     /**
118      * <p>The value or values to be used for the specified parameter. For the list of
119      * values you can use with each parameter, see <a
120      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
121      * resource types and parameters</a>.</p>
122      */
ValuesHasBeenSet()123     inline bool ValuesHasBeenSet() const { return m_valuesHasBeenSet; }
124 
125     /**
126      * <p>The value or values to be used for the specified parameter. For the list of
127      * values you can use with each parameter, see <a
128      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
129      * resource types and parameters</a>.</p>
130      */
SetValues(const Aws::Vector<Aws::String> & value)131     inline void SetValues(const Aws::Vector<Aws::String>& value) { m_valuesHasBeenSet = true; m_values = value; }
132 
133     /**
134      * <p>The value or values to be used for the specified parameter. For the list of
135      * values you can use with each parameter, see <a
136      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
137      * resource types and parameters</a>.</p>
138      */
SetValues(Aws::Vector<Aws::String> && value)139     inline void SetValues(Aws::Vector<Aws::String>&& value) { m_valuesHasBeenSet = true; m_values = std::move(value); }
140 
141     /**
142      * <p>The value or values to be used for the specified parameter. For the list of
143      * values you can use with each parameter, see <a
144      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
145      * resource types and parameters</a>.</p>
146      */
WithValues(const Aws::Vector<Aws::String> & value)147     inline GroupConfigurationParameter& WithValues(const Aws::Vector<Aws::String>& value) { SetValues(value); return *this;}
148 
149     /**
150      * <p>The value or values to be used for the specified parameter. For the list of
151      * values you can use with each parameter, see <a
152      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
153      * resource types and parameters</a>.</p>
154      */
WithValues(Aws::Vector<Aws::String> && value)155     inline GroupConfigurationParameter& WithValues(Aws::Vector<Aws::String>&& value) { SetValues(std::move(value)); return *this;}
156 
157     /**
158      * <p>The value or values to be used for the specified parameter. For the list of
159      * values you can use with each parameter, see <a
160      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
161      * resource types and parameters</a>.</p>
162      */
AddValues(const Aws::String & value)163     inline GroupConfigurationParameter& AddValues(const Aws::String& value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; }
164 
165     /**
166      * <p>The value or values to be used for the specified parameter. For the list of
167      * values you can use with each parameter, see <a
168      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
169      * resource types and parameters</a>.</p>
170      */
AddValues(Aws::String && value)171     inline GroupConfigurationParameter& AddValues(Aws::String&& value) { m_valuesHasBeenSet = true; m_values.push_back(std::move(value)); return *this; }
172 
173     /**
174      * <p>The value or values to be used for the specified parameter. For the list of
175      * values you can use with each parameter, see <a
176      * href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types">Supported
177      * resource types and parameters</a>.</p>
178      */
AddValues(const char * value)179     inline GroupConfigurationParameter& AddValues(const char* value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; }
180 
181   private:
182 
183     Aws::String m_name;
184     bool m_nameHasBeenSet;
185 
186     Aws::Vector<Aws::String> m_values;
187     bool m_valuesHasBeenSet;
188   };
189 
190 } // namespace Model
191 } // namespace ResourceGroups
192 } // namespace Aws
193