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/core/utils/memory/stl/AWSVector.h>
10 #include <aws/medialive/model/MultiplexSettings.h>
11 #include <aws/medialive/model/MultiplexState.h>
12 #include <aws/core/utils/memory/stl/AWSMap.h>
13 #include <aws/medialive/model/MultiplexOutputDestination.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 MediaLive
27 {
28 namespace Model
29 {
30 
31   /**
32    * The multiplex object.<p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/Multiplex">AWS
34    * API Reference</a></p>
35    */
36   class AWS_MEDIALIVE_API Multiplex
37   {
38   public:
39     Multiplex();
40     Multiplex(Aws::Utils::Json::JsonView jsonValue);
41     Multiplex& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * The unique arn of the multiplex.
47      */
GetArn()48     inline const Aws::String& GetArn() const{ return m_arn; }
49 
50     /**
51      * The unique arn of the multiplex.
52      */
ArnHasBeenSet()53     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
54 
55     /**
56      * The unique arn of the multiplex.
57      */
SetArn(const Aws::String & value)58     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
59 
60     /**
61      * The unique arn of the multiplex.
62      */
SetArn(Aws::String && value)63     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
64 
65     /**
66      * The unique arn of the multiplex.
67      */
SetArn(const char * value)68     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
69 
70     /**
71      * The unique arn of the multiplex.
72      */
WithArn(const Aws::String & value)73     inline Multiplex& WithArn(const Aws::String& value) { SetArn(value); return *this;}
74 
75     /**
76      * The unique arn of the multiplex.
77      */
WithArn(Aws::String && value)78     inline Multiplex& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
79 
80     /**
81      * The unique arn of the multiplex.
82      */
WithArn(const char * value)83     inline Multiplex& WithArn(const char* value) { SetArn(value); return *this;}
84 
85 
86     /**
87      * A list of availability zones for the multiplex.
88      */
GetAvailabilityZones()89     inline const Aws::Vector<Aws::String>& GetAvailabilityZones() const{ return m_availabilityZones; }
90 
91     /**
92      * A list of availability zones for the multiplex.
93      */
AvailabilityZonesHasBeenSet()94     inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; }
95 
96     /**
97      * A list of availability zones for the multiplex.
98      */
SetAvailabilityZones(const Aws::Vector<Aws::String> & value)99     inline void SetAvailabilityZones(const Aws::Vector<Aws::String>& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = value; }
100 
101     /**
102      * A list of availability zones for the multiplex.
103      */
SetAvailabilityZones(Aws::Vector<Aws::String> && value)104     inline void SetAvailabilityZones(Aws::Vector<Aws::String>&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = std::move(value); }
105 
106     /**
107      * A list of availability zones for the multiplex.
108      */
WithAvailabilityZones(const Aws::Vector<Aws::String> & value)109     inline Multiplex& WithAvailabilityZones(const Aws::Vector<Aws::String>& value) { SetAvailabilityZones(value); return *this;}
110 
111     /**
112      * A list of availability zones for the multiplex.
113      */
WithAvailabilityZones(Aws::Vector<Aws::String> && value)114     inline Multiplex& WithAvailabilityZones(Aws::Vector<Aws::String>&& value) { SetAvailabilityZones(std::move(value)); return *this;}
115 
116     /**
117      * A list of availability zones for the multiplex.
118      */
AddAvailabilityZones(const Aws::String & value)119     inline Multiplex& AddAvailabilityZones(const Aws::String& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
120 
121     /**
122      * A list of availability zones for the multiplex.
123      */
AddAvailabilityZones(Aws::String && value)124     inline Multiplex& AddAvailabilityZones(Aws::String&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(std::move(value)); return *this; }
125 
126     /**
127      * A list of availability zones for the multiplex.
128      */
AddAvailabilityZones(const char * value)129     inline Multiplex& AddAvailabilityZones(const char* value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
130 
131 
132     /**
133      * A list of the multiplex output destinations.
134      */
GetDestinations()135     inline const Aws::Vector<MultiplexOutputDestination>& GetDestinations() const{ return m_destinations; }
136 
137     /**
138      * A list of the multiplex output destinations.
139      */
DestinationsHasBeenSet()140     inline bool DestinationsHasBeenSet() const { return m_destinationsHasBeenSet; }
141 
142     /**
143      * A list of the multiplex output destinations.
144      */
SetDestinations(const Aws::Vector<MultiplexOutputDestination> & value)145     inline void SetDestinations(const Aws::Vector<MultiplexOutputDestination>& value) { m_destinationsHasBeenSet = true; m_destinations = value; }
146 
147     /**
148      * A list of the multiplex output destinations.
149      */
SetDestinations(Aws::Vector<MultiplexOutputDestination> && value)150     inline void SetDestinations(Aws::Vector<MultiplexOutputDestination>&& value) { m_destinationsHasBeenSet = true; m_destinations = std::move(value); }
151 
152     /**
153      * A list of the multiplex output destinations.
154      */
WithDestinations(const Aws::Vector<MultiplexOutputDestination> & value)155     inline Multiplex& WithDestinations(const Aws::Vector<MultiplexOutputDestination>& value) { SetDestinations(value); return *this;}
156 
157     /**
158      * A list of the multiplex output destinations.
159      */
WithDestinations(Aws::Vector<MultiplexOutputDestination> && value)160     inline Multiplex& WithDestinations(Aws::Vector<MultiplexOutputDestination>&& value) { SetDestinations(std::move(value)); return *this;}
161 
162     /**
163      * A list of the multiplex output destinations.
164      */
AddDestinations(const MultiplexOutputDestination & value)165     inline Multiplex& AddDestinations(const MultiplexOutputDestination& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; }
166 
167     /**
168      * A list of the multiplex output destinations.
169      */
AddDestinations(MultiplexOutputDestination && value)170     inline Multiplex& AddDestinations(MultiplexOutputDestination&& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(std::move(value)); return *this; }
171 
172 
173     /**
174      * The unique id of the multiplex.
175      */
GetId()176     inline const Aws::String& GetId() const{ return m_id; }
177 
178     /**
179      * The unique id of the multiplex.
180      */
IdHasBeenSet()181     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
182 
183     /**
184      * The unique id of the multiplex.
185      */
SetId(const Aws::String & value)186     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
187 
188     /**
189      * The unique id of the multiplex.
190      */
SetId(Aws::String && value)191     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
192 
193     /**
194      * The unique id of the multiplex.
195      */
SetId(const char * value)196     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
197 
198     /**
199      * The unique id of the multiplex.
200      */
WithId(const Aws::String & value)201     inline Multiplex& WithId(const Aws::String& value) { SetId(value); return *this;}
202 
203     /**
204      * The unique id of the multiplex.
205      */
WithId(Aws::String && value)206     inline Multiplex& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
207 
208     /**
209      * The unique id of the multiplex.
210      */
WithId(const char * value)211     inline Multiplex& WithId(const char* value) { SetId(value); return *this;}
212 
213 
214     /**
215      * Configuration for a multiplex event.
216      */
GetMultiplexSettings()217     inline const MultiplexSettings& GetMultiplexSettings() const{ return m_multiplexSettings; }
218 
219     /**
220      * Configuration for a multiplex event.
221      */
MultiplexSettingsHasBeenSet()222     inline bool MultiplexSettingsHasBeenSet() const { return m_multiplexSettingsHasBeenSet; }
223 
224     /**
225      * Configuration for a multiplex event.
226      */
SetMultiplexSettings(const MultiplexSettings & value)227     inline void SetMultiplexSettings(const MultiplexSettings& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = value; }
228 
229     /**
230      * Configuration for a multiplex event.
231      */
SetMultiplexSettings(MultiplexSettings && value)232     inline void SetMultiplexSettings(MultiplexSettings&& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = std::move(value); }
233 
234     /**
235      * Configuration for a multiplex event.
236      */
WithMultiplexSettings(const MultiplexSettings & value)237     inline Multiplex& WithMultiplexSettings(const MultiplexSettings& value) { SetMultiplexSettings(value); return *this;}
238 
239     /**
240      * Configuration for a multiplex event.
241      */
WithMultiplexSettings(MultiplexSettings && value)242     inline Multiplex& WithMultiplexSettings(MultiplexSettings&& value) { SetMultiplexSettings(std::move(value)); return *this;}
243 
244 
245     /**
246      * The name of the multiplex.
247      */
GetName()248     inline const Aws::String& GetName() const{ return m_name; }
249 
250     /**
251      * The name of the multiplex.
252      */
NameHasBeenSet()253     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
254 
255     /**
256      * The name of the multiplex.
257      */
SetName(const Aws::String & value)258     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
259 
260     /**
261      * The name of the multiplex.
262      */
SetName(Aws::String && value)263     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
264 
265     /**
266      * The name of the multiplex.
267      */
SetName(const char * value)268     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
269 
270     /**
271      * The name of the multiplex.
272      */
WithName(const Aws::String & value)273     inline Multiplex& WithName(const Aws::String& value) { SetName(value); return *this;}
274 
275     /**
276      * The name of the multiplex.
277      */
WithName(Aws::String && value)278     inline Multiplex& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
279 
280     /**
281      * The name of the multiplex.
282      */
WithName(const char * value)283     inline Multiplex& WithName(const char* value) { SetName(value); return *this;}
284 
285 
286     /**
287      * The number of currently healthy pipelines.
288      */
GetPipelinesRunningCount()289     inline int GetPipelinesRunningCount() const{ return m_pipelinesRunningCount; }
290 
291     /**
292      * The number of currently healthy pipelines.
293      */
PipelinesRunningCountHasBeenSet()294     inline bool PipelinesRunningCountHasBeenSet() const { return m_pipelinesRunningCountHasBeenSet; }
295 
296     /**
297      * The number of currently healthy pipelines.
298      */
SetPipelinesRunningCount(int value)299     inline void SetPipelinesRunningCount(int value) { m_pipelinesRunningCountHasBeenSet = true; m_pipelinesRunningCount = value; }
300 
301     /**
302      * The number of currently healthy pipelines.
303      */
WithPipelinesRunningCount(int value)304     inline Multiplex& WithPipelinesRunningCount(int value) { SetPipelinesRunningCount(value); return *this;}
305 
306 
307     /**
308      * The number of programs in the multiplex.
309      */
GetProgramCount()310     inline int GetProgramCount() const{ return m_programCount; }
311 
312     /**
313      * The number of programs in the multiplex.
314      */
ProgramCountHasBeenSet()315     inline bool ProgramCountHasBeenSet() const { return m_programCountHasBeenSet; }
316 
317     /**
318      * The number of programs in the multiplex.
319      */
SetProgramCount(int value)320     inline void SetProgramCount(int value) { m_programCountHasBeenSet = true; m_programCount = value; }
321 
322     /**
323      * The number of programs in the multiplex.
324      */
WithProgramCount(int value)325     inline Multiplex& WithProgramCount(int value) { SetProgramCount(value); return *this;}
326 
327 
328     /**
329      * The current state of the multiplex.
330      */
GetState()331     inline const MultiplexState& GetState() const{ return m_state; }
332 
333     /**
334      * The current state of the multiplex.
335      */
StateHasBeenSet()336     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
337 
338     /**
339      * The current state of the multiplex.
340      */
SetState(const MultiplexState & value)341     inline void SetState(const MultiplexState& value) { m_stateHasBeenSet = true; m_state = value; }
342 
343     /**
344      * The current state of the multiplex.
345      */
SetState(MultiplexState && value)346     inline void SetState(MultiplexState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
347 
348     /**
349      * The current state of the multiplex.
350      */
WithState(const MultiplexState & value)351     inline Multiplex& WithState(const MultiplexState& value) { SetState(value); return *this;}
352 
353     /**
354      * The current state of the multiplex.
355      */
WithState(MultiplexState && value)356     inline Multiplex& WithState(MultiplexState&& value) { SetState(std::move(value)); return *this;}
357 
358 
359     /**
360      * A collection of key-value pairs.
361      */
GetTags()362     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
363 
364     /**
365      * A collection of key-value pairs.
366      */
TagsHasBeenSet()367     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
368 
369     /**
370      * A collection of key-value pairs.
371      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)372     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
373 
374     /**
375      * A collection of key-value pairs.
376      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)377     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
378 
379     /**
380      * A collection of key-value pairs.
381      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)382     inline Multiplex& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
383 
384     /**
385      * A collection of key-value pairs.
386      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)387     inline Multiplex& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
388 
389     /**
390      * A collection of key-value pairs.
391      */
AddTags(const Aws::String & key,const Aws::String & value)392     inline Multiplex& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
393 
394     /**
395      * A collection of key-value pairs.
396      */
AddTags(Aws::String && key,const Aws::String & value)397     inline Multiplex& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
398 
399     /**
400      * A collection of key-value pairs.
401      */
AddTags(const Aws::String & key,Aws::String && value)402     inline Multiplex& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
403 
404     /**
405      * A collection of key-value pairs.
406      */
AddTags(Aws::String && key,Aws::String && value)407     inline Multiplex& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
408 
409     /**
410      * A collection of key-value pairs.
411      */
AddTags(const char * key,Aws::String && value)412     inline Multiplex& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
413 
414     /**
415      * A collection of key-value pairs.
416      */
AddTags(Aws::String && key,const char * value)417     inline Multiplex& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
418 
419     /**
420      * A collection of key-value pairs.
421      */
AddTags(const char * key,const char * value)422     inline Multiplex& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
423 
424   private:
425 
426     Aws::String m_arn;
427     bool m_arnHasBeenSet;
428 
429     Aws::Vector<Aws::String> m_availabilityZones;
430     bool m_availabilityZonesHasBeenSet;
431 
432     Aws::Vector<MultiplexOutputDestination> m_destinations;
433     bool m_destinationsHasBeenSet;
434 
435     Aws::String m_id;
436     bool m_idHasBeenSet;
437 
438     MultiplexSettings m_multiplexSettings;
439     bool m_multiplexSettingsHasBeenSet;
440 
441     Aws::String m_name;
442     bool m_nameHasBeenSet;
443 
444     int m_pipelinesRunningCount;
445     bool m_pipelinesRunningCountHasBeenSet;
446 
447     int m_programCount;
448     bool m_programCountHasBeenSet;
449 
450     MultiplexState m_state;
451     bool m_stateHasBeenSet;
452 
453     Aws::Map<Aws::String, Aws::String> m_tags;
454     bool m_tagsHasBeenSet;
455   };
456 
457 } // namespace Model
458 } // namespace MediaLive
459 } // namespace Aws
460