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/chime/Chime_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/chime/model/ChannelMode.h>
10 #include <aws/chime/model/ChannelPrivacy.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 Chime
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Summary of the details of a <code>Channel</code>.</p><p><h3>See Also:</h3>
31    * <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/ChannelSummary">AWS
33    * API Reference</a></p>
34    */
35   class AWS_CHIME_API ChannelSummary
36   {
37   public:
38     ChannelSummary();
39     ChannelSummary(Aws::Utils::Json::JsonView jsonValue);
40     ChannelSummary& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The name of the channel.</p>
46      */
GetName()47     inline const Aws::String& GetName() const{ return m_name; }
48 
49     /**
50      * <p>The name of the channel.</p>
51      */
NameHasBeenSet()52     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
53 
54     /**
55      * <p>The name of the channel.</p>
56      */
SetName(const Aws::String & value)57     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
58 
59     /**
60      * <p>The name of the channel.</p>
61      */
SetName(Aws::String && value)62     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
63 
64     /**
65      * <p>The name of the channel.</p>
66      */
SetName(const char * value)67     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
68 
69     /**
70      * <p>The name of the channel.</p>
71      */
WithName(const Aws::String & value)72     inline ChannelSummary& WithName(const Aws::String& value) { SetName(value); return *this;}
73 
74     /**
75      * <p>The name of the channel.</p>
76      */
WithName(Aws::String && value)77     inline ChannelSummary& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
78 
79     /**
80      * <p>The name of the channel.</p>
81      */
WithName(const char * value)82     inline ChannelSummary& WithName(const char* value) { SetName(value); return *this;}
83 
84 
85     /**
86      * <p>The ARN of the channel.</p>
87      */
GetChannelArn()88     inline const Aws::String& GetChannelArn() const{ return m_channelArn; }
89 
90     /**
91      * <p>The ARN of the channel.</p>
92      */
ChannelArnHasBeenSet()93     inline bool ChannelArnHasBeenSet() const { return m_channelArnHasBeenSet; }
94 
95     /**
96      * <p>The ARN of the channel.</p>
97      */
SetChannelArn(const Aws::String & value)98     inline void SetChannelArn(const Aws::String& value) { m_channelArnHasBeenSet = true; m_channelArn = value; }
99 
100     /**
101      * <p>The ARN of the channel.</p>
102      */
SetChannelArn(Aws::String && value)103     inline void SetChannelArn(Aws::String&& value) { m_channelArnHasBeenSet = true; m_channelArn = std::move(value); }
104 
105     /**
106      * <p>The ARN of the channel.</p>
107      */
SetChannelArn(const char * value)108     inline void SetChannelArn(const char* value) { m_channelArnHasBeenSet = true; m_channelArn.assign(value); }
109 
110     /**
111      * <p>The ARN of the channel.</p>
112      */
WithChannelArn(const Aws::String & value)113     inline ChannelSummary& WithChannelArn(const Aws::String& value) { SetChannelArn(value); return *this;}
114 
115     /**
116      * <p>The ARN of the channel.</p>
117      */
WithChannelArn(Aws::String && value)118     inline ChannelSummary& WithChannelArn(Aws::String&& value) { SetChannelArn(std::move(value)); return *this;}
119 
120     /**
121      * <p>The ARN of the channel.</p>
122      */
WithChannelArn(const char * value)123     inline ChannelSummary& WithChannelArn(const char* value) { SetChannelArn(value); return *this;}
124 
125 
126     /**
127      * <p>The mode of the channel.</p>
128      */
GetMode()129     inline const ChannelMode& GetMode() const{ return m_mode; }
130 
131     /**
132      * <p>The mode of the channel.</p>
133      */
ModeHasBeenSet()134     inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; }
135 
136     /**
137      * <p>The mode of the channel.</p>
138      */
SetMode(const ChannelMode & value)139     inline void SetMode(const ChannelMode& value) { m_modeHasBeenSet = true; m_mode = value; }
140 
141     /**
142      * <p>The mode of the channel.</p>
143      */
SetMode(ChannelMode && value)144     inline void SetMode(ChannelMode&& value) { m_modeHasBeenSet = true; m_mode = std::move(value); }
145 
146     /**
147      * <p>The mode of the channel.</p>
148      */
WithMode(const ChannelMode & value)149     inline ChannelSummary& WithMode(const ChannelMode& value) { SetMode(value); return *this;}
150 
151     /**
152      * <p>The mode of the channel.</p>
153      */
WithMode(ChannelMode && value)154     inline ChannelSummary& WithMode(ChannelMode&& value) { SetMode(std::move(value)); return *this;}
155 
156 
157     /**
158      * <p>The privacy setting of the channel.</p>
159      */
GetPrivacy()160     inline const ChannelPrivacy& GetPrivacy() const{ return m_privacy; }
161 
162     /**
163      * <p>The privacy setting of the channel.</p>
164      */
PrivacyHasBeenSet()165     inline bool PrivacyHasBeenSet() const { return m_privacyHasBeenSet; }
166 
167     /**
168      * <p>The privacy setting of the channel.</p>
169      */
SetPrivacy(const ChannelPrivacy & value)170     inline void SetPrivacy(const ChannelPrivacy& value) { m_privacyHasBeenSet = true; m_privacy = value; }
171 
172     /**
173      * <p>The privacy setting of the channel.</p>
174      */
SetPrivacy(ChannelPrivacy && value)175     inline void SetPrivacy(ChannelPrivacy&& value) { m_privacyHasBeenSet = true; m_privacy = std::move(value); }
176 
177     /**
178      * <p>The privacy setting of the channel.</p>
179      */
WithPrivacy(const ChannelPrivacy & value)180     inline ChannelSummary& WithPrivacy(const ChannelPrivacy& value) { SetPrivacy(value); return *this;}
181 
182     /**
183      * <p>The privacy setting of the channel.</p>
184      */
WithPrivacy(ChannelPrivacy && value)185     inline ChannelSummary& WithPrivacy(ChannelPrivacy&& value) { SetPrivacy(std::move(value)); return *this;}
186 
187 
188     /**
189      * <p>The metadata of the channel.</p>
190      */
GetMetadata()191     inline const Aws::String& GetMetadata() const{ return m_metadata; }
192 
193     /**
194      * <p>The metadata of the channel.</p>
195      */
MetadataHasBeenSet()196     inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; }
197 
198     /**
199      * <p>The metadata of the channel.</p>
200      */
SetMetadata(const Aws::String & value)201     inline void SetMetadata(const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata = value; }
202 
203     /**
204      * <p>The metadata of the channel.</p>
205      */
SetMetadata(Aws::String && value)206     inline void SetMetadata(Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); }
207 
208     /**
209      * <p>The metadata of the channel.</p>
210      */
SetMetadata(const char * value)211     inline void SetMetadata(const char* value) { m_metadataHasBeenSet = true; m_metadata.assign(value); }
212 
213     /**
214      * <p>The metadata of the channel.</p>
215      */
WithMetadata(const Aws::String & value)216     inline ChannelSummary& WithMetadata(const Aws::String& value) { SetMetadata(value); return *this;}
217 
218     /**
219      * <p>The metadata of the channel.</p>
220      */
WithMetadata(Aws::String && value)221     inline ChannelSummary& WithMetadata(Aws::String&& value) { SetMetadata(std::move(value)); return *this;}
222 
223     /**
224      * <p>The metadata of the channel.</p>
225      */
WithMetadata(const char * value)226     inline ChannelSummary& WithMetadata(const char* value) { SetMetadata(value); return *this;}
227 
228 
229     /**
230      * <p>The time at which the last message in a channel was sent.</p>
231      */
GetLastMessageTimestamp()232     inline const Aws::Utils::DateTime& GetLastMessageTimestamp() const{ return m_lastMessageTimestamp; }
233 
234     /**
235      * <p>The time at which the last message in a channel was sent.</p>
236      */
LastMessageTimestampHasBeenSet()237     inline bool LastMessageTimestampHasBeenSet() const { return m_lastMessageTimestampHasBeenSet; }
238 
239     /**
240      * <p>The time at which the last message in a channel was sent.</p>
241      */
SetLastMessageTimestamp(const Aws::Utils::DateTime & value)242     inline void SetLastMessageTimestamp(const Aws::Utils::DateTime& value) { m_lastMessageTimestampHasBeenSet = true; m_lastMessageTimestamp = value; }
243 
244     /**
245      * <p>The time at which the last message in a channel was sent.</p>
246      */
SetLastMessageTimestamp(Aws::Utils::DateTime && value)247     inline void SetLastMessageTimestamp(Aws::Utils::DateTime&& value) { m_lastMessageTimestampHasBeenSet = true; m_lastMessageTimestamp = std::move(value); }
248 
249     /**
250      * <p>The time at which the last message in a channel was sent.</p>
251      */
WithLastMessageTimestamp(const Aws::Utils::DateTime & value)252     inline ChannelSummary& WithLastMessageTimestamp(const Aws::Utils::DateTime& value) { SetLastMessageTimestamp(value); return *this;}
253 
254     /**
255      * <p>The time at which the last message in a channel was sent.</p>
256      */
WithLastMessageTimestamp(Aws::Utils::DateTime && value)257     inline ChannelSummary& WithLastMessageTimestamp(Aws::Utils::DateTime&& value) { SetLastMessageTimestamp(std::move(value)); return *this;}
258 
259   private:
260 
261     Aws::String m_name;
262     bool m_nameHasBeenSet;
263 
264     Aws::String m_channelArn;
265     bool m_channelArnHasBeenSet;
266 
267     ChannelMode m_mode;
268     bool m_modeHasBeenSet;
269 
270     ChannelPrivacy m_privacy;
271     bool m_privacyHasBeenSet;
272 
273     Aws::String m_metadata;
274     bool m_metadataHasBeenSet;
275 
276     Aws::Utils::DateTime m_lastMessageTimestamp;
277     bool m_lastMessageTimestampHasBeenSet;
278   };
279 
280 } // namespace Model
281 } // namespace Chime
282 } // namespace Aws
283