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/MediaPipelineSourceType.h>
10 #include <aws/chime/model/MediaPipelineStatus.h>
11 #include <aws/chime/model/MediaPipelineSinkType.h>
12 #include <aws/core/utils/DateTime.h>
13 #include <aws/chime/model/ChimeSdkMeetingConfiguration.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23   class JsonView;
24 } // namespace Json
25 } // namespace Utils
26 namespace Chime
27 {
28 namespace Model
29 {
30 
31   /**
32    * <p>A media capture pipeline object consisting of an ID, source type, source ARN,
33    * a sink type, a sink ARN, and a configuration object.</p><p><h3>See Also:</h3>
34    * <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/chime-2018-05-01/MediaCapturePipeline">AWS
36    * API Reference</a></p>
37    */
38   class AWS_CHIME_API MediaCapturePipeline
39   {
40   public:
41     MediaCapturePipeline();
42     MediaCapturePipeline(Aws::Utils::Json::JsonView jsonValue);
43     MediaCapturePipeline& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * <p>The ID of a media capture pipeline.</p>
49      */
GetMediaPipelineId()50     inline const Aws::String& GetMediaPipelineId() const{ return m_mediaPipelineId; }
51 
52     /**
53      * <p>The ID of a media capture pipeline.</p>
54      */
MediaPipelineIdHasBeenSet()55     inline bool MediaPipelineIdHasBeenSet() const { return m_mediaPipelineIdHasBeenSet; }
56 
57     /**
58      * <p>The ID of a media capture pipeline.</p>
59      */
SetMediaPipelineId(const Aws::String & value)60     inline void SetMediaPipelineId(const Aws::String& value) { m_mediaPipelineIdHasBeenSet = true; m_mediaPipelineId = value; }
61 
62     /**
63      * <p>The ID of a media capture pipeline.</p>
64      */
SetMediaPipelineId(Aws::String && value)65     inline void SetMediaPipelineId(Aws::String&& value) { m_mediaPipelineIdHasBeenSet = true; m_mediaPipelineId = std::move(value); }
66 
67     /**
68      * <p>The ID of a media capture pipeline.</p>
69      */
SetMediaPipelineId(const char * value)70     inline void SetMediaPipelineId(const char* value) { m_mediaPipelineIdHasBeenSet = true; m_mediaPipelineId.assign(value); }
71 
72     /**
73      * <p>The ID of a media capture pipeline.</p>
74      */
WithMediaPipelineId(const Aws::String & value)75     inline MediaCapturePipeline& WithMediaPipelineId(const Aws::String& value) { SetMediaPipelineId(value); return *this;}
76 
77     /**
78      * <p>The ID of a media capture pipeline.</p>
79      */
WithMediaPipelineId(Aws::String && value)80     inline MediaCapturePipeline& WithMediaPipelineId(Aws::String&& value) { SetMediaPipelineId(std::move(value)); return *this;}
81 
82     /**
83      * <p>The ID of a media capture pipeline.</p>
84      */
WithMediaPipelineId(const char * value)85     inline MediaCapturePipeline& WithMediaPipelineId(const char* value) { SetMediaPipelineId(value); return *this;}
86 
87 
88     /**
89      * <p>Source type from which media artifacts are saved. You must use
90      * <code>ChimeMeeting</code>.</p>
91      */
GetSourceType()92     inline const MediaPipelineSourceType& GetSourceType() const{ return m_sourceType; }
93 
94     /**
95      * <p>Source type from which media artifacts are saved. You must use
96      * <code>ChimeMeeting</code>.</p>
97      */
SourceTypeHasBeenSet()98     inline bool SourceTypeHasBeenSet() const { return m_sourceTypeHasBeenSet; }
99 
100     /**
101      * <p>Source type from which media artifacts are saved. You must use
102      * <code>ChimeMeeting</code>.</p>
103      */
SetSourceType(const MediaPipelineSourceType & value)104     inline void SetSourceType(const MediaPipelineSourceType& value) { m_sourceTypeHasBeenSet = true; m_sourceType = value; }
105 
106     /**
107      * <p>Source type from which media artifacts are saved. You must use
108      * <code>ChimeMeeting</code>.</p>
109      */
SetSourceType(MediaPipelineSourceType && value)110     inline void SetSourceType(MediaPipelineSourceType&& value) { m_sourceTypeHasBeenSet = true; m_sourceType = std::move(value); }
111 
112     /**
113      * <p>Source type from which media artifacts are saved. You must use
114      * <code>ChimeMeeting</code>.</p>
115      */
WithSourceType(const MediaPipelineSourceType & value)116     inline MediaCapturePipeline& WithSourceType(const MediaPipelineSourceType& value) { SetSourceType(value); return *this;}
117 
118     /**
119      * <p>Source type from which media artifacts are saved. You must use
120      * <code>ChimeMeeting</code>.</p>
121      */
WithSourceType(MediaPipelineSourceType && value)122     inline MediaCapturePipeline& WithSourceType(MediaPipelineSourceType&& value) { SetSourceType(std::move(value)); return *this;}
123 
124 
125     /**
126      * <p>ARN of the source from which the media artifacts will be saved.</p>
127      */
GetSourceArn()128     inline const Aws::String& GetSourceArn() const{ return m_sourceArn; }
129 
130     /**
131      * <p>ARN of the source from which the media artifacts will be saved.</p>
132      */
SourceArnHasBeenSet()133     inline bool SourceArnHasBeenSet() const { return m_sourceArnHasBeenSet; }
134 
135     /**
136      * <p>ARN of the source from which the media artifacts will be saved.</p>
137      */
SetSourceArn(const Aws::String & value)138     inline void SetSourceArn(const Aws::String& value) { m_sourceArnHasBeenSet = true; m_sourceArn = value; }
139 
140     /**
141      * <p>ARN of the source from which the media artifacts will be saved.</p>
142      */
SetSourceArn(Aws::String && value)143     inline void SetSourceArn(Aws::String&& value) { m_sourceArnHasBeenSet = true; m_sourceArn = std::move(value); }
144 
145     /**
146      * <p>ARN of the source from which the media artifacts will be saved.</p>
147      */
SetSourceArn(const char * value)148     inline void SetSourceArn(const char* value) { m_sourceArnHasBeenSet = true; m_sourceArn.assign(value); }
149 
150     /**
151      * <p>ARN of the source from which the media artifacts will be saved.</p>
152      */
WithSourceArn(const Aws::String & value)153     inline MediaCapturePipeline& WithSourceArn(const Aws::String& value) { SetSourceArn(value); return *this;}
154 
155     /**
156      * <p>ARN of the source from which the media artifacts will be saved.</p>
157      */
WithSourceArn(Aws::String && value)158     inline MediaCapturePipeline& WithSourceArn(Aws::String&& value) { SetSourceArn(std::move(value)); return *this;}
159 
160     /**
161      * <p>ARN of the source from which the media artifacts will be saved.</p>
162      */
WithSourceArn(const char * value)163     inline MediaCapturePipeline& WithSourceArn(const char* value) { SetSourceArn(value); return *this;}
164 
165 
166     /**
167      * <p>The status of the media capture pipeline.</p>
168      */
GetStatus()169     inline const MediaPipelineStatus& GetStatus() const{ return m_status; }
170 
171     /**
172      * <p>The status of the media capture pipeline.</p>
173      */
StatusHasBeenSet()174     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
175 
176     /**
177      * <p>The status of the media capture pipeline.</p>
178      */
SetStatus(const MediaPipelineStatus & value)179     inline void SetStatus(const MediaPipelineStatus& value) { m_statusHasBeenSet = true; m_status = value; }
180 
181     /**
182      * <p>The status of the media capture pipeline.</p>
183      */
SetStatus(MediaPipelineStatus && value)184     inline void SetStatus(MediaPipelineStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
185 
186     /**
187      * <p>The status of the media capture pipeline.</p>
188      */
WithStatus(const MediaPipelineStatus & value)189     inline MediaCapturePipeline& WithStatus(const MediaPipelineStatus& value) { SetStatus(value); return *this;}
190 
191     /**
192      * <p>The status of the media capture pipeline.</p>
193      */
WithStatus(MediaPipelineStatus && value)194     inline MediaCapturePipeline& WithStatus(MediaPipelineStatus&& value) { SetStatus(std::move(value)); return *this;}
195 
196 
197     /**
198      * <p>Destination type to which the media artifacts are saved. You must use an S3
199      * Bucket.</p>
200      */
GetSinkType()201     inline const MediaPipelineSinkType& GetSinkType() const{ return m_sinkType; }
202 
203     /**
204      * <p>Destination type to which the media artifacts are saved. You must use an S3
205      * Bucket.</p>
206      */
SinkTypeHasBeenSet()207     inline bool SinkTypeHasBeenSet() const { return m_sinkTypeHasBeenSet; }
208 
209     /**
210      * <p>Destination type to which the media artifacts are saved. You must use an S3
211      * Bucket.</p>
212      */
SetSinkType(const MediaPipelineSinkType & value)213     inline void SetSinkType(const MediaPipelineSinkType& value) { m_sinkTypeHasBeenSet = true; m_sinkType = value; }
214 
215     /**
216      * <p>Destination type to which the media artifacts are saved. You must use an S3
217      * Bucket.</p>
218      */
SetSinkType(MediaPipelineSinkType && value)219     inline void SetSinkType(MediaPipelineSinkType&& value) { m_sinkTypeHasBeenSet = true; m_sinkType = std::move(value); }
220 
221     /**
222      * <p>Destination type to which the media artifacts are saved. You must use an S3
223      * Bucket.</p>
224      */
WithSinkType(const MediaPipelineSinkType & value)225     inline MediaCapturePipeline& WithSinkType(const MediaPipelineSinkType& value) { SetSinkType(value); return *this;}
226 
227     /**
228      * <p>Destination type to which the media artifacts are saved. You must use an S3
229      * Bucket.</p>
230      */
WithSinkType(MediaPipelineSinkType && value)231     inline MediaCapturePipeline& WithSinkType(MediaPipelineSinkType&& value) { SetSinkType(std::move(value)); return *this;}
232 
233 
234     /**
235      * <p>ARN of the destination to which the media artifacts are saved.</p>
236      */
GetSinkArn()237     inline const Aws::String& GetSinkArn() const{ return m_sinkArn; }
238 
239     /**
240      * <p>ARN of the destination to which the media artifacts are saved.</p>
241      */
SinkArnHasBeenSet()242     inline bool SinkArnHasBeenSet() const { return m_sinkArnHasBeenSet; }
243 
244     /**
245      * <p>ARN of the destination to which the media artifacts are saved.</p>
246      */
SetSinkArn(const Aws::String & value)247     inline void SetSinkArn(const Aws::String& value) { m_sinkArnHasBeenSet = true; m_sinkArn = value; }
248 
249     /**
250      * <p>ARN of the destination to which the media artifacts are saved.</p>
251      */
SetSinkArn(Aws::String && value)252     inline void SetSinkArn(Aws::String&& value) { m_sinkArnHasBeenSet = true; m_sinkArn = std::move(value); }
253 
254     /**
255      * <p>ARN of the destination to which the media artifacts are saved.</p>
256      */
SetSinkArn(const char * value)257     inline void SetSinkArn(const char* value) { m_sinkArnHasBeenSet = true; m_sinkArn.assign(value); }
258 
259     /**
260      * <p>ARN of the destination to which the media artifacts are saved.</p>
261      */
WithSinkArn(const Aws::String & value)262     inline MediaCapturePipeline& WithSinkArn(const Aws::String& value) { SetSinkArn(value); return *this;}
263 
264     /**
265      * <p>ARN of the destination to which the media artifacts are saved.</p>
266      */
WithSinkArn(Aws::String && value)267     inline MediaCapturePipeline& WithSinkArn(Aws::String&& value) { SetSinkArn(std::move(value)); return *this;}
268 
269     /**
270      * <p>ARN of the destination to which the media artifacts are saved.</p>
271      */
WithSinkArn(const char * value)272     inline MediaCapturePipeline& WithSinkArn(const char* value) { SetSinkArn(value); return *this;}
273 
274 
275     /**
276      * <p>The time at which the capture pipeline was created, in ISO 8601 format.</p>
277      */
GetCreatedTimestamp()278     inline const Aws::Utils::DateTime& GetCreatedTimestamp() const{ return m_createdTimestamp; }
279 
280     /**
281      * <p>The time at which the capture pipeline was created, in ISO 8601 format.</p>
282      */
CreatedTimestampHasBeenSet()283     inline bool CreatedTimestampHasBeenSet() const { return m_createdTimestampHasBeenSet; }
284 
285     /**
286      * <p>The time at which the capture pipeline was created, in ISO 8601 format.</p>
287      */
SetCreatedTimestamp(const Aws::Utils::DateTime & value)288     inline void SetCreatedTimestamp(const Aws::Utils::DateTime& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = value; }
289 
290     /**
291      * <p>The time at which the capture pipeline was created, in ISO 8601 format.</p>
292      */
SetCreatedTimestamp(Aws::Utils::DateTime && value)293     inline void SetCreatedTimestamp(Aws::Utils::DateTime&& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = std::move(value); }
294 
295     /**
296      * <p>The time at which the capture pipeline was created, in ISO 8601 format.</p>
297      */
WithCreatedTimestamp(const Aws::Utils::DateTime & value)298     inline MediaCapturePipeline& WithCreatedTimestamp(const Aws::Utils::DateTime& value) { SetCreatedTimestamp(value); return *this;}
299 
300     /**
301      * <p>The time at which the capture pipeline was created, in ISO 8601 format.</p>
302      */
WithCreatedTimestamp(Aws::Utils::DateTime && value)303     inline MediaCapturePipeline& WithCreatedTimestamp(Aws::Utils::DateTime&& value) { SetCreatedTimestamp(std::move(value)); return *this;}
304 
305 
306     /**
307      * <p>The time at which the capture pipeline was updated, in ISO 8601 format.</p>
308      */
GetUpdatedTimestamp()309     inline const Aws::Utils::DateTime& GetUpdatedTimestamp() const{ return m_updatedTimestamp; }
310 
311     /**
312      * <p>The time at which the capture pipeline was updated, in ISO 8601 format.</p>
313      */
UpdatedTimestampHasBeenSet()314     inline bool UpdatedTimestampHasBeenSet() const { return m_updatedTimestampHasBeenSet; }
315 
316     /**
317      * <p>The time at which the capture pipeline was updated, in ISO 8601 format.</p>
318      */
SetUpdatedTimestamp(const Aws::Utils::DateTime & value)319     inline void SetUpdatedTimestamp(const Aws::Utils::DateTime& value) { m_updatedTimestampHasBeenSet = true; m_updatedTimestamp = value; }
320 
321     /**
322      * <p>The time at which the capture pipeline was updated, in ISO 8601 format.</p>
323      */
SetUpdatedTimestamp(Aws::Utils::DateTime && value)324     inline void SetUpdatedTimestamp(Aws::Utils::DateTime&& value) { m_updatedTimestampHasBeenSet = true; m_updatedTimestamp = std::move(value); }
325 
326     /**
327      * <p>The time at which the capture pipeline was updated, in ISO 8601 format.</p>
328      */
WithUpdatedTimestamp(const Aws::Utils::DateTime & value)329     inline MediaCapturePipeline& WithUpdatedTimestamp(const Aws::Utils::DateTime& value) { SetUpdatedTimestamp(value); return *this;}
330 
331     /**
332      * <p>The time at which the capture pipeline was updated, in ISO 8601 format.</p>
333      */
WithUpdatedTimestamp(Aws::Utils::DateTime && value)334     inline MediaCapturePipeline& WithUpdatedTimestamp(Aws::Utils::DateTime&& value) { SetUpdatedTimestamp(std::move(value)); return *this;}
335 
336 
337     /**
338      * <p>The configuration for a specified media capture pipeline.
339      * <code>SourceType</code> must be <code>ChimeSdkMeeting</code>.</p>
340      */
GetChimeSdkMeetingConfiguration()341     inline const ChimeSdkMeetingConfiguration& GetChimeSdkMeetingConfiguration() const{ return m_chimeSdkMeetingConfiguration; }
342 
343     /**
344      * <p>The configuration for a specified media capture pipeline.
345      * <code>SourceType</code> must be <code>ChimeSdkMeeting</code>.</p>
346      */
ChimeSdkMeetingConfigurationHasBeenSet()347     inline bool ChimeSdkMeetingConfigurationHasBeenSet() const { return m_chimeSdkMeetingConfigurationHasBeenSet; }
348 
349     /**
350      * <p>The configuration for a specified media capture pipeline.
351      * <code>SourceType</code> must be <code>ChimeSdkMeeting</code>.</p>
352      */
SetChimeSdkMeetingConfiguration(const ChimeSdkMeetingConfiguration & value)353     inline void SetChimeSdkMeetingConfiguration(const ChimeSdkMeetingConfiguration& value) { m_chimeSdkMeetingConfigurationHasBeenSet = true; m_chimeSdkMeetingConfiguration = value; }
354 
355     /**
356      * <p>The configuration for a specified media capture pipeline.
357      * <code>SourceType</code> must be <code>ChimeSdkMeeting</code>.</p>
358      */
SetChimeSdkMeetingConfiguration(ChimeSdkMeetingConfiguration && value)359     inline void SetChimeSdkMeetingConfiguration(ChimeSdkMeetingConfiguration&& value) { m_chimeSdkMeetingConfigurationHasBeenSet = true; m_chimeSdkMeetingConfiguration = std::move(value); }
360 
361     /**
362      * <p>The configuration for a specified media capture pipeline.
363      * <code>SourceType</code> must be <code>ChimeSdkMeeting</code>.</p>
364      */
WithChimeSdkMeetingConfiguration(const ChimeSdkMeetingConfiguration & value)365     inline MediaCapturePipeline& WithChimeSdkMeetingConfiguration(const ChimeSdkMeetingConfiguration& value) { SetChimeSdkMeetingConfiguration(value); return *this;}
366 
367     /**
368      * <p>The configuration for a specified media capture pipeline.
369      * <code>SourceType</code> must be <code>ChimeSdkMeeting</code>.</p>
370      */
WithChimeSdkMeetingConfiguration(ChimeSdkMeetingConfiguration && value)371     inline MediaCapturePipeline& WithChimeSdkMeetingConfiguration(ChimeSdkMeetingConfiguration&& value) { SetChimeSdkMeetingConfiguration(std::move(value)); return *this;}
372 
373   private:
374 
375     Aws::String m_mediaPipelineId;
376     bool m_mediaPipelineIdHasBeenSet;
377 
378     MediaPipelineSourceType m_sourceType;
379     bool m_sourceTypeHasBeenSet;
380 
381     Aws::String m_sourceArn;
382     bool m_sourceArnHasBeenSet;
383 
384     MediaPipelineStatus m_status;
385     bool m_statusHasBeenSet;
386 
387     MediaPipelineSinkType m_sinkType;
388     bool m_sinkTypeHasBeenSet;
389 
390     Aws::String m_sinkArn;
391     bool m_sinkArnHasBeenSet;
392 
393     Aws::Utils::DateTime m_createdTimestamp;
394     bool m_createdTimestampHasBeenSet;
395 
396     Aws::Utils::DateTime m_updatedTimestamp;
397     bool m_updatedTimestampHasBeenSet;
398 
399     ChimeSdkMeetingConfiguration m_chimeSdkMeetingConfiguration;
400     bool m_chimeSdkMeetingConfigurationHasBeenSet;
401   };
402 
403 } // namespace Model
404 } // namespace Chime
405 } // namespace Aws
406