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/MultiplexProgramChannelDestinationSettings.h>
11 #include <aws/medialive/model/MediaPackageOutputDestinationSettings.h>
12 #include <aws/medialive/model/OutputDestinationSettings.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    * Placeholder documentation for OutputDestination<p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/OutputDestination">AWS
33    * API Reference</a></p>
34    */
35   class AWS_MEDIALIVE_API OutputDestination
36   {
37   public:
38     OutputDestination();
39     OutputDestination(Aws::Utils::Json::JsonView jsonValue);
40     OutputDestination& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * User-specified id. This is used in an output group or an output.
46      */
GetId()47     inline const Aws::String& GetId() const{ return m_id; }
48 
49     /**
50      * User-specified id. This is used in an output group or an output.
51      */
IdHasBeenSet()52     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
53 
54     /**
55      * User-specified id. This is used in an output group or an output.
56      */
SetId(const Aws::String & value)57     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
58 
59     /**
60      * User-specified id. This is used in an output group or an output.
61      */
SetId(Aws::String && value)62     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
63 
64     /**
65      * User-specified id. This is used in an output group or an output.
66      */
SetId(const char * value)67     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
68 
69     /**
70      * User-specified id. This is used in an output group or an output.
71      */
WithId(const Aws::String & value)72     inline OutputDestination& WithId(const Aws::String& value) { SetId(value); return *this;}
73 
74     /**
75      * User-specified id. This is used in an output group or an output.
76      */
WithId(Aws::String && value)77     inline OutputDestination& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
78 
79     /**
80      * User-specified id. This is used in an output group or an output.
81      */
WithId(const char * value)82     inline OutputDestination& WithId(const char* value) { SetId(value); return *this;}
83 
84 
85     /**
86      * Destination settings for a MediaPackage output; one destination for both
87      * encoders.
88      */
GetMediaPackageSettings()89     inline const Aws::Vector<MediaPackageOutputDestinationSettings>& GetMediaPackageSettings() const{ return m_mediaPackageSettings; }
90 
91     /**
92      * Destination settings for a MediaPackage output; one destination for both
93      * encoders.
94      */
MediaPackageSettingsHasBeenSet()95     inline bool MediaPackageSettingsHasBeenSet() const { return m_mediaPackageSettingsHasBeenSet; }
96 
97     /**
98      * Destination settings for a MediaPackage output; one destination for both
99      * encoders.
100      */
SetMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings> & value)101     inline void SetMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings>& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings = value; }
102 
103     /**
104      * Destination settings for a MediaPackage output; one destination for both
105      * encoders.
106      */
SetMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings> && value)107     inline void SetMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings>&& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings = std::move(value); }
108 
109     /**
110      * Destination settings for a MediaPackage output; one destination for both
111      * encoders.
112      */
WithMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings> & value)113     inline OutputDestination& WithMediaPackageSettings(const Aws::Vector<MediaPackageOutputDestinationSettings>& value) { SetMediaPackageSettings(value); return *this;}
114 
115     /**
116      * Destination settings for a MediaPackage output; one destination for both
117      * encoders.
118      */
WithMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings> && value)119     inline OutputDestination& WithMediaPackageSettings(Aws::Vector<MediaPackageOutputDestinationSettings>&& value) { SetMediaPackageSettings(std::move(value)); return *this;}
120 
121     /**
122      * Destination settings for a MediaPackage output; one destination for both
123      * encoders.
124      */
AddMediaPackageSettings(const MediaPackageOutputDestinationSettings & value)125     inline OutputDestination& AddMediaPackageSettings(const MediaPackageOutputDestinationSettings& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings.push_back(value); return *this; }
126 
127     /**
128      * Destination settings for a MediaPackage output; one destination for both
129      * encoders.
130      */
AddMediaPackageSettings(MediaPackageOutputDestinationSettings && value)131     inline OutputDestination& AddMediaPackageSettings(MediaPackageOutputDestinationSettings&& value) { m_mediaPackageSettingsHasBeenSet = true; m_mediaPackageSettings.push_back(std::move(value)); return *this; }
132 
133 
134     /**
135      * Destination settings for a Multiplex output; one destination for both encoders.
136      */
GetMultiplexSettings()137     inline const MultiplexProgramChannelDestinationSettings& GetMultiplexSettings() const{ return m_multiplexSettings; }
138 
139     /**
140      * Destination settings for a Multiplex output; one destination for both encoders.
141      */
MultiplexSettingsHasBeenSet()142     inline bool MultiplexSettingsHasBeenSet() const { return m_multiplexSettingsHasBeenSet; }
143 
144     /**
145      * Destination settings for a Multiplex output; one destination for both encoders.
146      */
SetMultiplexSettings(const MultiplexProgramChannelDestinationSettings & value)147     inline void SetMultiplexSettings(const MultiplexProgramChannelDestinationSettings& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = value; }
148 
149     /**
150      * Destination settings for a Multiplex output; one destination for both encoders.
151      */
SetMultiplexSettings(MultiplexProgramChannelDestinationSettings && value)152     inline void SetMultiplexSettings(MultiplexProgramChannelDestinationSettings&& value) { m_multiplexSettingsHasBeenSet = true; m_multiplexSettings = std::move(value); }
153 
154     /**
155      * Destination settings for a Multiplex output; one destination for both encoders.
156      */
WithMultiplexSettings(const MultiplexProgramChannelDestinationSettings & value)157     inline OutputDestination& WithMultiplexSettings(const MultiplexProgramChannelDestinationSettings& value) { SetMultiplexSettings(value); return *this;}
158 
159     /**
160      * Destination settings for a Multiplex output; one destination for both encoders.
161      */
WithMultiplexSettings(MultiplexProgramChannelDestinationSettings && value)162     inline OutputDestination& WithMultiplexSettings(MultiplexProgramChannelDestinationSettings&& value) { SetMultiplexSettings(std::move(value)); return *this;}
163 
164 
165     /**
166      * Destination settings for a standard output; one destination for each redundant
167      * encoder.
168      */
GetSettings()169     inline const Aws::Vector<OutputDestinationSettings>& GetSettings() const{ return m_settings; }
170 
171     /**
172      * Destination settings for a standard output; one destination for each redundant
173      * encoder.
174      */
SettingsHasBeenSet()175     inline bool SettingsHasBeenSet() const { return m_settingsHasBeenSet; }
176 
177     /**
178      * Destination settings for a standard output; one destination for each redundant
179      * encoder.
180      */
SetSettings(const Aws::Vector<OutputDestinationSettings> & value)181     inline void SetSettings(const Aws::Vector<OutputDestinationSettings>& value) { m_settingsHasBeenSet = true; m_settings = value; }
182 
183     /**
184      * Destination settings for a standard output; one destination for each redundant
185      * encoder.
186      */
SetSettings(Aws::Vector<OutputDestinationSettings> && value)187     inline void SetSettings(Aws::Vector<OutputDestinationSettings>&& value) { m_settingsHasBeenSet = true; m_settings = std::move(value); }
188 
189     /**
190      * Destination settings for a standard output; one destination for each redundant
191      * encoder.
192      */
WithSettings(const Aws::Vector<OutputDestinationSettings> & value)193     inline OutputDestination& WithSettings(const Aws::Vector<OutputDestinationSettings>& value) { SetSettings(value); return *this;}
194 
195     /**
196      * Destination settings for a standard output; one destination for each redundant
197      * encoder.
198      */
WithSettings(Aws::Vector<OutputDestinationSettings> && value)199     inline OutputDestination& WithSettings(Aws::Vector<OutputDestinationSettings>&& value) { SetSettings(std::move(value)); return *this;}
200 
201     /**
202      * Destination settings for a standard output; one destination for each redundant
203      * encoder.
204      */
AddSettings(const OutputDestinationSettings & value)205     inline OutputDestination& AddSettings(const OutputDestinationSettings& value) { m_settingsHasBeenSet = true; m_settings.push_back(value); return *this; }
206 
207     /**
208      * Destination settings for a standard output; one destination for each redundant
209      * encoder.
210      */
AddSettings(OutputDestinationSettings && value)211     inline OutputDestination& AddSettings(OutputDestinationSettings&& value) { m_settingsHasBeenSet = true; m_settings.push_back(std::move(value)); return *this; }
212 
213   private:
214 
215     Aws::String m_id;
216     bool m_idHasBeenSet;
217 
218     Aws::Vector<MediaPackageOutputDestinationSettings> m_mediaPackageSettings;
219     bool m_mediaPackageSettingsHasBeenSet;
220 
221     MultiplexProgramChannelDestinationSettings m_multiplexSettings;
222     bool m_multiplexSettingsHasBeenSet;
223 
224     Aws::Vector<OutputDestinationSettings> m_settings;
225     bool m_settingsHasBeenSet;
226   };
227 
228 } // namespace Model
229 } // namespace MediaLive
230 } // namespace Aws
231