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/appmesh/AppMesh_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 AppMesh
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>An object that represents metadata for a resource.</p><p><h3>See Also:</h3>
29    * <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/appmesh-2019-01-25/ResourceMetadata">AWS
31    * API Reference</a></p>
32    */
33   class AWS_APPMESH_API ResourceMetadata
34   {
35   public:
36     ResourceMetadata();
37     ResourceMetadata(Aws::Utils::Json::JsonView jsonValue);
38     ResourceMetadata& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
44      */
GetArn()45     inline const Aws::String& GetArn() const{ return m_arn; }
46 
47     /**
48      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
49      */
ArnHasBeenSet()50     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
51 
52     /**
53      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
54      */
SetArn(const Aws::String & value)55     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
56 
57     /**
58      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
59      */
SetArn(Aws::String && value)60     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
61 
62     /**
63      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
64      */
SetArn(const char * value)65     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
66 
67     /**
68      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
69      */
WithArn(const Aws::String & value)70     inline ResourceMetadata& WithArn(const Aws::String& value) { SetArn(value); return *this;}
71 
72     /**
73      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
74      */
WithArn(Aws::String && value)75     inline ResourceMetadata& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
76 
77     /**
78      * <p>The full Amazon Resource Name (ARN) for the resource.</p>
79      */
WithArn(const char * value)80     inline ResourceMetadata& WithArn(const char* value) { SetArn(value); return *this;}
81 
82 
83     /**
84      * <p>The Unix epoch timestamp in seconds for when the resource was created.</p>
85      */
GetCreatedAt()86     inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; }
87 
88     /**
89      * <p>The Unix epoch timestamp in seconds for when the resource was created.</p>
90      */
CreatedAtHasBeenSet()91     inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; }
92 
93     /**
94      * <p>The Unix epoch timestamp in seconds for when the resource was created.</p>
95      */
SetCreatedAt(const Aws::Utils::DateTime & value)96     inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; }
97 
98     /**
99      * <p>The Unix epoch timestamp in seconds for when the resource was created.</p>
100      */
SetCreatedAt(Aws::Utils::DateTime && value)101     inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); }
102 
103     /**
104      * <p>The Unix epoch timestamp in seconds for when the resource was created.</p>
105      */
WithCreatedAt(const Aws::Utils::DateTime & value)106     inline ResourceMetadata& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;}
107 
108     /**
109      * <p>The Unix epoch timestamp in seconds for when the resource was created.</p>
110      */
WithCreatedAt(Aws::Utils::DateTime && value)111     inline ResourceMetadata& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;}
112 
113 
114     /**
115      * <p>The Unix epoch timestamp in seconds for when the resource was last
116      * updated.</p>
117      */
GetLastUpdatedAt()118     inline const Aws::Utils::DateTime& GetLastUpdatedAt() const{ return m_lastUpdatedAt; }
119 
120     /**
121      * <p>The Unix epoch timestamp in seconds for when the resource was last
122      * updated.</p>
123      */
LastUpdatedAtHasBeenSet()124     inline bool LastUpdatedAtHasBeenSet() const { return m_lastUpdatedAtHasBeenSet; }
125 
126     /**
127      * <p>The Unix epoch timestamp in seconds for when the resource was last
128      * updated.</p>
129      */
SetLastUpdatedAt(const Aws::Utils::DateTime & value)130     inline void SetLastUpdatedAt(const Aws::Utils::DateTime& value) { m_lastUpdatedAtHasBeenSet = true; m_lastUpdatedAt = value; }
131 
132     /**
133      * <p>The Unix epoch timestamp in seconds for when the resource was last
134      * updated.</p>
135      */
SetLastUpdatedAt(Aws::Utils::DateTime && value)136     inline void SetLastUpdatedAt(Aws::Utils::DateTime&& value) { m_lastUpdatedAtHasBeenSet = true; m_lastUpdatedAt = std::move(value); }
137 
138     /**
139      * <p>The Unix epoch timestamp in seconds for when the resource was last
140      * updated.</p>
141      */
WithLastUpdatedAt(const Aws::Utils::DateTime & value)142     inline ResourceMetadata& WithLastUpdatedAt(const Aws::Utils::DateTime& value) { SetLastUpdatedAt(value); return *this;}
143 
144     /**
145      * <p>The Unix epoch timestamp in seconds for when the resource was last
146      * updated.</p>
147      */
WithLastUpdatedAt(Aws::Utils::DateTime && value)148     inline ResourceMetadata& WithLastUpdatedAt(Aws::Utils::DateTime&& value) { SetLastUpdatedAt(std::move(value)); return *this;}
149 
150 
151     /**
152      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
153      * your own, then it's the ID of the account that shared the mesh with your
154      * account. For more information about mesh sharing, see <a
155      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
156      * with shared meshes</a>.</p>
157      */
GetMeshOwner()158     inline const Aws::String& GetMeshOwner() const{ return m_meshOwner; }
159 
160     /**
161      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
162      * your own, then it's the ID of the account that shared the mesh with your
163      * account. For more information about mesh sharing, see <a
164      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
165      * with shared meshes</a>.</p>
166      */
MeshOwnerHasBeenSet()167     inline bool MeshOwnerHasBeenSet() const { return m_meshOwnerHasBeenSet; }
168 
169     /**
170      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
171      * your own, then it's the ID of the account that shared the mesh with your
172      * account. For more information about mesh sharing, see <a
173      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
174      * with shared meshes</a>.</p>
175      */
SetMeshOwner(const Aws::String & value)176     inline void SetMeshOwner(const Aws::String& value) { m_meshOwnerHasBeenSet = true; m_meshOwner = value; }
177 
178     /**
179      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
180      * your own, then it's the ID of the account that shared the mesh with your
181      * account. For more information about mesh sharing, see <a
182      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
183      * with shared meshes</a>.</p>
184      */
SetMeshOwner(Aws::String && value)185     inline void SetMeshOwner(Aws::String&& value) { m_meshOwnerHasBeenSet = true; m_meshOwner = std::move(value); }
186 
187     /**
188      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
189      * your own, then it's the ID of the account that shared the mesh with your
190      * account. For more information about mesh sharing, see <a
191      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
192      * with shared meshes</a>.</p>
193      */
SetMeshOwner(const char * value)194     inline void SetMeshOwner(const char* value) { m_meshOwnerHasBeenSet = true; m_meshOwner.assign(value); }
195 
196     /**
197      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
198      * your own, then it's the ID of the account that shared the mesh with your
199      * account. For more information about mesh sharing, see <a
200      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
201      * with shared meshes</a>.</p>
202      */
WithMeshOwner(const Aws::String & value)203     inline ResourceMetadata& WithMeshOwner(const Aws::String& value) { SetMeshOwner(value); return *this;}
204 
205     /**
206      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
207      * your own, then it's the ID of the account that shared the mesh with your
208      * account. For more information about mesh sharing, see <a
209      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
210      * with shared meshes</a>.</p>
211      */
WithMeshOwner(Aws::String && value)212     inline ResourceMetadata& WithMeshOwner(Aws::String&& value) { SetMeshOwner(std::move(value)); return *this;}
213 
214     /**
215      * <p>The AWS IAM account ID of the service mesh owner. If the account ID is not
216      * your own, then it's the ID of the account that shared the mesh with your
217      * account. For more information about mesh sharing, see <a
218      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
219      * with shared meshes</a>.</p>
220      */
WithMeshOwner(const char * value)221     inline ResourceMetadata& WithMeshOwner(const char* value) { SetMeshOwner(value); return *this;}
222 
223 
224     /**
225      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
226      * own, then it's the ID of the mesh owner or of another account that the mesh is
227      * shared with. For more information about mesh sharing, see <a
228      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
229      * with shared meshes</a>.</p>
230      */
GetResourceOwner()231     inline const Aws::String& GetResourceOwner() const{ return m_resourceOwner; }
232 
233     /**
234      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
235      * own, then it's the ID of the mesh owner or of another account that the mesh is
236      * shared with. For more information about mesh sharing, see <a
237      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
238      * with shared meshes</a>.</p>
239      */
ResourceOwnerHasBeenSet()240     inline bool ResourceOwnerHasBeenSet() const { return m_resourceOwnerHasBeenSet; }
241 
242     /**
243      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
244      * own, then it's the ID of the mesh owner or of another account that the mesh is
245      * shared with. For more information about mesh sharing, see <a
246      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
247      * with shared meshes</a>.</p>
248      */
SetResourceOwner(const Aws::String & value)249     inline void SetResourceOwner(const Aws::String& value) { m_resourceOwnerHasBeenSet = true; m_resourceOwner = value; }
250 
251     /**
252      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
253      * own, then it's the ID of the mesh owner or of another account that the mesh is
254      * shared with. For more information about mesh sharing, see <a
255      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
256      * with shared meshes</a>.</p>
257      */
SetResourceOwner(Aws::String && value)258     inline void SetResourceOwner(Aws::String&& value) { m_resourceOwnerHasBeenSet = true; m_resourceOwner = std::move(value); }
259 
260     /**
261      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
262      * own, then it's the ID of the mesh owner or of another account that the mesh is
263      * shared with. For more information about mesh sharing, see <a
264      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
265      * with shared meshes</a>.</p>
266      */
SetResourceOwner(const char * value)267     inline void SetResourceOwner(const char* value) { m_resourceOwnerHasBeenSet = true; m_resourceOwner.assign(value); }
268 
269     /**
270      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
271      * own, then it's the ID of the mesh owner or of another account that the mesh is
272      * shared with. For more information about mesh sharing, see <a
273      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
274      * with shared meshes</a>.</p>
275      */
WithResourceOwner(const Aws::String & value)276     inline ResourceMetadata& WithResourceOwner(const Aws::String& value) { SetResourceOwner(value); return *this;}
277 
278     /**
279      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
280      * own, then it's the ID of the mesh owner or of another account that the mesh is
281      * shared with. For more information about mesh sharing, see <a
282      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
283      * with shared meshes</a>.</p>
284      */
WithResourceOwner(Aws::String && value)285     inline ResourceMetadata& WithResourceOwner(Aws::String&& value) { SetResourceOwner(std::move(value)); return *this;}
286 
287     /**
288      * <p>The AWS IAM account ID of the resource owner. If the account ID is not your
289      * own, then it's the ID of the mesh owner or of another account that the mesh is
290      * shared with. For more information about mesh sharing, see <a
291      * href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working
292      * with shared meshes</a>.</p>
293      */
WithResourceOwner(const char * value)294     inline ResourceMetadata& WithResourceOwner(const char* value) { SetResourceOwner(value); return *this;}
295 
296 
297     /**
298      * <p>The unique identifier for the resource.</p>
299      */
GetUid()300     inline const Aws::String& GetUid() const{ return m_uid; }
301 
302     /**
303      * <p>The unique identifier for the resource.</p>
304      */
UidHasBeenSet()305     inline bool UidHasBeenSet() const { return m_uidHasBeenSet; }
306 
307     /**
308      * <p>The unique identifier for the resource.</p>
309      */
SetUid(const Aws::String & value)310     inline void SetUid(const Aws::String& value) { m_uidHasBeenSet = true; m_uid = value; }
311 
312     /**
313      * <p>The unique identifier for the resource.</p>
314      */
SetUid(Aws::String && value)315     inline void SetUid(Aws::String&& value) { m_uidHasBeenSet = true; m_uid = std::move(value); }
316 
317     /**
318      * <p>The unique identifier for the resource.</p>
319      */
SetUid(const char * value)320     inline void SetUid(const char* value) { m_uidHasBeenSet = true; m_uid.assign(value); }
321 
322     /**
323      * <p>The unique identifier for the resource.</p>
324      */
WithUid(const Aws::String & value)325     inline ResourceMetadata& WithUid(const Aws::String& value) { SetUid(value); return *this;}
326 
327     /**
328      * <p>The unique identifier for the resource.</p>
329      */
WithUid(Aws::String && value)330     inline ResourceMetadata& WithUid(Aws::String&& value) { SetUid(std::move(value)); return *this;}
331 
332     /**
333      * <p>The unique identifier for the resource.</p>
334      */
WithUid(const char * value)335     inline ResourceMetadata& WithUid(const char* value) { SetUid(value); return *this;}
336 
337 
338     /**
339      * <p>The version of the resource. Resources are created at version 1, and this
340      * version is incremented each time that they're updated.</p>
341      */
GetVersion()342     inline long long GetVersion() const{ return m_version; }
343 
344     /**
345      * <p>The version of the resource. Resources are created at version 1, and this
346      * version is incremented each time that they're updated.</p>
347      */
VersionHasBeenSet()348     inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; }
349 
350     /**
351      * <p>The version of the resource. Resources are created at version 1, and this
352      * version is incremented each time that they're updated.</p>
353      */
SetVersion(long long value)354     inline void SetVersion(long long value) { m_versionHasBeenSet = true; m_version = value; }
355 
356     /**
357      * <p>The version of the resource. Resources are created at version 1, and this
358      * version is incremented each time that they're updated.</p>
359      */
WithVersion(long long value)360     inline ResourceMetadata& WithVersion(long long value) { SetVersion(value); return *this;}
361 
362   private:
363 
364     Aws::String m_arn;
365     bool m_arnHasBeenSet;
366 
367     Aws::Utils::DateTime m_createdAt;
368     bool m_createdAtHasBeenSet;
369 
370     Aws::Utils::DateTime m_lastUpdatedAt;
371     bool m_lastUpdatedAtHasBeenSet;
372 
373     Aws::String m_meshOwner;
374     bool m_meshOwnerHasBeenSet;
375 
376     Aws::String m_resourceOwner;
377     bool m_resourceOwnerHasBeenSet;
378 
379     Aws::String m_uid;
380     bool m_uidHasBeenSet;
381 
382     long long m_version;
383     bool m_versionHasBeenSet;
384   };
385 
386 } // namespace Model
387 } // namespace AppMesh
388 } // namespace Aws
389