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 template<typename RESULT_TYPE>
19 class AmazonWebServiceResult;
20 
21 namespace Utils
22 {
23 namespace Json
24 {
25   class JsonValue;
26 } // namespace Json
27 } // namespace Utils
28 namespace MediaLive
29 {
30 namespace Model
31 {
32   /**
33    * Placeholder documentation for StartMultiplexResponse<p><h3>See Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/StartMultiplexResponse">AWS
35    * API Reference</a></p>
36    */
37   class AWS_MEDIALIVE_API StartMultiplexResult
38   {
39   public:
40     StartMultiplexResult();
41     StartMultiplexResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
42     StartMultiplexResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
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      */
SetArn(const Aws::String & value)53     inline void SetArn(const Aws::String& value) { m_arn = value; }
54 
55     /**
56      * The unique arn of the multiplex.
57      */
SetArn(Aws::String && value)58     inline void SetArn(Aws::String&& value) { m_arn = std::move(value); }
59 
60     /**
61      * The unique arn of the multiplex.
62      */
SetArn(const char * value)63     inline void SetArn(const char* value) { m_arn.assign(value); }
64 
65     /**
66      * The unique arn of the multiplex.
67      */
WithArn(const Aws::String & value)68     inline StartMultiplexResult& WithArn(const Aws::String& value) { SetArn(value); return *this;}
69 
70     /**
71      * The unique arn of the multiplex.
72      */
WithArn(Aws::String && value)73     inline StartMultiplexResult& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
74 
75     /**
76      * The unique arn of the multiplex.
77      */
WithArn(const char * value)78     inline StartMultiplexResult& WithArn(const char* value) { SetArn(value); return *this;}
79 
80 
81     /**
82      * A list of availability zones for the multiplex.
83      */
GetAvailabilityZones()84     inline const Aws::Vector<Aws::String>& GetAvailabilityZones() const{ return m_availabilityZones; }
85 
86     /**
87      * A list of availability zones for the multiplex.
88      */
SetAvailabilityZones(const Aws::Vector<Aws::String> & value)89     inline void SetAvailabilityZones(const Aws::Vector<Aws::String>& value) { m_availabilityZones = value; }
90 
91     /**
92      * A list of availability zones for the multiplex.
93      */
SetAvailabilityZones(Aws::Vector<Aws::String> && value)94     inline void SetAvailabilityZones(Aws::Vector<Aws::String>&& value) { m_availabilityZones = std::move(value); }
95 
96     /**
97      * A list of availability zones for the multiplex.
98      */
WithAvailabilityZones(const Aws::Vector<Aws::String> & value)99     inline StartMultiplexResult& WithAvailabilityZones(const Aws::Vector<Aws::String>& value) { SetAvailabilityZones(value); return *this;}
100 
101     /**
102      * A list of availability zones for the multiplex.
103      */
WithAvailabilityZones(Aws::Vector<Aws::String> && value)104     inline StartMultiplexResult& WithAvailabilityZones(Aws::Vector<Aws::String>&& value) { SetAvailabilityZones(std::move(value)); return *this;}
105 
106     /**
107      * A list of availability zones for the multiplex.
108      */
AddAvailabilityZones(const Aws::String & value)109     inline StartMultiplexResult& AddAvailabilityZones(const Aws::String& value) { m_availabilityZones.push_back(value); return *this; }
110 
111     /**
112      * A list of availability zones for the multiplex.
113      */
AddAvailabilityZones(Aws::String && value)114     inline StartMultiplexResult& AddAvailabilityZones(Aws::String&& value) { m_availabilityZones.push_back(std::move(value)); return *this; }
115 
116     /**
117      * A list of availability zones for the multiplex.
118      */
AddAvailabilityZones(const char * value)119     inline StartMultiplexResult& AddAvailabilityZones(const char* value) { m_availabilityZones.push_back(value); return *this; }
120 
121 
122     /**
123      * A list of the multiplex output destinations.
124      */
GetDestinations()125     inline const Aws::Vector<MultiplexOutputDestination>& GetDestinations() const{ return m_destinations; }
126 
127     /**
128      * A list of the multiplex output destinations.
129      */
SetDestinations(const Aws::Vector<MultiplexOutputDestination> & value)130     inline void SetDestinations(const Aws::Vector<MultiplexOutputDestination>& value) { m_destinations = value; }
131 
132     /**
133      * A list of the multiplex output destinations.
134      */
SetDestinations(Aws::Vector<MultiplexOutputDestination> && value)135     inline void SetDestinations(Aws::Vector<MultiplexOutputDestination>&& value) { m_destinations = std::move(value); }
136 
137     /**
138      * A list of the multiplex output destinations.
139      */
WithDestinations(const Aws::Vector<MultiplexOutputDestination> & value)140     inline StartMultiplexResult& WithDestinations(const Aws::Vector<MultiplexOutputDestination>& value) { SetDestinations(value); return *this;}
141 
142     /**
143      * A list of the multiplex output destinations.
144      */
WithDestinations(Aws::Vector<MultiplexOutputDestination> && value)145     inline StartMultiplexResult& WithDestinations(Aws::Vector<MultiplexOutputDestination>&& value) { SetDestinations(std::move(value)); return *this;}
146 
147     /**
148      * A list of the multiplex output destinations.
149      */
AddDestinations(const MultiplexOutputDestination & value)150     inline StartMultiplexResult& AddDestinations(const MultiplexOutputDestination& value) { m_destinations.push_back(value); return *this; }
151 
152     /**
153      * A list of the multiplex output destinations.
154      */
AddDestinations(MultiplexOutputDestination && value)155     inline StartMultiplexResult& AddDestinations(MultiplexOutputDestination&& value) { m_destinations.push_back(std::move(value)); return *this; }
156 
157 
158     /**
159      * The unique id of the multiplex.
160      */
GetId()161     inline const Aws::String& GetId() const{ return m_id; }
162 
163     /**
164      * The unique id of the multiplex.
165      */
SetId(const Aws::String & value)166     inline void SetId(const Aws::String& value) { m_id = value; }
167 
168     /**
169      * The unique id of the multiplex.
170      */
SetId(Aws::String && value)171     inline void SetId(Aws::String&& value) { m_id = std::move(value); }
172 
173     /**
174      * The unique id of the multiplex.
175      */
SetId(const char * value)176     inline void SetId(const char* value) { m_id.assign(value); }
177 
178     /**
179      * The unique id of the multiplex.
180      */
WithId(const Aws::String & value)181     inline StartMultiplexResult& WithId(const Aws::String& value) { SetId(value); return *this;}
182 
183     /**
184      * The unique id of the multiplex.
185      */
WithId(Aws::String && value)186     inline StartMultiplexResult& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
187 
188     /**
189      * The unique id of the multiplex.
190      */
WithId(const char * value)191     inline StartMultiplexResult& WithId(const char* value) { SetId(value); return *this;}
192 
193 
194     /**
195      * Configuration for a multiplex event.
196      */
GetMultiplexSettings()197     inline const MultiplexSettings& GetMultiplexSettings() const{ return m_multiplexSettings; }
198 
199     /**
200      * Configuration for a multiplex event.
201      */
SetMultiplexSettings(const MultiplexSettings & value)202     inline void SetMultiplexSettings(const MultiplexSettings& value) { m_multiplexSettings = value; }
203 
204     /**
205      * Configuration for a multiplex event.
206      */
SetMultiplexSettings(MultiplexSettings && value)207     inline void SetMultiplexSettings(MultiplexSettings&& value) { m_multiplexSettings = std::move(value); }
208 
209     /**
210      * Configuration for a multiplex event.
211      */
WithMultiplexSettings(const MultiplexSettings & value)212     inline StartMultiplexResult& WithMultiplexSettings(const MultiplexSettings& value) { SetMultiplexSettings(value); return *this;}
213 
214     /**
215      * Configuration for a multiplex event.
216      */
WithMultiplexSettings(MultiplexSettings && value)217     inline StartMultiplexResult& WithMultiplexSettings(MultiplexSettings&& value) { SetMultiplexSettings(std::move(value)); return *this;}
218 
219 
220     /**
221      * The name of the multiplex.
222      */
GetName()223     inline const Aws::String& GetName() const{ return m_name; }
224 
225     /**
226      * The name of the multiplex.
227      */
SetName(const Aws::String & value)228     inline void SetName(const Aws::String& value) { m_name = value; }
229 
230     /**
231      * The name of the multiplex.
232      */
SetName(Aws::String && value)233     inline void SetName(Aws::String&& value) { m_name = std::move(value); }
234 
235     /**
236      * The name of the multiplex.
237      */
SetName(const char * value)238     inline void SetName(const char* value) { m_name.assign(value); }
239 
240     /**
241      * The name of the multiplex.
242      */
WithName(const Aws::String & value)243     inline StartMultiplexResult& WithName(const Aws::String& value) { SetName(value); return *this;}
244 
245     /**
246      * The name of the multiplex.
247      */
WithName(Aws::String && value)248     inline StartMultiplexResult& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
249 
250     /**
251      * The name of the multiplex.
252      */
WithName(const char * value)253     inline StartMultiplexResult& WithName(const char* value) { SetName(value); return *this;}
254 
255 
256     /**
257      * The number of currently healthy pipelines.
258      */
GetPipelinesRunningCount()259     inline int GetPipelinesRunningCount() const{ return m_pipelinesRunningCount; }
260 
261     /**
262      * The number of currently healthy pipelines.
263      */
SetPipelinesRunningCount(int value)264     inline void SetPipelinesRunningCount(int value) { m_pipelinesRunningCount = value; }
265 
266     /**
267      * The number of currently healthy pipelines.
268      */
WithPipelinesRunningCount(int value)269     inline StartMultiplexResult& WithPipelinesRunningCount(int value) { SetPipelinesRunningCount(value); return *this;}
270 
271 
272     /**
273      * The number of programs in the multiplex.
274      */
GetProgramCount()275     inline int GetProgramCount() const{ return m_programCount; }
276 
277     /**
278      * The number of programs in the multiplex.
279      */
SetProgramCount(int value)280     inline void SetProgramCount(int value) { m_programCount = value; }
281 
282     /**
283      * The number of programs in the multiplex.
284      */
WithProgramCount(int value)285     inline StartMultiplexResult& WithProgramCount(int value) { SetProgramCount(value); return *this;}
286 
287 
288     /**
289      * The current state of the multiplex.
290      */
GetState()291     inline const MultiplexState& GetState() const{ return m_state; }
292 
293     /**
294      * The current state of the multiplex.
295      */
SetState(const MultiplexState & value)296     inline void SetState(const MultiplexState& value) { m_state = value; }
297 
298     /**
299      * The current state of the multiplex.
300      */
SetState(MultiplexState && value)301     inline void SetState(MultiplexState&& value) { m_state = std::move(value); }
302 
303     /**
304      * The current state of the multiplex.
305      */
WithState(const MultiplexState & value)306     inline StartMultiplexResult& WithState(const MultiplexState& value) { SetState(value); return *this;}
307 
308     /**
309      * The current state of the multiplex.
310      */
WithState(MultiplexState && value)311     inline StartMultiplexResult& WithState(MultiplexState&& value) { SetState(std::move(value)); return *this;}
312 
313 
314     /**
315      * A collection of key-value pairs.
316      */
GetTags()317     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
318 
319     /**
320      * A collection of key-value pairs.
321      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)322     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tags = value; }
323 
324     /**
325      * A collection of key-value pairs.
326      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)327     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tags = std::move(value); }
328 
329     /**
330      * A collection of key-value pairs.
331      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)332     inline StartMultiplexResult& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
333 
334     /**
335      * A collection of key-value pairs.
336      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)337     inline StartMultiplexResult& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
338 
339     /**
340      * A collection of key-value pairs.
341      */
AddTags(const Aws::String & key,const Aws::String & value)342     inline StartMultiplexResult& AddTags(const Aws::String& key, const Aws::String& value) { m_tags.emplace(key, value); return *this; }
343 
344     /**
345      * A collection of key-value pairs.
346      */
AddTags(Aws::String && key,const Aws::String & value)347     inline StartMultiplexResult& AddTags(Aws::String&& key, const Aws::String& value) { m_tags.emplace(std::move(key), value); return *this; }
348 
349     /**
350      * A collection of key-value pairs.
351      */
AddTags(const Aws::String & key,Aws::String && value)352     inline StartMultiplexResult& AddTags(const Aws::String& key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
353 
354     /**
355      * A collection of key-value pairs.
356      */
AddTags(Aws::String && key,Aws::String && value)357     inline StartMultiplexResult& AddTags(Aws::String&& key, Aws::String&& value) { m_tags.emplace(std::move(key), std::move(value)); return *this; }
358 
359     /**
360      * A collection of key-value pairs.
361      */
AddTags(const char * key,Aws::String && value)362     inline StartMultiplexResult& AddTags(const char* key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
363 
364     /**
365      * A collection of key-value pairs.
366      */
AddTags(Aws::String && key,const char * value)367     inline StartMultiplexResult& AddTags(Aws::String&& key, const char* value) { m_tags.emplace(std::move(key), value); return *this; }
368 
369     /**
370      * A collection of key-value pairs.
371      */
AddTags(const char * key,const char * value)372     inline StartMultiplexResult& AddTags(const char* key, const char* value) { m_tags.emplace(key, value); return *this; }
373 
374   private:
375 
376     Aws::String m_arn;
377 
378     Aws::Vector<Aws::String> m_availabilityZones;
379 
380     Aws::Vector<MultiplexOutputDestination> m_destinations;
381 
382     Aws::String m_id;
383 
384     MultiplexSettings m_multiplexSettings;
385 
386     Aws::String m_name;
387 
388     int m_pipelinesRunningCount;
389 
390     int m_programCount;
391 
392     MultiplexState m_state;
393 
394     Aws::Map<Aws::String, Aws::String> m_tags;
395   };
396 
397 } // namespace Model
398 } // namespace MediaLive
399 } // namespace Aws
400