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/MultiplexProgramSettings.h>
10 #include <aws/medialive/model/MultiplexProgramPacketIdentifiersMap.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/medialive/model/MultiplexProgramPipelineDetail.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace MediaLive
26 {
27 namespace Model
28 {
29 
30   /**
31    * The multiplex program object.<p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/MultiplexProgram">AWS
33    * API Reference</a></p>
34    */
35   class AWS_MEDIALIVE_API MultiplexProgram
36   {
37   public:
38     MultiplexProgram();
39     MultiplexProgram(Aws::Utils::Json::JsonView jsonValue);
40     MultiplexProgram& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * The MediaLive channel associated with the program.
46      */
GetChannelId()47     inline const Aws::String& GetChannelId() const{ return m_channelId; }
48 
49     /**
50      * The MediaLive channel associated with the program.
51      */
ChannelIdHasBeenSet()52     inline bool ChannelIdHasBeenSet() const { return m_channelIdHasBeenSet; }
53 
54     /**
55      * The MediaLive channel associated with the program.
56      */
SetChannelId(const Aws::String & value)57     inline void SetChannelId(const Aws::String& value) { m_channelIdHasBeenSet = true; m_channelId = value; }
58 
59     /**
60      * The MediaLive channel associated with the program.
61      */
SetChannelId(Aws::String && value)62     inline void SetChannelId(Aws::String&& value) { m_channelIdHasBeenSet = true; m_channelId = std::move(value); }
63 
64     /**
65      * The MediaLive channel associated with the program.
66      */
SetChannelId(const char * value)67     inline void SetChannelId(const char* value) { m_channelIdHasBeenSet = true; m_channelId.assign(value); }
68 
69     /**
70      * The MediaLive channel associated with the program.
71      */
WithChannelId(const Aws::String & value)72     inline MultiplexProgram& WithChannelId(const Aws::String& value) { SetChannelId(value); return *this;}
73 
74     /**
75      * The MediaLive channel associated with the program.
76      */
WithChannelId(Aws::String && value)77     inline MultiplexProgram& WithChannelId(Aws::String&& value) { SetChannelId(std::move(value)); return *this;}
78 
79     /**
80      * The MediaLive channel associated with the program.
81      */
WithChannelId(const char * value)82     inline MultiplexProgram& WithChannelId(const char* value) { SetChannelId(value); return *this;}
83 
84 
85     /**
86      * The settings for this multiplex program.
87      */
GetMultiplexProgramSettings()88     inline const MultiplexProgramSettings& GetMultiplexProgramSettings() const{ return m_multiplexProgramSettings; }
89 
90     /**
91      * The settings for this multiplex program.
92      */
MultiplexProgramSettingsHasBeenSet()93     inline bool MultiplexProgramSettingsHasBeenSet() const { return m_multiplexProgramSettingsHasBeenSet; }
94 
95     /**
96      * The settings for this multiplex program.
97      */
SetMultiplexProgramSettings(const MultiplexProgramSettings & value)98     inline void SetMultiplexProgramSettings(const MultiplexProgramSettings& value) { m_multiplexProgramSettingsHasBeenSet = true; m_multiplexProgramSettings = value; }
99 
100     /**
101      * The settings for this multiplex program.
102      */
SetMultiplexProgramSettings(MultiplexProgramSettings && value)103     inline void SetMultiplexProgramSettings(MultiplexProgramSettings&& value) { m_multiplexProgramSettingsHasBeenSet = true; m_multiplexProgramSettings = std::move(value); }
104 
105     /**
106      * The settings for this multiplex program.
107      */
WithMultiplexProgramSettings(const MultiplexProgramSettings & value)108     inline MultiplexProgram& WithMultiplexProgramSettings(const MultiplexProgramSettings& value) { SetMultiplexProgramSettings(value); return *this;}
109 
110     /**
111      * The settings for this multiplex program.
112      */
WithMultiplexProgramSettings(MultiplexProgramSettings && value)113     inline MultiplexProgram& WithMultiplexProgramSettings(MultiplexProgramSettings&& value) { SetMultiplexProgramSettings(std::move(value)); return *this;}
114 
115 
116     /**
117      * The packet identifier map for this multiplex program.
118      */
GetPacketIdentifiersMap()119     inline const MultiplexProgramPacketIdentifiersMap& GetPacketIdentifiersMap() const{ return m_packetIdentifiersMap; }
120 
121     /**
122      * The packet identifier map for this multiplex program.
123      */
PacketIdentifiersMapHasBeenSet()124     inline bool PacketIdentifiersMapHasBeenSet() const { return m_packetIdentifiersMapHasBeenSet; }
125 
126     /**
127      * The packet identifier map for this multiplex program.
128      */
SetPacketIdentifiersMap(const MultiplexProgramPacketIdentifiersMap & value)129     inline void SetPacketIdentifiersMap(const MultiplexProgramPacketIdentifiersMap& value) { m_packetIdentifiersMapHasBeenSet = true; m_packetIdentifiersMap = value; }
130 
131     /**
132      * The packet identifier map for this multiplex program.
133      */
SetPacketIdentifiersMap(MultiplexProgramPacketIdentifiersMap && value)134     inline void SetPacketIdentifiersMap(MultiplexProgramPacketIdentifiersMap&& value) { m_packetIdentifiersMapHasBeenSet = true; m_packetIdentifiersMap = std::move(value); }
135 
136     /**
137      * The packet identifier map for this multiplex program.
138      */
WithPacketIdentifiersMap(const MultiplexProgramPacketIdentifiersMap & value)139     inline MultiplexProgram& WithPacketIdentifiersMap(const MultiplexProgramPacketIdentifiersMap& value) { SetPacketIdentifiersMap(value); return *this;}
140 
141     /**
142      * The packet identifier map for this multiplex program.
143      */
WithPacketIdentifiersMap(MultiplexProgramPacketIdentifiersMap && value)144     inline MultiplexProgram& WithPacketIdentifiersMap(MultiplexProgramPacketIdentifiersMap&& value) { SetPacketIdentifiersMap(std::move(value)); return *this;}
145 
146 
147     /**
148      * Contains information about the current sources for the specified program in the
149      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
150      * pipelines in a given source channel (the channel identified by the program). But
151      * only one of those channel pipelines is ever active at one time.
152      */
GetPipelineDetails()153     inline const Aws::Vector<MultiplexProgramPipelineDetail>& GetPipelineDetails() const{ return m_pipelineDetails; }
154 
155     /**
156      * Contains information about the current sources for the specified program in the
157      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
158      * pipelines in a given source channel (the channel identified by the program). But
159      * only one of those channel pipelines is ever active at one time.
160      */
PipelineDetailsHasBeenSet()161     inline bool PipelineDetailsHasBeenSet() const { return m_pipelineDetailsHasBeenSet; }
162 
163     /**
164      * Contains information about the current sources for the specified program in the
165      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
166      * pipelines in a given source channel (the channel identified by the program). But
167      * only one of those channel pipelines is ever active at one time.
168      */
SetPipelineDetails(const Aws::Vector<MultiplexProgramPipelineDetail> & value)169     inline void SetPipelineDetails(const Aws::Vector<MultiplexProgramPipelineDetail>& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails = value; }
170 
171     /**
172      * Contains information about the current sources for the specified program in the
173      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
174      * pipelines in a given source channel (the channel identified by the program). But
175      * only one of those channel pipelines is ever active at one time.
176      */
SetPipelineDetails(Aws::Vector<MultiplexProgramPipelineDetail> && value)177     inline void SetPipelineDetails(Aws::Vector<MultiplexProgramPipelineDetail>&& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails = std::move(value); }
178 
179     /**
180      * Contains information about the current sources for the specified program in the
181      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
182      * pipelines in a given source channel (the channel identified by the program). But
183      * only one of those channel pipelines is ever active at one time.
184      */
WithPipelineDetails(const Aws::Vector<MultiplexProgramPipelineDetail> & value)185     inline MultiplexProgram& WithPipelineDetails(const Aws::Vector<MultiplexProgramPipelineDetail>& value) { SetPipelineDetails(value); return *this;}
186 
187     /**
188      * Contains information about the current sources for the specified program in the
189      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
190      * pipelines in a given source channel (the channel identified by the program). But
191      * only one of those channel pipelines is ever active at one time.
192      */
WithPipelineDetails(Aws::Vector<MultiplexProgramPipelineDetail> && value)193     inline MultiplexProgram& WithPipelineDetails(Aws::Vector<MultiplexProgramPipelineDetail>&& value) { SetPipelineDetails(std::move(value)); return *this;}
194 
195     /**
196      * Contains information about the current sources for the specified program in the
197      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
198      * pipelines in a given source channel (the channel identified by the program). But
199      * only one of those channel pipelines is ever active at one time.
200      */
AddPipelineDetails(const MultiplexProgramPipelineDetail & value)201     inline MultiplexProgram& AddPipelineDetails(const MultiplexProgramPipelineDetail& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails.push_back(value); return *this; }
202 
203     /**
204      * Contains information about the current sources for the specified program in the
205      * specified multiplex. Keep in mind that each multiplex pipeline connects to both
206      * pipelines in a given source channel (the channel identified by the program). But
207      * only one of those channel pipelines is ever active at one time.
208      */
AddPipelineDetails(MultiplexProgramPipelineDetail && value)209     inline MultiplexProgram& AddPipelineDetails(MultiplexProgramPipelineDetail&& value) { m_pipelineDetailsHasBeenSet = true; m_pipelineDetails.push_back(std::move(value)); return *this; }
210 
211 
212     /**
213      * The name of the multiplex program.
214      */
GetProgramName()215     inline const Aws::String& GetProgramName() const{ return m_programName; }
216 
217     /**
218      * The name of the multiplex program.
219      */
ProgramNameHasBeenSet()220     inline bool ProgramNameHasBeenSet() const { return m_programNameHasBeenSet; }
221 
222     /**
223      * The name of the multiplex program.
224      */
SetProgramName(const Aws::String & value)225     inline void SetProgramName(const Aws::String& value) { m_programNameHasBeenSet = true; m_programName = value; }
226 
227     /**
228      * The name of the multiplex program.
229      */
SetProgramName(Aws::String && value)230     inline void SetProgramName(Aws::String&& value) { m_programNameHasBeenSet = true; m_programName = std::move(value); }
231 
232     /**
233      * The name of the multiplex program.
234      */
SetProgramName(const char * value)235     inline void SetProgramName(const char* value) { m_programNameHasBeenSet = true; m_programName.assign(value); }
236 
237     /**
238      * The name of the multiplex program.
239      */
WithProgramName(const Aws::String & value)240     inline MultiplexProgram& WithProgramName(const Aws::String& value) { SetProgramName(value); return *this;}
241 
242     /**
243      * The name of the multiplex program.
244      */
WithProgramName(Aws::String && value)245     inline MultiplexProgram& WithProgramName(Aws::String&& value) { SetProgramName(std::move(value)); return *this;}
246 
247     /**
248      * The name of the multiplex program.
249      */
WithProgramName(const char * value)250     inline MultiplexProgram& WithProgramName(const char* value) { SetProgramName(value); return *this;}
251 
252   private:
253 
254     Aws::String m_channelId;
255     bool m_channelIdHasBeenSet;
256 
257     MultiplexProgramSettings m_multiplexProgramSettings;
258     bool m_multiplexProgramSettingsHasBeenSet;
259 
260     MultiplexProgramPacketIdentifiersMap m_packetIdentifiersMap;
261     bool m_packetIdentifiersMapHasBeenSet;
262 
263     Aws::Vector<MultiplexProgramPipelineDetail> m_pipelineDetails;
264     bool m_pipelineDetailsHasBeenSet;
265 
266     Aws::String m_programName;
267     bool m_programNameHasBeenSet;
268   };
269 
270 } // namespace Model
271 } // namespace MediaLive
272 } // namespace Aws
273