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/quicksight/QuickSight_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/quicksight/model/FolderType.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/core/utils/DateTime.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace QuickSight
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>A folder.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/Folder">AWS
32    * API Reference</a></p>
33    */
34   class AWS_QUICKSIGHT_API Folder
35   {
36   public:
37     Folder();
38     Folder(Aws::Utils::Json::JsonView jsonValue);
39     Folder& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The folder ID.</p>
45      */
GetFolderId()46     inline const Aws::String& GetFolderId() const{ return m_folderId; }
47 
48     /**
49      * <p>The folder ID.</p>
50      */
FolderIdHasBeenSet()51     inline bool FolderIdHasBeenSet() const { return m_folderIdHasBeenSet; }
52 
53     /**
54      * <p>The folder ID.</p>
55      */
SetFolderId(const Aws::String & value)56     inline void SetFolderId(const Aws::String& value) { m_folderIdHasBeenSet = true; m_folderId = value; }
57 
58     /**
59      * <p>The folder ID.</p>
60      */
SetFolderId(Aws::String && value)61     inline void SetFolderId(Aws::String&& value) { m_folderIdHasBeenSet = true; m_folderId = std::move(value); }
62 
63     /**
64      * <p>The folder ID.</p>
65      */
SetFolderId(const char * value)66     inline void SetFolderId(const char* value) { m_folderIdHasBeenSet = true; m_folderId.assign(value); }
67 
68     /**
69      * <p>The folder ID.</p>
70      */
WithFolderId(const Aws::String & value)71     inline Folder& WithFolderId(const Aws::String& value) { SetFolderId(value); return *this;}
72 
73     /**
74      * <p>The folder ID.</p>
75      */
WithFolderId(Aws::String && value)76     inline Folder& WithFolderId(Aws::String&& value) { SetFolderId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The folder ID.</p>
80      */
WithFolderId(const char * value)81     inline Folder& WithFolderId(const char* value) { SetFolderId(value); return *this;}
82 
83 
84     /**
85      * <p>The folder Amazon Resource Name (ARN).</p>
86      */
GetArn()87     inline const Aws::String& GetArn() const{ return m_arn; }
88 
89     /**
90      * <p>The folder Amazon Resource Name (ARN).</p>
91      */
ArnHasBeenSet()92     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
93 
94     /**
95      * <p>The folder Amazon Resource Name (ARN).</p>
96      */
SetArn(const Aws::String & value)97     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
98 
99     /**
100      * <p>The folder Amazon Resource Name (ARN).</p>
101      */
SetArn(Aws::String && value)102     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
103 
104     /**
105      * <p>The folder Amazon Resource Name (ARN).</p>
106      */
SetArn(const char * value)107     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
108 
109     /**
110      * <p>The folder Amazon Resource Name (ARN).</p>
111      */
WithArn(const Aws::String & value)112     inline Folder& WithArn(const Aws::String& value) { SetArn(value); return *this;}
113 
114     /**
115      * <p>The folder Amazon Resource Name (ARN).</p>
116      */
WithArn(Aws::String && value)117     inline Folder& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
118 
119     /**
120      * <p>The folder Amazon Resource Name (ARN).</p>
121      */
WithArn(const char * value)122     inline Folder& WithArn(const char* value) { SetArn(value); return *this;}
123 
124 
125     /**
126      * <p>A display name for the folder.</p>
127      */
GetName()128     inline const Aws::String& GetName() const{ return m_name; }
129 
130     /**
131      * <p>A display name for the folder.</p>
132      */
NameHasBeenSet()133     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
134 
135     /**
136      * <p>A display name for the folder.</p>
137      */
SetName(const Aws::String & value)138     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
139 
140     /**
141      * <p>A display name for the folder.</p>
142      */
SetName(Aws::String && value)143     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
144 
145     /**
146      * <p>A display name for the folder.</p>
147      */
SetName(const char * value)148     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
149 
150     /**
151      * <p>A display name for the folder.</p>
152      */
WithName(const Aws::String & value)153     inline Folder& WithName(const Aws::String& value) { SetName(value); return *this;}
154 
155     /**
156      * <p>A display name for the folder.</p>
157      */
WithName(Aws::String && value)158     inline Folder& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
159 
160     /**
161      * <p>A display name for the folder.</p>
162      */
WithName(const char * value)163     inline Folder& WithName(const char* value) { SetName(value); return *this;}
164 
165 
166     /**
167      * <p>The type of the folder.</p>
168      */
GetFolderType()169     inline const FolderType& GetFolderType() const{ return m_folderType; }
170 
171     /**
172      * <p>The type of the folder.</p>
173      */
FolderTypeHasBeenSet()174     inline bool FolderTypeHasBeenSet() const { return m_folderTypeHasBeenSet; }
175 
176     /**
177      * <p>The type of the folder.</p>
178      */
SetFolderType(const FolderType & value)179     inline void SetFolderType(const FolderType& value) { m_folderTypeHasBeenSet = true; m_folderType = value; }
180 
181     /**
182      * <p>The type of the folder.</p>
183      */
SetFolderType(FolderType && value)184     inline void SetFolderType(FolderType&& value) { m_folderTypeHasBeenSet = true; m_folderType = std::move(value); }
185 
186     /**
187      * <p>The type of the folder.</p>
188      */
WithFolderType(const FolderType & value)189     inline Folder& WithFolderType(const FolderType& value) { SetFolderType(value); return *this;}
190 
191     /**
192      * <p>The type of the folder.</p>
193      */
WithFolderType(FolderType && value)194     inline Folder& WithFolderType(FolderType&& value) { SetFolderType(std::move(value)); return *this;}
195 
196 
197     /**
198      * <p>An array of ancestor folder ARN strings.</p>
199      */
GetFolderPath()200     inline const Aws::Vector<Aws::String>& GetFolderPath() const{ return m_folderPath; }
201 
202     /**
203      * <p>An array of ancestor folder ARN strings.</p>
204      */
FolderPathHasBeenSet()205     inline bool FolderPathHasBeenSet() const { return m_folderPathHasBeenSet; }
206 
207     /**
208      * <p>An array of ancestor folder ARN strings.</p>
209      */
SetFolderPath(const Aws::Vector<Aws::String> & value)210     inline void SetFolderPath(const Aws::Vector<Aws::String>& value) { m_folderPathHasBeenSet = true; m_folderPath = value; }
211 
212     /**
213      * <p>An array of ancestor folder ARN strings.</p>
214      */
SetFolderPath(Aws::Vector<Aws::String> && value)215     inline void SetFolderPath(Aws::Vector<Aws::String>&& value) { m_folderPathHasBeenSet = true; m_folderPath = std::move(value); }
216 
217     /**
218      * <p>An array of ancestor folder ARN strings.</p>
219      */
WithFolderPath(const Aws::Vector<Aws::String> & value)220     inline Folder& WithFolderPath(const Aws::Vector<Aws::String>& value) { SetFolderPath(value); return *this;}
221 
222     /**
223      * <p>An array of ancestor folder ARN strings.</p>
224      */
WithFolderPath(Aws::Vector<Aws::String> && value)225     inline Folder& WithFolderPath(Aws::Vector<Aws::String>&& value) { SetFolderPath(std::move(value)); return *this;}
226 
227     /**
228      * <p>An array of ancestor folder ARN strings.</p>
229      */
AddFolderPath(const Aws::String & value)230     inline Folder& AddFolderPath(const Aws::String& value) { m_folderPathHasBeenSet = true; m_folderPath.push_back(value); return *this; }
231 
232     /**
233      * <p>An array of ancestor folder ARN strings.</p>
234      */
AddFolderPath(Aws::String && value)235     inline Folder& AddFolderPath(Aws::String&& value) { m_folderPathHasBeenSet = true; m_folderPath.push_back(std::move(value)); return *this; }
236 
237     /**
238      * <p>An array of ancestor folder ARN strings.</p>
239      */
AddFolderPath(const char * value)240     inline Folder& AddFolderPath(const char* value) { m_folderPathHasBeenSet = true; m_folderPath.push_back(value); return *this; }
241 
242 
243     /**
244      * <p>The time that the folder was created.</p>
245      */
GetCreatedTime()246     inline const Aws::Utils::DateTime& GetCreatedTime() const{ return m_createdTime; }
247 
248     /**
249      * <p>The time that the folder was created.</p>
250      */
CreatedTimeHasBeenSet()251     inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; }
252 
253     /**
254      * <p>The time that the folder was created.</p>
255      */
SetCreatedTime(const Aws::Utils::DateTime & value)256     inline void SetCreatedTime(const Aws::Utils::DateTime& value) { m_createdTimeHasBeenSet = true; m_createdTime = value; }
257 
258     /**
259      * <p>The time that the folder was created.</p>
260      */
SetCreatedTime(Aws::Utils::DateTime && value)261     inline void SetCreatedTime(Aws::Utils::DateTime&& value) { m_createdTimeHasBeenSet = true; m_createdTime = std::move(value); }
262 
263     /**
264      * <p>The time that the folder was created.</p>
265      */
WithCreatedTime(const Aws::Utils::DateTime & value)266     inline Folder& WithCreatedTime(const Aws::Utils::DateTime& value) { SetCreatedTime(value); return *this;}
267 
268     /**
269      * <p>The time that the folder was created.</p>
270      */
WithCreatedTime(Aws::Utils::DateTime && value)271     inline Folder& WithCreatedTime(Aws::Utils::DateTime&& value) { SetCreatedTime(std::move(value)); return *this;}
272 
273 
274     /**
275      * <p>The time that the folder was last updated.</p>
276      */
GetLastUpdatedTime()277     inline const Aws::Utils::DateTime& GetLastUpdatedTime() const{ return m_lastUpdatedTime; }
278 
279     /**
280      * <p>The time that the folder was last updated.</p>
281      */
LastUpdatedTimeHasBeenSet()282     inline bool LastUpdatedTimeHasBeenSet() const { return m_lastUpdatedTimeHasBeenSet; }
283 
284     /**
285      * <p>The time that the folder was last updated.</p>
286      */
SetLastUpdatedTime(const Aws::Utils::DateTime & value)287     inline void SetLastUpdatedTime(const Aws::Utils::DateTime& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = value; }
288 
289     /**
290      * <p>The time that the folder was last updated.</p>
291      */
SetLastUpdatedTime(Aws::Utils::DateTime && value)292     inline void SetLastUpdatedTime(Aws::Utils::DateTime&& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = std::move(value); }
293 
294     /**
295      * <p>The time that the folder was last updated.</p>
296      */
WithLastUpdatedTime(const Aws::Utils::DateTime & value)297     inline Folder& WithLastUpdatedTime(const Aws::Utils::DateTime& value) { SetLastUpdatedTime(value); return *this;}
298 
299     /**
300      * <p>The time that the folder was last updated.</p>
301      */
WithLastUpdatedTime(Aws::Utils::DateTime && value)302     inline Folder& WithLastUpdatedTime(Aws::Utils::DateTime&& value) { SetLastUpdatedTime(std::move(value)); return *this;}
303 
304   private:
305 
306     Aws::String m_folderId;
307     bool m_folderIdHasBeenSet;
308 
309     Aws::String m_arn;
310     bool m_arnHasBeenSet;
311 
312     Aws::String m_name;
313     bool m_nameHasBeenSet;
314 
315     FolderType m_folderType;
316     bool m_folderTypeHasBeenSet;
317 
318     Aws::Vector<Aws::String> m_folderPath;
319     bool m_folderPathHasBeenSet;
320 
321     Aws::Utils::DateTime m_createdTime;
322     bool m_createdTimeHasBeenSet;
323 
324     Aws::Utils::DateTime m_lastUpdatedTime;
325     bool m_lastUpdatedTimeHasBeenSet;
326   };
327 
328 } // namespace Model
329 } // namespace QuickSight
330 } // namespace Aws
331