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/mobile/Mobile_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/mobile/model/ProjectState.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/mobile/model/Resource.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace Mobile
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p> Detailed information about an AWS Mobile Hub project. </p><p><h3>See
32    * Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/mobile-2017-07-01/ProjectDetails">AWS
34    * API Reference</a></p>
35    */
36   class AWS_MOBILE_API ProjectDetails
37   {
38   public:
39     ProjectDetails();
40     ProjectDetails(Aws::Utils::Json::JsonView jsonValue);
41     ProjectDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45 
GetName()46     inline const Aws::String& GetName() const{ return m_name; }
47 
48 
NameHasBeenSet()49     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
50 
51 
SetName(const Aws::String & value)52     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
53 
54 
SetName(Aws::String && value)55     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
56 
57 
SetName(const char * value)58     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
59 
60 
WithName(const Aws::String & value)61     inline ProjectDetails& WithName(const Aws::String& value) { SetName(value); return *this;}
62 
63 
WithName(Aws::String && value)64     inline ProjectDetails& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
65 
66 
WithName(const char * value)67     inline ProjectDetails& WithName(const char* value) { SetName(value); return *this;}
68 
69 
70 
GetProjectId()71     inline const Aws::String& GetProjectId() const{ return m_projectId; }
72 
73 
ProjectIdHasBeenSet()74     inline bool ProjectIdHasBeenSet() const { return m_projectIdHasBeenSet; }
75 
76 
SetProjectId(const Aws::String & value)77     inline void SetProjectId(const Aws::String& value) { m_projectIdHasBeenSet = true; m_projectId = value; }
78 
79 
SetProjectId(Aws::String && value)80     inline void SetProjectId(Aws::String&& value) { m_projectIdHasBeenSet = true; m_projectId = std::move(value); }
81 
82 
SetProjectId(const char * value)83     inline void SetProjectId(const char* value) { m_projectIdHasBeenSet = true; m_projectId.assign(value); }
84 
85 
WithProjectId(const Aws::String & value)86     inline ProjectDetails& WithProjectId(const Aws::String& value) { SetProjectId(value); return *this;}
87 
88 
WithProjectId(Aws::String && value)89     inline ProjectDetails& WithProjectId(Aws::String&& value) { SetProjectId(std::move(value)); return *this;}
90 
91 
WithProjectId(const char * value)92     inline ProjectDetails& WithProjectId(const char* value) { SetProjectId(value); return *this;}
93 
94 
95 
GetRegion()96     inline const Aws::String& GetRegion() const{ return m_region; }
97 
98 
RegionHasBeenSet()99     inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; }
100 
101 
SetRegion(const Aws::String & value)102     inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; }
103 
104 
SetRegion(Aws::String && value)105     inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); }
106 
107 
SetRegion(const char * value)108     inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); }
109 
110 
WithRegion(const Aws::String & value)111     inline ProjectDetails& WithRegion(const Aws::String& value) { SetRegion(value); return *this;}
112 
113 
WithRegion(Aws::String && value)114     inline ProjectDetails& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;}
115 
116 
WithRegion(const char * value)117     inline ProjectDetails& WithRegion(const char* value) { SetRegion(value); return *this;}
118 
119 
120 
GetState()121     inline const ProjectState& GetState() const{ return m_state; }
122 
123 
StateHasBeenSet()124     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
125 
126 
SetState(const ProjectState & value)127     inline void SetState(const ProjectState& value) { m_stateHasBeenSet = true; m_state = value; }
128 
129 
SetState(ProjectState && value)130     inline void SetState(ProjectState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
131 
132 
WithState(const ProjectState & value)133     inline ProjectDetails& WithState(const ProjectState& value) { SetState(value); return *this;}
134 
135 
WithState(ProjectState && value)136     inline ProjectDetails& WithState(ProjectState&& value) { SetState(std::move(value)); return *this;}
137 
138 
139     /**
140      * <p> Date the project was created. </p>
141      */
GetCreatedDate()142     inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; }
143 
144     /**
145      * <p> Date the project was created. </p>
146      */
CreatedDateHasBeenSet()147     inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
148 
149     /**
150      * <p> Date the project was created. </p>
151      */
SetCreatedDate(const Aws::Utils::DateTime & value)152     inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
153 
154     /**
155      * <p> Date the project was created. </p>
156      */
SetCreatedDate(Aws::Utils::DateTime && value)157     inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
158 
159     /**
160      * <p> Date the project was created. </p>
161      */
WithCreatedDate(const Aws::Utils::DateTime & value)162     inline ProjectDetails& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;}
163 
164     /**
165      * <p> Date the project was created. </p>
166      */
WithCreatedDate(Aws::Utils::DateTime && value)167     inline ProjectDetails& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;}
168 
169 
170     /**
171      * <p> Date of the last modification of the project. </p>
172      */
GetLastUpdatedDate()173     inline const Aws::Utils::DateTime& GetLastUpdatedDate() const{ return m_lastUpdatedDate; }
174 
175     /**
176      * <p> Date of the last modification of the project. </p>
177      */
LastUpdatedDateHasBeenSet()178     inline bool LastUpdatedDateHasBeenSet() const { return m_lastUpdatedDateHasBeenSet; }
179 
180     /**
181      * <p> Date of the last modification of the project. </p>
182      */
SetLastUpdatedDate(const Aws::Utils::DateTime & value)183     inline void SetLastUpdatedDate(const Aws::Utils::DateTime& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = value; }
184 
185     /**
186      * <p> Date of the last modification of the project. </p>
187      */
SetLastUpdatedDate(Aws::Utils::DateTime && value)188     inline void SetLastUpdatedDate(Aws::Utils::DateTime&& value) { m_lastUpdatedDateHasBeenSet = true; m_lastUpdatedDate = std::move(value); }
189 
190     /**
191      * <p> Date of the last modification of the project. </p>
192      */
WithLastUpdatedDate(const Aws::Utils::DateTime & value)193     inline ProjectDetails& WithLastUpdatedDate(const Aws::Utils::DateTime& value) { SetLastUpdatedDate(value); return *this;}
194 
195     /**
196      * <p> Date of the last modification of the project. </p>
197      */
WithLastUpdatedDate(Aws::Utils::DateTime && value)198     inline ProjectDetails& WithLastUpdatedDate(Aws::Utils::DateTime&& value) { SetLastUpdatedDate(std::move(value)); return *this;}
199 
200 
201     /**
202      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
203      */
GetConsoleUrl()204     inline const Aws::String& GetConsoleUrl() const{ return m_consoleUrl; }
205 
206     /**
207      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
208      */
ConsoleUrlHasBeenSet()209     inline bool ConsoleUrlHasBeenSet() const { return m_consoleUrlHasBeenSet; }
210 
211     /**
212      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
213      */
SetConsoleUrl(const Aws::String & value)214     inline void SetConsoleUrl(const Aws::String& value) { m_consoleUrlHasBeenSet = true; m_consoleUrl = value; }
215 
216     /**
217      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
218      */
SetConsoleUrl(Aws::String && value)219     inline void SetConsoleUrl(Aws::String&& value) { m_consoleUrlHasBeenSet = true; m_consoleUrl = std::move(value); }
220 
221     /**
222      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
223      */
SetConsoleUrl(const char * value)224     inline void SetConsoleUrl(const char* value) { m_consoleUrlHasBeenSet = true; m_consoleUrl.assign(value); }
225 
226     /**
227      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
228      */
WithConsoleUrl(const Aws::String & value)229     inline ProjectDetails& WithConsoleUrl(const Aws::String& value) { SetConsoleUrl(value); return *this;}
230 
231     /**
232      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
233      */
WithConsoleUrl(Aws::String && value)234     inline ProjectDetails& WithConsoleUrl(Aws::String&& value) { SetConsoleUrl(std::move(value)); return *this;}
235 
236     /**
237      * <p> Website URL for this project in the AWS Mobile Hub console. </p>
238      */
WithConsoleUrl(const char * value)239     inline ProjectDetails& WithConsoleUrl(const char* value) { SetConsoleUrl(value); return *this;}
240 
241 
242 
GetResources()243     inline const Aws::Vector<Resource>& GetResources() const{ return m_resources; }
244 
245 
ResourcesHasBeenSet()246     inline bool ResourcesHasBeenSet() const { return m_resourcesHasBeenSet; }
247 
248 
SetResources(const Aws::Vector<Resource> & value)249     inline void SetResources(const Aws::Vector<Resource>& value) { m_resourcesHasBeenSet = true; m_resources = value; }
250 
251 
SetResources(Aws::Vector<Resource> && value)252     inline void SetResources(Aws::Vector<Resource>&& value) { m_resourcesHasBeenSet = true; m_resources = std::move(value); }
253 
254 
WithResources(const Aws::Vector<Resource> & value)255     inline ProjectDetails& WithResources(const Aws::Vector<Resource>& value) { SetResources(value); return *this;}
256 
257 
WithResources(Aws::Vector<Resource> && value)258     inline ProjectDetails& WithResources(Aws::Vector<Resource>&& value) { SetResources(std::move(value)); return *this;}
259 
260 
AddResources(const Resource & value)261     inline ProjectDetails& AddResources(const Resource& value) { m_resourcesHasBeenSet = true; m_resources.push_back(value); return *this; }
262 
263 
AddResources(Resource && value)264     inline ProjectDetails& AddResources(Resource&& value) { m_resourcesHasBeenSet = true; m_resources.push_back(std::move(value)); return *this; }
265 
266   private:
267 
268     Aws::String m_name;
269     bool m_nameHasBeenSet;
270 
271     Aws::String m_projectId;
272     bool m_projectIdHasBeenSet;
273 
274     Aws::String m_region;
275     bool m_regionHasBeenSet;
276 
277     ProjectState m_state;
278     bool m_stateHasBeenSet;
279 
280     Aws::Utils::DateTime m_createdDate;
281     bool m_createdDateHasBeenSet;
282 
283     Aws::Utils::DateTime m_lastUpdatedDate;
284     bool m_lastUpdatedDateHasBeenSet;
285 
286     Aws::String m_consoleUrl;
287     bool m_consoleUrlHasBeenSet;
288 
289     Aws::Vector<Resource> m_resources;
290     bool m_resourcesHasBeenSet;
291   };
292 
293 } // namespace Model
294 } // namespace Mobile
295 } // namespace Aws
296