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/InputClippingSettings.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace MediaLive
24 {
25 namespace Model
26 {
27 
28   /**
29    * Action to prepare an input for a future immediate input switch.<p><h3>See
30    * Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/InputPrepareScheduleActionSettings">AWS
32    * API Reference</a></p>
33    */
34   class AWS_MEDIALIVE_API InputPrepareScheduleActionSettings
35   {
36   public:
37     InputPrepareScheduleActionSettings();
38     InputPrepareScheduleActionSettings(Aws::Utils::Json::JsonView jsonValue);
39     InputPrepareScheduleActionSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * The name of the input attachment that should be prepared by this action. If no
45      * name is provided, the action will stop the most recent prepare (if any) when
46      * activated.
47      */
GetInputAttachmentNameReference()48     inline const Aws::String& GetInputAttachmentNameReference() const{ return m_inputAttachmentNameReference; }
49 
50     /**
51      * The name of the input attachment that should be prepared by this action. If no
52      * name is provided, the action will stop the most recent prepare (if any) when
53      * activated.
54      */
InputAttachmentNameReferenceHasBeenSet()55     inline bool InputAttachmentNameReferenceHasBeenSet() const { return m_inputAttachmentNameReferenceHasBeenSet; }
56 
57     /**
58      * The name of the input attachment that should be prepared by this action. If no
59      * name is provided, the action will stop the most recent prepare (if any) when
60      * activated.
61      */
SetInputAttachmentNameReference(const Aws::String & value)62     inline void SetInputAttachmentNameReference(const Aws::String& value) { m_inputAttachmentNameReferenceHasBeenSet = true; m_inputAttachmentNameReference = value; }
63 
64     /**
65      * The name of the input attachment that should be prepared by this action. If no
66      * name is provided, the action will stop the most recent prepare (if any) when
67      * activated.
68      */
SetInputAttachmentNameReference(Aws::String && value)69     inline void SetInputAttachmentNameReference(Aws::String&& value) { m_inputAttachmentNameReferenceHasBeenSet = true; m_inputAttachmentNameReference = std::move(value); }
70 
71     /**
72      * The name of the input attachment that should be prepared by this action. If no
73      * name is provided, the action will stop the most recent prepare (if any) when
74      * activated.
75      */
SetInputAttachmentNameReference(const char * value)76     inline void SetInputAttachmentNameReference(const char* value) { m_inputAttachmentNameReferenceHasBeenSet = true; m_inputAttachmentNameReference.assign(value); }
77 
78     /**
79      * The name of the input attachment that should be prepared by this action. If no
80      * name is provided, the action will stop the most recent prepare (if any) when
81      * activated.
82      */
WithInputAttachmentNameReference(const Aws::String & value)83     inline InputPrepareScheduleActionSettings& WithInputAttachmentNameReference(const Aws::String& value) { SetInputAttachmentNameReference(value); return *this;}
84 
85     /**
86      * The name of the input attachment that should be prepared by this action. If no
87      * name is provided, the action will stop the most recent prepare (if any) when
88      * activated.
89      */
WithInputAttachmentNameReference(Aws::String && value)90     inline InputPrepareScheduleActionSettings& WithInputAttachmentNameReference(Aws::String&& value) { SetInputAttachmentNameReference(std::move(value)); return *this;}
91 
92     /**
93      * The name of the input attachment that should be prepared by this action. If no
94      * name is provided, the action will stop the most recent prepare (if any) when
95      * activated.
96      */
WithInputAttachmentNameReference(const char * value)97     inline InputPrepareScheduleActionSettings& WithInputAttachmentNameReference(const char* value) { SetInputAttachmentNameReference(value); return *this;}
98 
99 
100     /**
101      * Settings to let you create a clip of the file input, in order to set up the
102      * input to ingest only a portion of the file.
103      */
GetInputClippingSettings()104     inline const InputClippingSettings& GetInputClippingSettings() const{ return m_inputClippingSettings; }
105 
106     /**
107      * Settings to let you create a clip of the file input, in order to set up the
108      * input to ingest only a portion of the file.
109      */
InputClippingSettingsHasBeenSet()110     inline bool InputClippingSettingsHasBeenSet() const { return m_inputClippingSettingsHasBeenSet; }
111 
112     /**
113      * Settings to let you create a clip of the file input, in order to set up the
114      * input to ingest only a portion of the file.
115      */
SetInputClippingSettings(const InputClippingSettings & value)116     inline void SetInputClippingSettings(const InputClippingSettings& value) { m_inputClippingSettingsHasBeenSet = true; m_inputClippingSettings = value; }
117 
118     /**
119      * Settings to let you create a clip of the file input, in order to set up the
120      * input to ingest only a portion of the file.
121      */
SetInputClippingSettings(InputClippingSettings && value)122     inline void SetInputClippingSettings(InputClippingSettings&& value) { m_inputClippingSettingsHasBeenSet = true; m_inputClippingSettings = std::move(value); }
123 
124     /**
125      * Settings to let you create a clip of the file input, in order to set up the
126      * input to ingest only a portion of the file.
127      */
WithInputClippingSettings(const InputClippingSettings & value)128     inline InputPrepareScheduleActionSettings& WithInputClippingSettings(const InputClippingSettings& value) { SetInputClippingSettings(value); return *this;}
129 
130     /**
131      * Settings to let you create a clip of the file input, in order to set up the
132      * input to ingest only a portion of the file.
133      */
WithInputClippingSettings(InputClippingSettings && value)134     inline InputPrepareScheduleActionSettings& WithInputClippingSettings(InputClippingSettings&& value) { SetInputClippingSettings(std::move(value)); return *this;}
135 
136 
137     /**
138      * The value for the variable portion of the URL for the dynamic input, for this
139      * instance of the input. Each time you use the same dynamic input in an input
140      * switch action, you can provide a different value, in order to connect the input
141      * to a different content source.
142      */
GetUrlPath()143     inline const Aws::Vector<Aws::String>& GetUrlPath() const{ return m_urlPath; }
144 
145     /**
146      * The value for the variable portion of the URL for the dynamic input, for this
147      * instance of the input. Each time you use the same dynamic input in an input
148      * switch action, you can provide a different value, in order to connect the input
149      * to a different content source.
150      */
UrlPathHasBeenSet()151     inline bool UrlPathHasBeenSet() const { return m_urlPathHasBeenSet; }
152 
153     /**
154      * The value for the variable portion of the URL for the dynamic input, for this
155      * instance of the input. Each time you use the same dynamic input in an input
156      * switch action, you can provide a different value, in order to connect the input
157      * to a different content source.
158      */
SetUrlPath(const Aws::Vector<Aws::String> & value)159     inline void SetUrlPath(const Aws::Vector<Aws::String>& value) { m_urlPathHasBeenSet = true; m_urlPath = value; }
160 
161     /**
162      * The value for the variable portion of the URL for the dynamic input, for this
163      * instance of the input. Each time you use the same dynamic input in an input
164      * switch action, you can provide a different value, in order to connect the input
165      * to a different content source.
166      */
SetUrlPath(Aws::Vector<Aws::String> && value)167     inline void SetUrlPath(Aws::Vector<Aws::String>&& value) { m_urlPathHasBeenSet = true; m_urlPath = std::move(value); }
168 
169     /**
170      * The value for the variable portion of the URL for the dynamic input, for this
171      * instance of the input. Each time you use the same dynamic input in an input
172      * switch action, you can provide a different value, in order to connect the input
173      * to a different content source.
174      */
WithUrlPath(const Aws::Vector<Aws::String> & value)175     inline InputPrepareScheduleActionSettings& WithUrlPath(const Aws::Vector<Aws::String>& value) { SetUrlPath(value); return *this;}
176 
177     /**
178      * The value for the variable portion of the URL for the dynamic input, for this
179      * instance of the input. Each time you use the same dynamic input in an input
180      * switch action, you can provide a different value, in order to connect the input
181      * to a different content source.
182      */
WithUrlPath(Aws::Vector<Aws::String> && value)183     inline InputPrepareScheduleActionSettings& WithUrlPath(Aws::Vector<Aws::String>&& value) { SetUrlPath(std::move(value)); return *this;}
184 
185     /**
186      * The value for the variable portion of the URL for the dynamic input, for this
187      * instance of the input. Each time you use the same dynamic input in an input
188      * switch action, you can provide a different value, in order to connect the input
189      * to a different content source.
190      */
AddUrlPath(const Aws::String & value)191     inline InputPrepareScheduleActionSettings& AddUrlPath(const Aws::String& value) { m_urlPathHasBeenSet = true; m_urlPath.push_back(value); return *this; }
192 
193     /**
194      * The value for the variable portion of the URL for the dynamic input, for this
195      * instance of the input. Each time you use the same dynamic input in an input
196      * switch action, you can provide a different value, in order to connect the input
197      * to a different content source.
198      */
AddUrlPath(Aws::String && value)199     inline InputPrepareScheduleActionSettings& AddUrlPath(Aws::String&& value) { m_urlPathHasBeenSet = true; m_urlPath.push_back(std::move(value)); return *this; }
200 
201     /**
202      * The value for the variable portion of the URL for the dynamic input, for this
203      * instance of the input. Each time you use the same dynamic input in an input
204      * switch action, you can provide a different value, in order to connect the input
205      * to a different content source.
206      */
AddUrlPath(const char * value)207     inline InputPrepareScheduleActionSettings& AddUrlPath(const char* value) { m_urlPathHasBeenSet = true; m_urlPath.push_back(value); return *this; }
208 
209   private:
210 
211     Aws::String m_inputAttachmentNameReference;
212     bool m_inputAttachmentNameReferenceHasBeenSet;
213 
214     InputClippingSettings m_inputClippingSettings;
215     bool m_inputClippingSettingsHasBeenSet;
216 
217     Aws::Vector<Aws::String> m_urlPath;
218     bool m_urlPathHasBeenSet;
219   };
220 
221 } // namespace Model
222 } // namespace MediaLive
223 } // namespace Aws
224