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/lex-models/LexModelBuildingService_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/DateTime.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 LexModelBuildingService
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Provides information about a slot type..</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/SlotTypeMetadata">AWS
30    * API Reference</a></p>
31    */
32   class AWS_LEXMODELBUILDINGSERVICE_API SlotTypeMetadata
33   {
34   public:
35     SlotTypeMetadata();
36     SlotTypeMetadata(Aws::Utils::Json::JsonView jsonValue);
37     SlotTypeMetadata& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The name of the slot type.</p>
43      */
GetName()44     inline const Aws::String& GetName() const{ return m_name; }
45 
46     /**
47      * <p>The name of the slot type.</p>
48      */
NameHasBeenSet()49     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
50 
51     /**
52      * <p>The name of the slot type.</p>
53      */
SetName(const Aws::String & value)54     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
55 
56     /**
57      * <p>The name of the slot type.</p>
58      */
SetName(Aws::String && value)59     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
60 
61     /**
62      * <p>The name of the slot type.</p>
63      */
SetName(const char * value)64     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
65 
66     /**
67      * <p>The name of the slot type.</p>
68      */
WithName(const Aws::String & value)69     inline SlotTypeMetadata& WithName(const Aws::String& value) { SetName(value); return *this;}
70 
71     /**
72      * <p>The name of the slot type.</p>
73      */
WithName(Aws::String && value)74     inline SlotTypeMetadata& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
75 
76     /**
77      * <p>The name of the slot type.</p>
78      */
WithName(const char * value)79     inline SlotTypeMetadata& WithName(const char* value) { SetName(value); return *this;}
80 
81 
82     /**
83      * <p>A description of the slot type.</p>
84      */
GetDescription()85     inline const Aws::String& GetDescription() const{ return m_description; }
86 
87     /**
88      * <p>A description of the slot type.</p>
89      */
DescriptionHasBeenSet()90     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
91 
92     /**
93      * <p>A description of the slot type.</p>
94      */
SetDescription(const Aws::String & value)95     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
96 
97     /**
98      * <p>A description of the slot type.</p>
99      */
SetDescription(Aws::String && value)100     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
101 
102     /**
103      * <p>A description of the slot type.</p>
104      */
SetDescription(const char * value)105     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
106 
107     /**
108      * <p>A description of the slot type.</p>
109      */
WithDescription(const Aws::String & value)110     inline SlotTypeMetadata& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
111 
112     /**
113      * <p>A description of the slot type.</p>
114      */
WithDescription(Aws::String && value)115     inline SlotTypeMetadata& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
116 
117     /**
118      * <p>A description of the slot type.</p>
119      */
WithDescription(const char * value)120     inline SlotTypeMetadata& WithDescription(const char* value) { SetDescription(value); return *this;}
121 
122 
123     /**
124      * <p>The date that the slot type was updated. When you create a resource, the
125      * creation date and last updated date are the same. </p>
126      */
GetLastUpdatedDate()127     inline const Aws::Utils::DateTime& GetLastUpdatedDate() const{ return m_lastUpdatedDate; }
128 
129     /**
130      * <p>The date that the slot type was updated. When you create a resource, the
131      * creation date and last updated date are the same. </p>
132      */
LastUpdatedDateHasBeenSet()133     inline bool LastUpdatedDateHasBeenSet() const { return m_lastUpdatedDateHasBeenSet; }
134 
135     /**
136      * <p>The date that the slot type was updated. When you create a resource, the
137      * creation date and last updated date are the same. </p>
138      */
SetLastUpdatedDate(const Aws::Utils::DateTime & value)139     inline void SetLastUpdatedDate(const Aws::Utils::DateTime& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = value; }
140 
141     /**
142      * <p>The date that the slot type was updated. When you create a resource, the
143      * creation date and last updated date are the same. </p>
144      */
SetLastUpdatedDate(Aws::Utils::DateTime && value)145     inline void SetLastUpdatedDate(Aws::Utils::DateTime&& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = std::move(value); }
146 
147     /**
148      * <p>The date that the slot type was updated. When you create a resource, the
149      * creation date and last updated date are the same. </p>
150      */
WithLastUpdatedDate(const Aws::Utils::DateTime & value)151     inline SlotTypeMetadata& WithLastUpdatedDate(const Aws::Utils::DateTime& value) { SetLastUpdatedDate(value); return *this;}
152 
153     /**
154      * <p>The date that the slot type was updated. When you create a resource, the
155      * creation date and last updated date are the same. </p>
156      */
WithLastUpdatedDate(Aws::Utils::DateTime && value)157     inline SlotTypeMetadata& WithLastUpdatedDate(Aws::Utils::DateTime&& value) { SetLastUpdatedDate(std::move(value)); return *this;}
158 
159 
160     /**
161      * <p>The date that the slot type was created.</p>
162      */
GetCreatedDate()163     inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; }
164 
165     /**
166      * <p>The date that the slot type was created.</p>
167      */
CreatedDateHasBeenSet()168     inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
169 
170     /**
171      * <p>The date that the slot type was created.</p>
172      */
SetCreatedDate(const Aws::Utils::DateTime & value)173     inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
174 
175     /**
176      * <p>The date that the slot type was created.</p>
177      */
SetCreatedDate(Aws::Utils::DateTime && value)178     inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
179 
180     /**
181      * <p>The date that the slot type was created.</p>
182      */
WithCreatedDate(const Aws::Utils::DateTime & value)183     inline SlotTypeMetadata& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;}
184 
185     /**
186      * <p>The date that the slot type was created.</p>
187      */
WithCreatedDate(Aws::Utils::DateTime && value)188     inline SlotTypeMetadata& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;}
189 
190 
191     /**
192      * <p>The version of the slot type.</p>
193      */
GetVersion()194     inline const Aws::String& GetVersion() const{ return m_version; }
195 
196     /**
197      * <p>The version of the slot type.</p>
198      */
VersionHasBeenSet()199     inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; }
200 
201     /**
202      * <p>The version of the slot type.</p>
203      */
SetVersion(const Aws::String & value)204     inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; }
205 
206     /**
207      * <p>The version of the slot type.</p>
208      */
SetVersion(Aws::String && value)209     inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); }
210 
211     /**
212      * <p>The version of the slot type.</p>
213      */
SetVersion(const char * value)214     inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); }
215 
216     /**
217      * <p>The version of the slot type.</p>
218      */
WithVersion(const Aws::String & value)219     inline SlotTypeMetadata& WithVersion(const Aws::String& value) { SetVersion(value); return *this;}
220 
221     /**
222      * <p>The version of the slot type.</p>
223      */
WithVersion(Aws::String && value)224     inline SlotTypeMetadata& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;}
225 
226     /**
227      * <p>The version of the slot type.</p>
228      */
WithVersion(const char * value)229     inline SlotTypeMetadata& WithVersion(const char* value) { SetVersion(value); return *this;}
230 
231   private:
232 
233     Aws::String m_name;
234     bool m_nameHasBeenSet;
235 
236     Aws::String m_description;
237     bool m_descriptionHasBeenSet;
238 
239     Aws::Utils::DateTime m_lastUpdatedDate;
240     bool m_lastUpdatedDateHasBeenSet;
241 
242     Aws::Utils::DateTime m_createdDate;
243     bool m_createdDateHasBeenSet;
244 
245     Aws::String m_version;
246     bool m_versionHasBeenSet;
247   };
248 
249 } // namespace Model
250 } // namespace LexModelBuildingService
251 } // namespace Aws
252