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/medialive/MediaLive_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/medialive/model/CdiInputSpecification.h>
10 #include <aws/medialive/model/ChannelClass.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/medialive/model/EncoderSettings.h>
13 #include <aws/medialive/model/InputSpecification.h>
14 #include <aws/medialive/model/LogLevel.h>
15 #include <aws/medialive/model/ChannelState.h>
16 #include <aws/core/utils/memory/stl/AWSMap.h>
17 #include <aws/medialive/model/VpcOutputSettingsDescription.h>
18 #include <aws/medialive/model/OutputDestination.h>
19 #include <aws/medialive/model/ChannelEgressEndpoint.h>
20 #include <aws/medialive/model/InputAttachment.h>
21 #include <aws/medialive/model/PipelineDetail.h>
22 #include <utility>
23 
24 namespace Aws
25 {
26 namespace Utils
27 {
28 namespace Json
29 {
30   class JsonValue;
31   class JsonView;
32 } // namespace Json
33 } // namespace Utils
34 namespace MediaLive
35 {
36 namespace Model
37 {
38 
39   /**
40    * Placeholder documentation for Channel<p><h3>See Also:</h3>   <a
41    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/Channel">AWS
42    * API Reference</a></p>
43    */
44   class AWS_MEDIALIVE_API Channel
45   {
46   public:
47     Channel();
48     Channel(Aws::Utils::Json::JsonView jsonValue);
49     Channel& operator=(Aws::Utils::Json::JsonView jsonValue);
50     Aws::Utils::Json::JsonValue Jsonize() const;
51 
52 
53     /**
54      * The unique arn of the channel.
55      */
GetArn()56     inline const Aws::String& GetArn() const{ return m_arn; }
57 
58     /**
59      * The unique arn of the channel.
60      */
ArnHasBeenSet()61     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
62 
63     /**
64      * The unique arn of the channel.
65      */
SetArn(const Aws::String & value)66     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
67 
68     /**
69      * The unique arn of the channel.
70      */
SetArn(Aws::String && value)71     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
72 
73     /**
74      * The unique arn of the channel.
75      */
SetArn(const char * value)76     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
77 
78     /**
79      * The unique arn of the channel.
80      */
WithArn(const Aws::String & value)81     inline Channel& WithArn(const Aws::String& value) { SetArn(value); return *this;}
82 
83     /**
84      * The unique arn of the channel.
85      */
WithArn(Aws::String && value)86     inline Channel& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
87 
88     /**
89      * The unique arn of the channel.
90      */
WithArn(const char * value)91     inline Channel& WithArn(const char* value) { SetArn(value); return *this;}
92 
93 
94     /**
95      * Specification of CDI inputs for this channel
96      */
GetCdiInputSpecification()97     inline const CdiInputSpecification& GetCdiInputSpecification() const{ return m_cdiInputSpecification; }
98 
99     /**
100      * Specification of CDI inputs for this channel
101      */
CdiInputSpecificationHasBeenSet()102     inline bool CdiInputSpecificationHasBeenSet() const { return m_cdiInputSpecificationHasBeenSet; }
103 
104     /**
105      * Specification of CDI inputs for this channel
106      */
SetCdiInputSpecification(const CdiInputSpecification & value)107     inline void SetCdiInputSpecification(const CdiInputSpecification& value) { m_cdiInputSpecificationHasBeenSet = true; m_cdiInputSpecification = value; }
108 
109     /**
110      * Specification of CDI inputs for this channel
111      */
SetCdiInputSpecification(CdiInputSpecification && value)112     inline void SetCdiInputSpecification(CdiInputSpecification&& value) { m_cdiInputSpecificationHasBeenSet = true; m_cdiInputSpecification = std::move(value); }
113 
114     /**
115      * Specification of CDI inputs for this channel
116      */
WithCdiInputSpecification(const CdiInputSpecification & value)117     inline Channel& WithCdiInputSpecification(const CdiInputSpecification& value) { SetCdiInputSpecification(value); return *this;}
118 
119     /**
120      * Specification of CDI inputs for this channel
121      */
WithCdiInputSpecification(CdiInputSpecification && value)122     inline Channel& WithCdiInputSpecification(CdiInputSpecification&& value) { SetCdiInputSpecification(std::move(value)); return *this;}
123 
124 
125     /**
126      * The class for this channel. STANDARD for a channel with two pipelines or
127      * SINGLE_PIPELINE for a channel with one pipeline.
128      */
GetChannelClass()129     inline const ChannelClass& GetChannelClass() const{ return m_channelClass; }
130 
131     /**
132      * The class for this channel. STANDARD for a channel with two pipelines or
133      * SINGLE_PIPELINE for a channel with one pipeline.
134      */
ChannelClassHasBeenSet()135     inline bool ChannelClassHasBeenSet() const { return m_channelClassHasBeenSet; }
136 
137     /**
138      * The class for this channel. STANDARD for a channel with two pipelines or
139      * SINGLE_PIPELINE for a channel with one pipeline.
140      */
SetChannelClass(const ChannelClass & value)141     inline void SetChannelClass(const ChannelClass& value) { m_channelClassHasBeenSet = true; m_channelClass = value; }
142 
143     /**
144      * The class for this channel. STANDARD for a channel with two pipelines or
145      * SINGLE_PIPELINE for a channel with one pipeline.
146      */
SetChannelClass(ChannelClass && value)147     inline void SetChannelClass(ChannelClass&& value) { m_channelClassHasBeenSet = true; m_channelClass = std::move(value); }
148 
149     /**
150      * The class for this channel. STANDARD for a channel with two pipelines or
151      * SINGLE_PIPELINE for a channel with one pipeline.
152      */
WithChannelClass(const ChannelClass & value)153     inline Channel& WithChannelClass(const ChannelClass& value) { SetChannelClass(value); return *this;}
154 
155     /**
156      * The class for this channel. STANDARD for a channel with two pipelines or
157      * SINGLE_PIPELINE for a channel with one pipeline.
158      */
WithChannelClass(ChannelClass && value)159     inline Channel& WithChannelClass(ChannelClass&& value) { SetChannelClass(std::move(value)); return *this;}
160 
161 
162     /**
163      * A list of destinations of the channel. For UDP outputs, there is one
164 destination
165      * per output. For other types (HLS, for example), there is
166 one destination per
167      * packager.
168 
169      */
GetDestinations()170     inline const Aws::Vector<OutputDestination>& GetDestinations() const{ return m_destinations; }
171 
172     /**
173      * A list of destinations of the channel. For UDP outputs, there is one
174 destination
175      * per output. For other types (HLS, for example), there is
176 one destination per
177      * packager.
178 
179      */
DestinationsHasBeenSet()180     inline bool DestinationsHasBeenSet() const { return m_destinationsHasBeenSet; }
181 
182     /**
183      * A list of destinations of the channel. For UDP outputs, there is one
184 destination
185      * per output. For other types (HLS, for example), there is
186 one destination per
187      * packager.
188 
189      */
SetDestinations(const Aws::Vector<OutputDestination> & value)190     inline void SetDestinations(const Aws::Vector<OutputDestination>& value) { m_destinationsHasBeenSet = true; m_destinations = value; }
191 
192     /**
193      * A list of destinations of the channel. For UDP outputs, there is one
194 destination
195      * per output. For other types (HLS, for example), there is
196 one destination per
197      * packager.
198 
199      */
SetDestinations(Aws::Vector<OutputDestination> && value)200     inline void SetDestinations(Aws::Vector<OutputDestination>&& value) { m_destinationsHasBeenSet = true; m_destinations = std::move(value); }
201 
202     /**
203      * A list of destinations of the channel. For UDP outputs, there is one
204 destination
205      * per output. For other types (HLS, for example), there is
206 one destination per
207      * packager.
208 
209      */
WithDestinations(const Aws::Vector<OutputDestination> & value)210     inline Channel& WithDestinations(const Aws::Vector<OutputDestination>& value) { SetDestinations(value); return *this;}
211 
212     /**
213      * A list of destinations of the channel. For UDP outputs, there is one
214 destination
215      * per output. For other types (HLS, for example), there is
216 one destination per
217      * packager.
218 
219      */
WithDestinations(Aws::Vector<OutputDestination> && value)220     inline Channel& WithDestinations(Aws::Vector<OutputDestination>&& value) { SetDestinations(std::move(value)); return *this;}
221 
222     /**
223      * A list of destinations of the channel. For UDP outputs, there is one
224 destination
225      * per output. For other types (HLS, for example), there is
226 one destination per
227      * packager.
228 
229      */
AddDestinations(const OutputDestination & value)230     inline Channel& AddDestinations(const OutputDestination& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; }
231 
232     /**
233      * A list of destinations of the channel. For UDP outputs, there is one
234 destination
235      * per output. For other types (HLS, for example), there is
236 one destination per
237      * packager.
238 
239      */
AddDestinations(OutputDestination && value)240     inline Channel& AddDestinations(OutputDestination&& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(std::move(value)); return *this; }
241 
242 
243     /**
244      * The endpoints where outgoing connections initiate from
245      */
GetEgressEndpoints()246     inline const Aws::Vector<ChannelEgressEndpoint>& GetEgressEndpoints() const{ return m_egressEndpoints; }
247 
248     /**
249      * The endpoints where outgoing connections initiate from
250      */
EgressEndpointsHasBeenSet()251     inline bool EgressEndpointsHasBeenSet() const { return m_egressEndpointsHasBeenSet; }
252 
253     /**
254      * The endpoints where outgoing connections initiate from
255      */
SetEgressEndpoints(const Aws::Vector<ChannelEgressEndpoint> & value)256     inline void SetEgressEndpoints(const Aws::Vector<ChannelEgressEndpoint>& value) { m_egressEndpointsHasBeenSet = true; m_egressEndpoints = value; }
257 
258     /**
259      * The endpoints where outgoing connections initiate from
260      */
SetEgressEndpoints(Aws::Vector<ChannelEgressEndpoint> && value)261     inline void SetEgressEndpoints(Aws::Vector<ChannelEgressEndpoint>&& value) { m_egressEndpointsHasBeenSet = true; m_egressEndpoints = std::move(value); }
262 
263     /**
264      * The endpoints where outgoing connections initiate from
265      */
WithEgressEndpoints(const Aws::Vector<ChannelEgressEndpoint> & value)266     inline Channel& WithEgressEndpoints(const Aws::Vector<ChannelEgressEndpoint>& value) { SetEgressEndpoints(value); return *this;}
267 
268     /**
269      * The endpoints where outgoing connections initiate from
270      */
WithEgressEndpoints(Aws::Vector<ChannelEgressEndpoint> && value)271     inline Channel& WithEgressEndpoints(Aws::Vector<ChannelEgressEndpoint>&& value) { SetEgressEndpoints(std::move(value)); return *this;}
272 
273     /**
274      * The endpoints where outgoing connections initiate from
275      */
AddEgressEndpoints(const ChannelEgressEndpoint & value)276     inline Channel& AddEgressEndpoints(const ChannelEgressEndpoint& value) { m_egressEndpointsHasBeenSet = true; m_egressEndpoints.push_back(value); return *this; }
277 
278     /**
279      * The endpoints where outgoing connections initiate from
280      */
AddEgressEndpoints(ChannelEgressEndpoint && value)281     inline Channel& AddEgressEndpoints(ChannelEgressEndpoint&& value) { m_egressEndpointsHasBeenSet = true; m_egressEndpoints.push_back(std::move(value)); return *this; }
282 
283 
284 
GetEncoderSettings()285     inline const EncoderSettings& GetEncoderSettings() const{ return m_encoderSettings; }
286 
287 
EncoderSettingsHasBeenSet()288     inline bool EncoderSettingsHasBeenSet() const { return m_encoderSettingsHasBeenSet; }
289 
290 
SetEncoderSettings(const EncoderSettings & value)291     inline void SetEncoderSettings(const EncoderSettings& value) { m_encoderSettingsHasBeenSet = true; m_encoderSettings = value; }
292 
293 
SetEncoderSettings(EncoderSettings && value)294     inline void SetEncoderSettings(EncoderSettings&& value) { m_encoderSettingsHasBeenSet = true; m_encoderSettings = std::move(value); }
295 
296 
WithEncoderSettings(const EncoderSettings & value)297     inline Channel& WithEncoderSettings(const EncoderSettings& value) { SetEncoderSettings(value); return *this;}
298 
299 
WithEncoderSettings(EncoderSettings && value)300     inline Channel& WithEncoderSettings(EncoderSettings&& value) { SetEncoderSettings(std::move(value)); return *this;}
301 
302 
303     /**
304      * The unique id of the channel.
305      */
GetId()306     inline const Aws::String& GetId() const{ return m_id; }
307 
308     /**
309      * The unique id of the channel.
310      */
IdHasBeenSet()311     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
312 
313     /**
314      * The unique id of the channel.
315      */
SetId(const Aws::String & value)316     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
317 
318     /**
319      * The unique id of the channel.
320      */
SetId(Aws::String && value)321     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
322 
323     /**
324      * The unique id of the channel.
325      */
SetId(const char * value)326     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
327 
328     /**
329      * The unique id of the channel.
330      */
WithId(const Aws::String & value)331     inline Channel& WithId(const Aws::String& value) { SetId(value); return *this;}
332 
333     /**
334      * The unique id of the channel.
335      */
WithId(Aws::String && value)336     inline Channel& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
337 
338     /**
339      * The unique id of the channel.
340      */
WithId(const char * value)341     inline Channel& WithId(const char* value) { SetId(value); return *this;}
342 
343 
344     /**
345      * List of input attachments for channel.
346      */
GetInputAttachments()347     inline const Aws::Vector<InputAttachment>& GetInputAttachments() const{ return m_inputAttachments; }
348 
349     /**
350      * List of input attachments for channel.
351      */
InputAttachmentsHasBeenSet()352     inline bool InputAttachmentsHasBeenSet() const { return m_inputAttachmentsHasBeenSet; }
353 
354     /**
355      * List of input attachments for channel.
356      */
SetInputAttachments(const Aws::Vector<InputAttachment> & value)357     inline void SetInputAttachments(const Aws::Vector<InputAttachment>& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments = value; }
358 
359     /**
360      * List of input attachments for channel.
361      */
SetInputAttachments(Aws::Vector<InputAttachment> && value)362     inline void SetInputAttachments(Aws::Vector<InputAttachment>&& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments = std::move(value); }
363 
364     /**
365      * List of input attachments for channel.
366      */
WithInputAttachments(const Aws::Vector<InputAttachment> & value)367     inline Channel& WithInputAttachments(const Aws::Vector<InputAttachment>& value) { SetInputAttachments(value); return *this;}
368 
369     /**
370      * List of input attachments for channel.
371      */
WithInputAttachments(Aws::Vector<InputAttachment> && value)372     inline Channel& WithInputAttachments(Aws::Vector<InputAttachment>&& value) { SetInputAttachments(std::move(value)); return *this;}
373 
374     /**
375      * List of input attachments for channel.
376      */
AddInputAttachments(const InputAttachment & value)377     inline Channel& AddInputAttachments(const InputAttachment& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments.push_back(value); return *this; }
378 
379     /**
380      * List of input attachments for channel.
381      */
AddInputAttachments(InputAttachment && value)382     inline Channel& AddInputAttachments(InputAttachment&& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments.push_back(std::move(value)); return *this; }
383 
384 
385     /**
386      * Specification of network and file inputs for this channel
387      */
GetInputSpecification()388     inline const InputSpecification& GetInputSpecification() const{ return m_inputSpecification; }
389 
390     /**
391      * Specification of network and file inputs for this channel
392      */
InputSpecificationHasBeenSet()393     inline bool InputSpecificationHasBeenSet() const { return m_inputSpecificationHasBeenSet; }
394 
395     /**
396      * Specification of network and file inputs for this channel
397      */
SetInputSpecification(const InputSpecification & value)398     inline void SetInputSpecification(const InputSpecification& value) { m_inputSpecificationHasBeenSet = true; m_inputSpecification = value; }
399 
400     /**
401      * Specification of network and file inputs for this channel
402      */
SetInputSpecification(InputSpecification && value)403     inline void SetInputSpecification(InputSpecification&& value) { m_inputSpecificationHasBeenSet = true; m_inputSpecification = std::move(value); }
404 
405     /**
406      * Specification of network and file inputs for this channel
407      */
WithInputSpecification(const InputSpecification & value)408     inline Channel& WithInputSpecification(const InputSpecification& value) { SetInputSpecification(value); return *this;}
409 
410     /**
411      * Specification of network and file inputs for this channel
412      */
WithInputSpecification(InputSpecification && value)413     inline Channel& WithInputSpecification(InputSpecification&& value) { SetInputSpecification(std::move(value)); return *this;}
414 
415 
416     /**
417      * The log level being written to CloudWatch Logs.
418      */
GetLogLevel()419     inline const LogLevel& GetLogLevel() const{ return m_logLevel; }
420 
421     /**
422      * The log level being written to CloudWatch Logs.
423      */
LogLevelHasBeenSet()424     inline bool LogLevelHasBeenSet() const { return m_logLevelHasBeenSet; }
425 
426     /**
427      * The log level being written to CloudWatch Logs.
428      */
SetLogLevel(const LogLevel & value)429     inline void SetLogLevel(const LogLevel& value) { m_logLevelHasBeenSet = true; m_logLevel = value; }
430 
431     /**
432      * The log level being written to CloudWatch Logs.
433      */
SetLogLevel(LogLevel && value)434     inline void SetLogLevel(LogLevel&& value) { m_logLevelHasBeenSet = true; m_logLevel = std::move(value); }
435 
436     /**
437      * The log level being written to CloudWatch Logs.
438      */
WithLogLevel(const LogLevel & value)439     inline Channel& WithLogLevel(const LogLevel& value) { SetLogLevel(value); return *this;}
440 
441     /**
442      * The log level being written to CloudWatch Logs.
443      */
WithLogLevel(LogLevel && value)444     inline Channel& WithLogLevel(LogLevel&& value) { SetLogLevel(std::move(value)); return *this;}
445 
446 
447     /**
448      * The name of the channel. (user-mutable)
449      */
GetName()450     inline const Aws::String& GetName() const{ return m_name; }
451 
452     /**
453      * The name of the channel. (user-mutable)
454      */
NameHasBeenSet()455     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
456 
457     /**
458      * The name of the channel. (user-mutable)
459      */
SetName(const Aws::String & value)460     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
461 
462     /**
463      * The name of the channel. (user-mutable)
464      */
SetName(Aws::String && value)465     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
466 
467     /**
468      * The name of the channel. (user-mutable)
469      */
SetName(const char * value)470     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
471 
472     /**
473      * The name of the channel. (user-mutable)
474      */
WithName(const Aws::String & value)475     inline Channel& WithName(const Aws::String& value) { SetName(value); return *this;}
476 
477     /**
478      * The name of the channel. (user-mutable)
479      */
WithName(Aws::String && value)480     inline Channel& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
481 
482     /**
483      * The name of the channel. (user-mutable)
484      */
WithName(const char * value)485     inline Channel& WithName(const char* value) { SetName(value); return *this;}
486 
487 
488     /**
489      * Runtime details for the pipelines of a running channel.
490      */
GetPipelineDetails()491     inline const Aws::Vector<PipelineDetail>& GetPipelineDetails() const{ return m_pipelineDetails; }
492 
493     /**
494      * Runtime details for the pipelines of a running channel.
495      */
PipelineDetailsHasBeenSet()496     inline bool PipelineDetailsHasBeenSet() const { return m_pipelineDetailsHasBeenSet; }
497 
498     /**
499      * Runtime details for the pipelines of a running channel.
500      */
SetPipelineDetails(const Aws::Vector<PipelineDetail> & value)501     inline void SetPipelineDetails(const Aws::Vector<PipelineDetail>& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails = value; }
502 
503     /**
504      * Runtime details for the pipelines of a running channel.
505      */
SetPipelineDetails(Aws::Vector<PipelineDetail> && value)506     inline void SetPipelineDetails(Aws::Vector<PipelineDetail>&& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails = std::move(value); }
507 
508     /**
509      * Runtime details for the pipelines of a running channel.
510      */
WithPipelineDetails(const Aws::Vector<PipelineDetail> & value)511     inline Channel& WithPipelineDetails(const Aws::Vector<PipelineDetail>& value) { SetPipelineDetails(value); return *this;}
512 
513     /**
514      * Runtime details for the pipelines of a running channel.
515      */
WithPipelineDetails(Aws::Vector<PipelineDetail> && value)516     inline Channel& WithPipelineDetails(Aws::Vector<PipelineDetail>&& value) { SetPipelineDetails(std::move(value)); return *this;}
517 
518     /**
519      * Runtime details for the pipelines of a running channel.
520      */
AddPipelineDetails(const PipelineDetail & value)521     inline Channel& AddPipelineDetails(const PipelineDetail& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails.push_back(value); return *this; }
522 
523     /**
524      * Runtime details for the pipelines of a running channel.
525      */
AddPipelineDetails(PipelineDetail && value)526     inline Channel& AddPipelineDetails(PipelineDetail&& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails.push_back(std::move(value)); return *this; }
527 
528 
529     /**
530      * The number of currently healthy pipelines.
531      */
GetPipelinesRunningCount()532     inline int GetPipelinesRunningCount() const{ return m_pipelinesRunningCount; }
533 
534     /**
535      * The number of currently healthy pipelines.
536      */
PipelinesRunningCountHasBeenSet()537     inline bool PipelinesRunningCountHasBeenSet() const { return m_pipelinesRunningCountHasBeenSet; }
538 
539     /**
540      * The number of currently healthy pipelines.
541      */
SetPipelinesRunningCount(int value)542     inline void SetPipelinesRunningCount(int value) { m_pipelinesRunningCountHasBeenSet = true; m_pipelinesRunningCount = value; }
543 
544     /**
545      * The number of currently healthy pipelines.
546      */
WithPipelinesRunningCount(int value)547     inline Channel& WithPipelinesRunningCount(int value) { SetPipelinesRunningCount(value); return *this;}
548 
549 
550     /**
551      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
552      */
GetRoleArn()553     inline const Aws::String& GetRoleArn() const{ return m_roleArn; }
554 
555     /**
556      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
557      */
RoleArnHasBeenSet()558     inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; }
559 
560     /**
561      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
562      */
SetRoleArn(const Aws::String & value)563     inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; }
564 
565     /**
566      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
567      */
SetRoleArn(Aws::String && value)568     inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); }
569 
570     /**
571      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
572      */
SetRoleArn(const char * value)573     inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); }
574 
575     /**
576      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
577      */
WithRoleArn(const Aws::String & value)578     inline Channel& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;}
579 
580     /**
581      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
582      */
WithRoleArn(Aws::String && value)583     inline Channel& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;}
584 
585     /**
586      * The Amazon Resource Name (ARN) of the role assumed when running the Channel.
587      */
WithRoleArn(const char * value)588     inline Channel& WithRoleArn(const char* value) { SetRoleArn(value); return *this;}
589 
590 
591 
GetState()592     inline const ChannelState& GetState() const{ return m_state; }
593 
594 
StateHasBeenSet()595     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
596 
597 
SetState(const ChannelState & value)598     inline void SetState(const ChannelState& value) { m_stateHasBeenSet = true; m_state = value; }
599 
600 
SetState(ChannelState && value)601     inline void SetState(ChannelState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
602 
603 
WithState(const ChannelState & value)604     inline Channel& WithState(const ChannelState& value) { SetState(value); return *this;}
605 
606 
WithState(ChannelState && value)607     inline Channel& WithState(ChannelState&& value) { SetState(std::move(value)); return *this;}
608 
609 
610     /**
611      * A collection of key-value pairs.
612      */
GetTags()613     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
614 
615     /**
616      * A collection of key-value pairs.
617      */
TagsHasBeenSet()618     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
619 
620     /**
621      * A collection of key-value pairs.
622      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)623     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
624 
625     /**
626      * A collection of key-value pairs.
627      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)628     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
629 
630     /**
631      * A collection of key-value pairs.
632      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)633     inline Channel& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
634 
635     /**
636      * A collection of key-value pairs.
637      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)638     inline Channel& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
639 
640     /**
641      * A collection of key-value pairs.
642      */
AddTags(const Aws::String & key,const Aws::String & value)643     inline Channel& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
644 
645     /**
646      * A collection of key-value pairs.
647      */
AddTags(Aws::String && key,const Aws::String & value)648     inline Channel& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
649 
650     /**
651      * A collection of key-value pairs.
652      */
AddTags(const Aws::String & key,Aws::String && value)653     inline Channel& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
654 
655     /**
656      * A collection of key-value pairs.
657      */
AddTags(Aws::String && key,Aws::String && value)658     inline Channel& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
659 
660     /**
661      * A collection of key-value pairs.
662      */
AddTags(const char * key,Aws::String && value)663     inline Channel& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
664 
665     /**
666      * A collection of key-value pairs.
667      */
AddTags(Aws::String && key,const char * value)668     inline Channel& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
669 
670     /**
671      * A collection of key-value pairs.
672      */
AddTags(const char * key,const char * value)673     inline Channel& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
674 
675 
676     /**
677      * Settings for VPC output
678      */
GetVpc()679     inline const VpcOutputSettingsDescription& GetVpc() const{ return m_vpc; }
680 
681     /**
682      * Settings for VPC output
683      */
VpcHasBeenSet()684     inline bool VpcHasBeenSet() const { return m_vpcHasBeenSet; }
685 
686     /**
687      * Settings for VPC output
688      */
SetVpc(const VpcOutputSettingsDescription & value)689     inline void SetVpc(const VpcOutputSettingsDescription& value) { m_vpcHasBeenSet = true; m_vpc = value; }
690 
691     /**
692      * Settings for VPC output
693      */
SetVpc(VpcOutputSettingsDescription && value)694     inline void SetVpc(VpcOutputSettingsDescription&& value) { m_vpcHasBeenSet = true; m_vpc = std::move(value); }
695 
696     /**
697      * Settings for VPC output
698      */
WithVpc(const VpcOutputSettingsDescription & value)699     inline Channel& WithVpc(const VpcOutputSettingsDescription& value) { SetVpc(value); return *this;}
700 
701     /**
702      * Settings for VPC output
703      */
WithVpc(VpcOutputSettingsDescription && value)704     inline Channel& WithVpc(VpcOutputSettingsDescription&& value) { SetVpc(std::move(value)); return *this;}
705 
706   private:
707 
708     Aws::String m_arn;
709     bool m_arnHasBeenSet;
710 
711     CdiInputSpecification m_cdiInputSpecification;
712     bool m_cdiInputSpecificationHasBeenSet;
713 
714     ChannelClass m_channelClass;
715     bool m_channelClassHasBeenSet;
716 
717     Aws::Vector<OutputDestination> m_destinations;
718     bool m_destinationsHasBeenSet;
719 
720     Aws::Vector<ChannelEgressEndpoint> m_egressEndpoints;
721     bool m_egressEndpointsHasBeenSet;
722 
723     EncoderSettings m_encoderSettings;
724     bool m_encoderSettingsHasBeenSet;
725 
726     Aws::String m_id;
727     bool m_idHasBeenSet;
728 
729     Aws::Vector<InputAttachment> m_inputAttachments;
730     bool m_inputAttachmentsHasBeenSet;
731 
732     InputSpecification m_inputSpecification;
733     bool m_inputSpecificationHasBeenSet;
734 
735     LogLevel m_logLevel;
736     bool m_logLevelHasBeenSet;
737 
738     Aws::String m_name;
739     bool m_nameHasBeenSet;
740 
741     Aws::Vector<PipelineDetail> m_pipelineDetails;
742     bool m_pipelineDetailsHasBeenSet;
743 
744     int m_pipelinesRunningCount;
745     bool m_pipelinesRunningCountHasBeenSet;
746 
747     Aws::String m_roleArn;
748     bool m_roleArnHasBeenSet;
749 
750     ChannelState m_state;
751     bool m_stateHasBeenSet;
752 
753     Aws::Map<Aws::String, Aws::String> m_tags;
754     bool m_tagsHasBeenSet;
755 
756     VpcOutputSettingsDescription m_vpc;
757     bool m_vpcHasBeenSet;
758   };
759 
760 } // namespace Model
761 } // namespace MediaLive
762 } // namespace Aws
763