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/workdocs/WorkDocs_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/workdocs/model/User.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/workdocs/model/CommentStatusType.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 WorkDocs
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Describes the metadata of a comment.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/CommentMetadata">AWS
32    * API Reference</a></p>
33    */
34   class AWS_WORKDOCS_API CommentMetadata
35   {
36   public:
37     CommentMetadata();
38     CommentMetadata(Aws::Utils::Json::JsonView jsonValue);
39     CommentMetadata& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The ID of the comment.</p>
45      */
GetCommentId()46     inline const Aws::String& GetCommentId() const{ return m_commentId; }
47 
48     /**
49      * <p>The ID of the comment.</p>
50      */
CommentIdHasBeenSet()51     inline bool CommentIdHasBeenSet() const { return m_commentIdHasBeenSet; }
52 
53     /**
54      * <p>The ID of the comment.</p>
55      */
SetCommentId(const Aws::String & value)56     inline void SetCommentId(const Aws::String& value) { m_commentIdHasBeenSet = true; m_commentId = value; }
57 
58     /**
59      * <p>The ID of the comment.</p>
60      */
SetCommentId(Aws::String && value)61     inline void SetCommentId(Aws::String&& value) { m_commentIdHasBeenSet = true; m_commentId = std::move(value); }
62 
63     /**
64      * <p>The ID of the comment.</p>
65      */
SetCommentId(const char * value)66     inline void SetCommentId(const char* value) { m_commentIdHasBeenSet = true; m_commentId.assign(value); }
67 
68     /**
69      * <p>The ID of the comment.</p>
70      */
WithCommentId(const Aws::String & value)71     inline CommentMetadata& WithCommentId(const Aws::String& value) { SetCommentId(value); return *this;}
72 
73     /**
74      * <p>The ID of the comment.</p>
75      */
WithCommentId(Aws::String && value)76     inline CommentMetadata& WithCommentId(Aws::String&& value) { SetCommentId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The ID of the comment.</p>
80      */
WithCommentId(const char * value)81     inline CommentMetadata& WithCommentId(const char* value) { SetCommentId(value); return *this;}
82 
83 
84     /**
85      * <p>The user who made the comment.</p>
86      */
GetContributor()87     inline const User& GetContributor() const{ return m_contributor; }
88 
89     /**
90      * <p>The user who made the comment.</p>
91      */
ContributorHasBeenSet()92     inline bool ContributorHasBeenSet() const { return m_contributorHasBeenSet; }
93 
94     /**
95      * <p>The user who made the comment.</p>
96      */
SetContributor(const User & value)97     inline void SetContributor(const User& value) { m_contributorHasBeenSet = true; m_contributor = value; }
98 
99     /**
100      * <p>The user who made the comment.</p>
101      */
SetContributor(User && value)102     inline void SetContributor(User&& value) { m_contributorHasBeenSet = true; m_contributor = std::move(value); }
103 
104     /**
105      * <p>The user who made the comment.</p>
106      */
WithContributor(const User & value)107     inline CommentMetadata& WithContributor(const User& value) { SetContributor(value); return *this;}
108 
109     /**
110      * <p>The user who made the comment.</p>
111      */
WithContributor(User && value)112     inline CommentMetadata& WithContributor(User&& value) { SetContributor(std::move(value)); return *this;}
113 
114 
115     /**
116      * <p>The timestamp that the comment was created.</p>
117      */
GetCreatedTimestamp()118     inline const Aws::Utils::DateTime& GetCreatedTimestamp() const{ return m_createdTimestamp; }
119 
120     /**
121      * <p>The timestamp that the comment was created.</p>
122      */
CreatedTimestampHasBeenSet()123     inline bool CreatedTimestampHasBeenSet() const { return m_createdTimestampHasBeenSet; }
124 
125     /**
126      * <p>The timestamp that the comment was created.</p>
127      */
SetCreatedTimestamp(const Aws::Utils::DateTime & value)128     inline void SetCreatedTimestamp(const Aws::Utils::DateTime& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = value; }
129 
130     /**
131      * <p>The timestamp that the comment was created.</p>
132      */
SetCreatedTimestamp(Aws::Utils::DateTime && value)133     inline void SetCreatedTimestamp(Aws::Utils::DateTime&& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = std::move(value); }
134 
135     /**
136      * <p>The timestamp that the comment was created.</p>
137      */
WithCreatedTimestamp(const Aws::Utils::DateTime & value)138     inline CommentMetadata& WithCreatedTimestamp(const Aws::Utils::DateTime& value) { SetCreatedTimestamp(value); return *this;}
139 
140     /**
141      * <p>The timestamp that the comment was created.</p>
142      */
WithCreatedTimestamp(Aws::Utils::DateTime && value)143     inline CommentMetadata& WithCreatedTimestamp(Aws::Utils::DateTime&& value) { SetCreatedTimestamp(std::move(value)); return *this;}
144 
145 
146     /**
147      * <p>The status of the comment.</p>
148      */
GetCommentStatus()149     inline const CommentStatusType& GetCommentStatus() const{ return m_commentStatus; }
150 
151     /**
152      * <p>The status of the comment.</p>
153      */
CommentStatusHasBeenSet()154     inline bool CommentStatusHasBeenSet() const { return m_commentStatusHasBeenSet; }
155 
156     /**
157      * <p>The status of the comment.</p>
158      */
SetCommentStatus(const CommentStatusType & value)159     inline void SetCommentStatus(const CommentStatusType& value) { m_commentStatusHasBeenSet = true; m_commentStatus = value; }
160 
161     /**
162      * <p>The status of the comment.</p>
163      */
SetCommentStatus(CommentStatusType && value)164     inline void SetCommentStatus(CommentStatusType&& value) { m_commentStatusHasBeenSet = true; m_commentStatus = std::move(value); }
165 
166     /**
167      * <p>The status of the comment.</p>
168      */
WithCommentStatus(const CommentStatusType & value)169     inline CommentMetadata& WithCommentStatus(const CommentStatusType& value) { SetCommentStatus(value); return *this;}
170 
171     /**
172      * <p>The status of the comment.</p>
173      */
WithCommentStatus(CommentStatusType && value)174     inline CommentMetadata& WithCommentStatus(CommentStatusType&& value) { SetCommentStatus(std::move(value)); return *this;}
175 
176 
177     /**
178      * <p>The ID of the user being replied to.</p>
179      */
GetRecipientId()180     inline const Aws::String& GetRecipientId() const{ return m_recipientId; }
181 
182     /**
183      * <p>The ID of the user being replied to.</p>
184      */
RecipientIdHasBeenSet()185     inline bool RecipientIdHasBeenSet() const { return m_recipientIdHasBeenSet; }
186 
187     /**
188      * <p>The ID of the user being replied to.</p>
189      */
SetRecipientId(const Aws::String & value)190     inline void SetRecipientId(const Aws::String& value) { m_recipientIdHasBeenSet = true; m_recipientId = value; }
191 
192     /**
193      * <p>The ID of the user being replied to.</p>
194      */
SetRecipientId(Aws::String && value)195     inline void SetRecipientId(Aws::String&& value) { m_recipientIdHasBeenSet = true; m_recipientId = std::move(value); }
196 
197     /**
198      * <p>The ID of the user being replied to.</p>
199      */
SetRecipientId(const char * value)200     inline void SetRecipientId(const char* value) { m_recipientIdHasBeenSet = true; m_recipientId.assign(value); }
201 
202     /**
203      * <p>The ID of the user being replied to.</p>
204      */
WithRecipientId(const Aws::String & value)205     inline CommentMetadata& WithRecipientId(const Aws::String& value) { SetRecipientId(value); return *this;}
206 
207     /**
208      * <p>The ID of the user being replied to.</p>
209      */
WithRecipientId(Aws::String && value)210     inline CommentMetadata& WithRecipientId(Aws::String&& value) { SetRecipientId(std::move(value)); return *this;}
211 
212     /**
213      * <p>The ID of the user being replied to.</p>
214      */
WithRecipientId(const char * value)215     inline CommentMetadata& WithRecipientId(const char* value) { SetRecipientId(value); return *this;}
216 
217   private:
218 
219     Aws::String m_commentId;
220     bool m_commentIdHasBeenSet;
221 
222     User m_contributor;
223     bool m_contributorHasBeenSet;
224 
225     Aws::Utils::DateTime m_createdTimestamp;
226     bool m_createdTimestampHasBeenSet;
227 
228     CommentStatusType m_commentStatus;
229     bool m_commentStatusHasBeenSet;
230 
231     Aws::String m_recipientId;
232     bool m_recipientIdHasBeenSet;
233   };
234 
235 } // namespace Model
236 } // namespace WorkDocs
237 } // namespace Aws
238