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/discovery/ApplicationDiscoveryService_EXPORTS.h>
8 #include <aws/discovery/model/ConfigurationItemType.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.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 ApplicationDiscoveryService
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Tags for a configuration item. Tags are metadata that help you categorize IT
30    * assets.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/discovery-2015-11-01/ConfigurationTag">AWS
32    * API Reference</a></p>
33    */
34   class AWS_APPLICATIONDISCOVERYSERVICE_API ConfigurationTag
35   {
36   public:
37     ConfigurationTag();
38     ConfigurationTag(Aws::Utils::Json::JsonView jsonValue);
39     ConfigurationTag& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>A type of IT asset to tag.</p>
45      */
GetConfigurationType()46     inline const ConfigurationItemType& GetConfigurationType() const{ return m_configurationType; }
47 
48     /**
49      * <p>A type of IT asset to tag.</p>
50      */
ConfigurationTypeHasBeenSet()51     inline bool ConfigurationTypeHasBeenSet() const { return m_configurationTypeHasBeenSet; }
52 
53     /**
54      * <p>A type of IT asset to tag.</p>
55      */
SetConfigurationType(const ConfigurationItemType & value)56     inline void SetConfigurationType(const ConfigurationItemType& value) { m_configurationTypeHasBeenSet = true; m_configurationType = value; }
57 
58     /**
59      * <p>A type of IT asset to tag.</p>
60      */
SetConfigurationType(ConfigurationItemType && value)61     inline void SetConfigurationType(ConfigurationItemType&& value) { m_configurationTypeHasBeenSet = true; m_configurationType = std::move(value); }
62 
63     /**
64      * <p>A type of IT asset to tag.</p>
65      */
WithConfigurationType(const ConfigurationItemType & value)66     inline ConfigurationTag& WithConfigurationType(const ConfigurationItemType& value) { SetConfigurationType(value); return *this;}
67 
68     /**
69      * <p>A type of IT asset to tag.</p>
70      */
WithConfigurationType(ConfigurationItemType && value)71     inline ConfigurationTag& WithConfigurationType(ConfigurationItemType&& value) { SetConfigurationType(std::move(value)); return *this;}
72 
73 
74     /**
75      * <p>The configuration ID for the item to tag. You can specify a list of keys and
76      * values.</p>
77      */
GetConfigurationId()78     inline const Aws::String& GetConfigurationId() const{ return m_configurationId; }
79 
80     /**
81      * <p>The configuration ID for the item to tag. You can specify a list of keys and
82      * values.</p>
83      */
ConfigurationIdHasBeenSet()84     inline bool ConfigurationIdHasBeenSet() const { return m_configurationIdHasBeenSet; }
85 
86     /**
87      * <p>The configuration ID for the item to tag. You can specify a list of keys and
88      * values.</p>
89      */
SetConfigurationId(const Aws::String & value)90     inline void SetConfigurationId(const Aws::String& value) { m_configurationIdHasBeenSet = true; m_configurationId = value; }
91 
92     /**
93      * <p>The configuration ID for the item to tag. You can specify a list of keys and
94      * values.</p>
95      */
SetConfigurationId(Aws::String && value)96     inline void SetConfigurationId(Aws::String&& value) { m_configurationIdHasBeenSet = true; m_configurationId = std::move(value); }
97 
98     /**
99      * <p>The configuration ID for the item to tag. You can specify a list of keys and
100      * values.</p>
101      */
SetConfigurationId(const char * value)102     inline void SetConfigurationId(const char* value) { m_configurationIdHasBeenSet = true; m_configurationId.assign(value); }
103 
104     /**
105      * <p>The configuration ID for the item to tag. You can specify a list of keys and
106      * values.</p>
107      */
WithConfigurationId(const Aws::String & value)108     inline ConfigurationTag& WithConfigurationId(const Aws::String& value) { SetConfigurationId(value); return *this;}
109 
110     /**
111      * <p>The configuration ID for the item to tag. You can specify a list of keys and
112      * values.</p>
113      */
WithConfigurationId(Aws::String && value)114     inline ConfigurationTag& WithConfigurationId(Aws::String&& value) { SetConfigurationId(std::move(value)); return *this;}
115 
116     /**
117      * <p>The configuration ID for the item to tag. You can specify a list of keys and
118      * values.</p>
119      */
WithConfigurationId(const char * value)120     inline ConfigurationTag& WithConfigurationId(const char* value) { SetConfigurationId(value); return *this;}
121 
122 
123     /**
124      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
125      */
GetKey()126     inline const Aws::String& GetKey() const{ return m_key; }
127 
128     /**
129      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
130      */
KeyHasBeenSet()131     inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; }
132 
133     /**
134      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
135      */
SetKey(const Aws::String & value)136     inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; }
137 
138     /**
139      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
140      */
SetKey(Aws::String && value)141     inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); }
142 
143     /**
144      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
145      */
SetKey(const char * value)146     inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); }
147 
148     /**
149      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
150      */
WithKey(const Aws::String & value)151     inline ConfigurationTag& WithKey(const Aws::String& value) { SetKey(value); return *this;}
152 
153     /**
154      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
155      */
WithKey(Aws::String && value)156     inline ConfigurationTag& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;}
157 
158     /**
159      * <p>A type of tag on which to filter. For example, <i>serverType</i>.</p>
160      */
WithKey(const char * value)161     inline ConfigurationTag& WithKey(const char* value) { SetKey(value); return *this;}
162 
163 
164     /**
165      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
166      * = web server</i>.</p>
167      */
GetValue()168     inline const Aws::String& GetValue() const{ return m_value; }
169 
170     /**
171      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
172      * = web server</i>.</p>
173      */
ValueHasBeenSet()174     inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; }
175 
176     /**
177      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
178      * = web server</i>.</p>
179      */
SetValue(const Aws::String & value)180     inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; }
181 
182     /**
183      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
184      * = web server</i>.</p>
185      */
SetValue(Aws::String && value)186     inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); }
187 
188     /**
189      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
190      * = web server</i>.</p>
191      */
SetValue(const char * value)192     inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); }
193 
194     /**
195      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
196      * = web server</i>.</p>
197      */
WithValue(const Aws::String & value)198     inline ConfigurationTag& WithValue(const Aws::String& value) { SetValue(value); return *this;}
199 
200     /**
201      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
202      * = web server</i>.</p>
203      */
WithValue(Aws::String && value)204     inline ConfigurationTag& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;}
205 
206     /**
207      * <p>A value on which to filter. For example <i>key = serverType</i> and <i>value
208      * = web server</i>.</p>
209      */
WithValue(const char * value)210     inline ConfigurationTag& WithValue(const char* value) { SetValue(value); return *this;}
211 
212 
213     /**
214      * <p>The time the configuration tag was created in Coordinated Universal Time
215      * (UTC).</p>
216      */
GetTimeOfCreation()217     inline const Aws::Utils::DateTime& GetTimeOfCreation() const{ return m_timeOfCreation; }
218 
219     /**
220      * <p>The time the configuration tag was created in Coordinated Universal Time
221      * (UTC).</p>
222      */
TimeOfCreationHasBeenSet()223     inline bool TimeOfCreationHasBeenSet() const { return m_timeOfCreationHasBeenSet; }
224 
225     /**
226      * <p>The time the configuration tag was created in Coordinated Universal Time
227      * (UTC).</p>
228      */
SetTimeOfCreation(const Aws::Utils::DateTime & value)229     inline void SetTimeOfCreation(const Aws::Utils::DateTime& value) { m_timeOfCreationHasBeenSet = true; m_timeOfCreation = value; }
230 
231     /**
232      * <p>The time the configuration tag was created in Coordinated Universal Time
233      * (UTC).</p>
234      */
SetTimeOfCreation(Aws::Utils::DateTime && value)235     inline void SetTimeOfCreation(Aws::Utils::DateTime&& value) { m_timeOfCreationHasBeenSet = true; m_timeOfCreation = std::move(value); }
236 
237     /**
238      * <p>The time the configuration tag was created in Coordinated Universal Time
239      * (UTC).</p>
240      */
WithTimeOfCreation(const Aws::Utils::DateTime & value)241     inline ConfigurationTag& WithTimeOfCreation(const Aws::Utils::DateTime& value) { SetTimeOfCreation(value); return *this;}
242 
243     /**
244      * <p>The time the configuration tag was created in Coordinated Universal Time
245      * (UTC).</p>
246      */
WithTimeOfCreation(Aws::Utils::DateTime && value)247     inline ConfigurationTag& WithTimeOfCreation(Aws::Utils::DateTime&& value) { SetTimeOfCreation(std::move(value)); return *this;}
248 
249   private:
250 
251     ConfigurationItemType m_configurationType;
252     bool m_configurationTypeHasBeenSet;
253 
254     Aws::String m_configurationId;
255     bool m_configurationIdHasBeenSet;
256 
257     Aws::String m_key;
258     bool m_keyHasBeenSet;
259 
260     Aws::String m_value;
261     bool m_valueHasBeenSet;
262 
263     Aws::Utils::DateTime m_timeOfCreation;
264     bool m_timeOfCreationHasBeenSet;
265   };
266 
267 } // namespace Model
268 } // namespace ApplicationDiscoveryService
269 } // namespace Aws
270