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/medialive/MediaLiveRequest.h>
9 #include <aws/medialive/model/CdiInputSpecification.h>
10 #include <aws/core/utils/memory/stl/AWSString.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/OutputDestination.h>
16 #include <aws/medialive/model/InputAttachment.h>
17 #include <utility>
18 
19 namespace Aws
20 {
21 namespace MediaLive
22 {
23 namespace Model
24 {
25 
26   /**
27    * A request to update a channel.<p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/UpdateChannelRequest">AWS
29    * API Reference</a></p>
30    */
31   class AWS_MEDIALIVE_API UpdateChannelRequest : public MediaLiveRequest
32   {
33   public:
34     UpdateChannelRequest();
35 
36     // Service request name is the Operation name which will send this request out,
37     // each operation should has unique request name, so that we can get operation's name from this request.
38     // Note: this is not true for response, multiple operations may have the same response name,
39     // so we can not get operation's name from response.
GetServiceRequestName()40     inline virtual const char* GetServiceRequestName() const override { return "UpdateChannel"; }
41 
42     Aws::String SerializePayload() const override;
43 
44 
45     /**
46      * Specification of CDI inputs for this channel
47      */
GetCdiInputSpecification()48     inline const CdiInputSpecification& GetCdiInputSpecification() const{ return m_cdiInputSpecification; }
49 
50     /**
51      * Specification of CDI inputs for this channel
52      */
CdiInputSpecificationHasBeenSet()53     inline bool CdiInputSpecificationHasBeenSet() const { return m_cdiInputSpecificationHasBeenSet; }
54 
55     /**
56      * Specification of CDI inputs for this channel
57      */
SetCdiInputSpecification(const CdiInputSpecification & value)58     inline void SetCdiInputSpecification(const CdiInputSpecification& value) { m_cdiInputSpecificationHasBeenSet = true; m_cdiInputSpecification = value; }
59 
60     /**
61      * Specification of CDI inputs for this channel
62      */
SetCdiInputSpecification(CdiInputSpecification && value)63     inline void SetCdiInputSpecification(CdiInputSpecification&& value) { m_cdiInputSpecificationHasBeenSet = true; m_cdiInputSpecification = std::move(value); }
64 
65     /**
66      * Specification of CDI inputs for this channel
67      */
WithCdiInputSpecification(const CdiInputSpecification & value)68     inline UpdateChannelRequest& WithCdiInputSpecification(const CdiInputSpecification& value) { SetCdiInputSpecification(value); return *this;}
69 
70     /**
71      * Specification of CDI inputs for this channel
72      */
WithCdiInputSpecification(CdiInputSpecification && value)73     inline UpdateChannelRequest& WithCdiInputSpecification(CdiInputSpecification&& value) { SetCdiInputSpecification(std::move(value)); return *this;}
74 
75 
76     /**
77      * channel ID
78      */
GetChannelId()79     inline const Aws::String& GetChannelId() const{ return m_channelId; }
80 
81     /**
82      * channel ID
83      */
ChannelIdHasBeenSet()84     inline bool ChannelIdHasBeenSet() const { return m_channelIdHasBeenSet; }
85 
86     /**
87      * channel ID
88      */
SetChannelId(const Aws::String & value)89     inline void SetChannelId(const Aws::String& value) { m_channelIdHasBeenSet = true; m_channelId = value; }
90 
91     /**
92      * channel ID
93      */
SetChannelId(Aws::String && value)94     inline void SetChannelId(Aws::String&& value) { m_channelIdHasBeenSet = true; m_channelId = std::move(value); }
95 
96     /**
97      * channel ID
98      */
SetChannelId(const char * value)99     inline void SetChannelId(const char* value) { m_channelIdHasBeenSet = true; m_channelId.assign(value); }
100 
101     /**
102      * channel ID
103      */
WithChannelId(const Aws::String & value)104     inline UpdateChannelRequest& WithChannelId(const Aws::String& value) { SetChannelId(value); return *this;}
105 
106     /**
107      * channel ID
108      */
WithChannelId(Aws::String && value)109     inline UpdateChannelRequest& WithChannelId(Aws::String&& value) { SetChannelId(std::move(value)); return *this;}
110 
111     /**
112      * channel ID
113      */
WithChannelId(const char * value)114     inline UpdateChannelRequest& WithChannelId(const char* value) { SetChannelId(value); return *this;}
115 
116 
117     /**
118      * A list of output destinations for this channel.
119      */
GetDestinations()120     inline const Aws::Vector<OutputDestination>& GetDestinations() const{ return m_destinations; }
121 
122     /**
123      * A list of output destinations for this channel.
124      */
DestinationsHasBeenSet()125     inline bool DestinationsHasBeenSet() const { return m_destinationsHasBeenSet; }
126 
127     /**
128      * A list of output destinations for this channel.
129      */
SetDestinations(const Aws::Vector<OutputDestination> & value)130     inline void SetDestinations(const Aws::Vector<OutputDestination>& value) { m_destinationsHasBeenSet = true; m_destinations = value; }
131 
132     /**
133      * A list of output destinations for this channel.
134      */
SetDestinations(Aws::Vector<OutputDestination> && value)135     inline void SetDestinations(Aws::Vector<OutputDestination>&& value) { m_destinationsHasBeenSet = true; m_destinations = std::move(value); }
136 
137     /**
138      * A list of output destinations for this channel.
139      */
WithDestinations(const Aws::Vector<OutputDestination> & value)140     inline UpdateChannelRequest& WithDestinations(const Aws::Vector<OutputDestination>& value) { SetDestinations(value); return *this;}
141 
142     /**
143      * A list of output destinations for this channel.
144      */
WithDestinations(Aws::Vector<OutputDestination> && value)145     inline UpdateChannelRequest& WithDestinations(Aws::Vector<OutputDestination>&& value) { SetDestinations(std::move(value)); return *this;}
146 
147     /**
148      * A list of output destinations for this channel.
149      */
AddDestinations(const OutputDestination & value)150     inline UpdateChannelRequest& AddDestinations(const OutputDestination& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; }
151 
152     /**
153      * A list of output destinations for this channel.
154      */
AddDestinations(OutputDestination && value)155     inline UpdateChannelRequest& AddDestinations(OutputDestination&& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(std::move(value)); return *this; }
156 
157 
158     /**
159      * The encoder settings for this channel.
160      */
GetEncoderSettings()161     inline const EncoderSettings& GetEncoderSettings() const{ return m_encoderSettings; }
162 
163     /**
164      * The encoder settings for this channel.
165      */
EncoderSettingsHasBeenSet()166     inline bool EncoderSettingsHasBeenSet() const { return m_encoderSettingsHasBeenSet; }
167 
168     /**
169      * The encoder settings for this channel.
170      */
SetEncoderSettings(const EncoderSettings & value)171     inline void SetEncoderSettings(const EncoderSettings& value) { m_encoderSettingsHasBeenSet = true; m_encoderSettings = value; }
172 
173     /**
174      * The encoder settings for this channel.
175      */
SetEncoderSettings(EncoderSettings && value)176     inline void SetEncoderSettings(EncoderSettings&& value) { m_encoderSettingsHasBeenSet = true; m_encoderSettings = std::move(value); }
177 
178     /**
179      * The encoder settings for this channel.
180      */
WithEncoderSettings(const EncoderSettings & value)181     inline UpdateChannelRequest& WithEncoderSettings(const EncoderSettings& value) { SetEncoderSettings(value); return *this;}
182 
183     /**
184      * The encoder settings for this channel.
185      */
WithEncoderSettings(EncoderSettings && value)186     inline UpdateChannelRequest& WithEncoderSettings(EncoderSettings&& value) { SetEncoderSettings(std::move(value)); return *this;}
187 
188 
189 
GetInputAttachments()190     inline const Aws::Vector<InputAttachment>& GetInputAttachments() const{ return m_inputAttachments; }
191 
192 
InputAttachmentsHasBeenSet()193     inline bool InputAttachmentsHasBeenSet() const { return m_inputAttachmentsHasBeenSet; }
194 
195 
SetInputAttachments(const Aws::Vector<InputAttachment> & value)196     inline void SetInputAttachments(const Aws::Vector<InputAttachment>& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments = value; }
197 
198 
SetInputAttachments(Aws::Vector<InputAttachment> && value)199     inline void SetInputAttachments(Aws::Vector<InputAttachment>&& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments = std::move(value); }
200 
201 
WithInputAttachments(const Aws::Vector<InputAttachment> & value)202     inline UpdateChannelRequest& WithInputAttachments(const Aws::Vector<InputAttachment>& value) { SetInputAttachments(value); return *this;}
203 
204 
WithInputAttachments(Aws::Vector<InputAttachment> && value)205     inline UpdateChannelRequest& WithInputAttachments(Aws::Vector<InputAttachment>&& value) { SetInputAttachments(std::move(value)); return *this;}
206 
207 
AddInputAttachments(const InputAttachment & value)208     inline UpdateChannelRequest& AddInputAttachments(const InputAttachment& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments.push_back(value); return *this; }
209 
210 
AddInputAttachments(InputAttachment && value)211     inline UpdateChannelRequest& AddInputAttachments(InputAttachment&& value) { m_inputAttachmentsHasBeenSet = true; m_inputAttachments.push_back(std::move(value)); return *this; }
212 
213 
214     /**
215      * Specification of network and file inputs for this channel
216      */
GetInputSpecification()217     inline const InputSpecification& GetInputSpecification() const{ return m_inputSpecification; }
218 
219     /**
220      * Specification of network and file inputs for this channel
221      */
InputSpecificationHasBeenSet()222     inline bool InputSpecificationHasBeenSet() const { return m_inputSpecificationHasBeenSet; }
223 
224     /**
225      * Specification of network and file inputs for this channel
226      */
SetInputSpecification(const InputSpecification & value)227     inline void SetInputSpecification(const InputSpecification& value) { m_inputSpecificationHasBeenSet = true; m_inputSpecification = value; }
228 
229     /**
230      * Specification of network and file inputs for this channel
231      */
SetInputSpecification(InputSpecification && value)232     inline void SetInputSpecification(InputSpecification&& value) { m_inputSpecificationHasBeenSet = true; m_inputSpecification = std::move(value); }
233 
234     /**
235      * Specification of network and file inputs for this channel
236      */
WithInputSpecification(const InputSpecification & value)237     inline UpdateChannelRequest& WithInputSpecification(const InputSpecification& value) { SetInputSpecification(value); return *this;}
238 
239     /**
240      * Specification of network and file inputs for this channel
241      */
WithInputSpecification(InputSpecification && value)242     inline UpdateChannelRequest& WithInputSpecification(InputSpecification&& value) { SetInputSpecification(std::move(value)); return *this;}
243 
244 
245     /**
246      * The log level to write to CloudWatch Logs.
247      */
GetLogLevel()248     inline const LogLevel& GetLogLevel() const{ return m_logLevel; }
249 
250     /**
251      * The log level to write to CloudWatch Logs.
252      */
LogLevelHasBeenSet()253     inline bool LogLevelHasBeenSet() const { return m_logLevelHasBeenSet; }
254 
255     /**
256      * The log level to write to CloudWatch Logs.
257      */
SetLogLevel(const LogLevel & value)258     inline void SetLogLevel(const LogLevel& value) { m_logLevelHasBeenSet = true; m_logLevel = value; }
259 
260     /**
261      * The log level to write to CloudWatch Logs.
262      */
SetLogLevel(LogLevel && value)263     inline void SetLogLevel(LogLevel&& value) { m_logLevelHasBeenSet = true; m_logLevel = std::move(value); }
264 
265     /**
266      * The log level to write to CloudWatch Logs.
267      */
WithLogLevel(const LogLevel & value)268     inline UpdateChannelRequest& WithLogLevel(const LogLevel& value) { SetLogLevel(value); return *this;}
269 
270     /**
271      * The log level to write to CloudWatch Logs.
272      */
WithLogLevel(LogLevel && value)273     inline UpdateChannelRequest& WithLogLevel(LogLevel&& value) { SetLogLevel(std::move(value)); return *this;}
274 
275 
276     /**
277      * The name of the channel.
278      */
GetName()279     inline const Aws::String& GetName() const{ return m_name; }
280 
281     /**
282      * The name of the channel.
283      */
NameHasBeenSet()284     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
285 
286     /**
287      * The name of the channel.
288      */
SetName(const Aws::String & value)289     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
290 
291     /**
292      * The name of the channel.
293      */
SetName(Aws::String && value)294     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
295 
296     /**
297      * The name of the channel.
298      */
SetName(const char * value)299     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
300 
301     /**
302      * The name of the channel.
303      */
WithName(const Aws::String & value)304     inline UpdateChannelRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
305 
306     /**
307      * The name of the channel.
308      */
WithName(Aws::String && value)309     inline UpdateChannelRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
310 
311     /**
312      * The name of the channel.
313      */
WithName(const char * value)314     inline UpdateChannelRequest& WithName(const char* value) { SetName(value); return *this;}
315 
316 
317     /**
318      * An optional Amazon Resource Name (ARN) of the role to assume when running the
319      * Channel. If you do not specify this on an update call but the role was
320      * previously set that role will be removed.
321      */
GetRoleArn()322     inline const Aws::String& GetRoleArn() const{ return m_roleArn; }
323 
324     /**
325      * An optional Amazon Resource Name (ARN) of the role to assume when running the
326      * Channel. If you do not specify this on an update call but the role was
327      * previously set that role will be removed.
328      */
RoleArnHasBeenSet()329     inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; }
330 
331     /**
332      * An optional Amazon Resource Name (ARN) of the role to assume when running the
333      * Channel. If you do not specify this on an update call but the role was
334      * previously set that role will be removed.
335      */
SetRoleArn(const Aws::String & value)336     inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; }
337 
338     /**
339      * An optional Amazon Resource Name (ARN) of the role to assume when running the
340      * Channel. If you do not specify this on an update call but the role was
341      * previously set that role will be removed.
342      */
SetRoleArn(Aws::String && value)343     inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); }
344 
345     /**
346      * An optional Amazon Resource Name (ARN) of the role to assume when running the
347      * Channel. If you do not specify this on an update call but the role was
348      * previously set that role will be removed.
349      */
SetRoleArn(const char * value)350     inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); }
351 
352     /**
353      * An optional Amazon Resource Name (ARN) of the role to assume when running the
354      * Channel. If you do not specify this on an update call but the role was
355      * previously set that role will be removed.
356      */
WithRoleArn(const Aws::String & value)357     inline UpdateChannelRequest& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;}
358 
359     /**
360      * An optional Amazon Resource Name (ARN) of the role to assume when running the
361      * Channel. If you do not specify this on an update call but the role was
362      * previously set that role will be removed.
363      */
WithRoleArn(Aws::String && value)364     inline UpdateChannelRequest& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;}
365 
366     /**
367      * An optional Amazon Resource Name (ARN) of the role to assume when running the
368      * Channel. If you do not specify this on an update call but the role was
369      * previously set that role will be removed.
370      */
WithRoleArn(const char * value)371     inline UpdateChannelRequest& WithRoleArn(const char* value) { SetRoleArn(value); return *this;}
372 
373   private:
374 
375     CdiInputSpecification m_cdiInputSpecification;
376     bool m_cdiInputSpecificationHasBeenSet;
377 
378     Aws::String m_channelId;
379     bool m_channelIdHasBeenSet;
380 
381     Aws::Vector<OutputDestination> m_destinations;
382     bool m_destinationsHasBeenSet;
383 
384     EncoderSettings m_encoderSettings;
385     bool m_encoderSettingsHasBeenSet;
386 
387     Aws::Vector<InputAttachment> m_inputAttachments;
388     bool m_inputAttachmentsHasBeenSet;
389 
390     InputSpecification m_inputSpecification;
391     bool m_inputSpecificationHasBeenSet;
392 
393     LogLevel m_logLevel;
394     bool m_logLevelHasBeenSet;
395 
396     Aws::String m_name;
397     bool m_nameHasBeenSet;
398 
399     Aws::String m_roleArn;
400     bool m_roleArnHasBeenSet;
401   };
402 
403 } // namespace Model
404 } // namespace MediaLive
405 } // namespace Aws
406