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/ScheduleActionSettings.h>
10 #include <aws/medialive/model/ScheduleActionStartSettings.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    * Contains information on a single schedule action.<p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/ScheduleAction">AWS
31    * API Reference</a></p>
32    */
33   class AWS_MEDIALIVE_API ScheduleAction
34   {
35   public:
36     ScheduleAction();
37     ScheduleAction(Aws::Utils::Json::JsonView jsonValue);
38     ScheduleAction& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * The name of the action, must be unique within the schedule. This name provides
44      * the main reference to an action once it is added to the schedule. A name is
45      * unique if it is no longer in the schedule. The schedule is automatically cleaned
46      * up to remove actions with a start time of more than 1 hour ago (approximately)
47      * so at that point a name can be reused.
48      */
GetActionName()49     inline const Aws::String& GetActionName() const{ return m_actionName; }
50 
51     /**
52      * The name of the action, must be unique within the schedule. This name provides
53      * the main reference to an action once it is added to the schedule. A name is
54      * unique if it is no longer in the schedule. The schedule is automatically cleaned
55      * up to remove actions with a start time of more than 1 hour ago (approximately)
56      * so at that point a name can be reused.
57      */
ActionNameHasBeenSet()58     inline bool ActionNameHasBeenSet() const { return m_actionNameHasBeenSet; }
59 
60     /**
61      * The name of the action, must be unique within the schedule. This name provides
62      * the main reference to an action once it is added to the schedule. A name is
63      * unique if it is no longer in the schedule. The schedule is automatically cleaned
64      * up to remove actions with a start time of more than 1 hour ago (approximately)
65      * so at that point a name can be reused.
66      */
SetActionName(const Aws::String & value)67     inline void SetActionName(const Aws::String& value) { m_actionNameHasBeenSet = true; m_actionName = value; }
68 
69     /**
70      * The name of the action, must be unique within the schedule. This name provides
71      * the main reference to an action once it is added to the schedule. A name is
72      * unique if it is no longer in the schedule. The schedule is automatically cleaned
73      * up to remove actions with a start time of more than 1 hour ago (approximately)
74      * so at that point a name can be reused.
75      */
SetActionName(Aws::String && value)76     inline void SetActionName(Aws::String&& value) { m_actionNameHasBeenSet = true; m_actionName = std::move(value); }
77 
78     /**
79      * The name of the action, must be unique within the schedule. This name provides
80      * the main reference to an action once it is added to the schedule. A name is
81      * unique if it is no longer in the schedule. The schedule is automatically cleaned
82      * up to remove actions with a start time of more than 1 hour ago (approximately)
83      * so at that point a name can be reused.
84      */
SetActionName(const char * value)85     inline void SetActionName(const char* value) { m_actionNameHasBeenSet = true; m_actionName.assign(value); }
86 
87     /**
88      * The name of the action, must be unique within the schedule. This name provides
89      * the main reference to an action once it is added to the schedule. A name is
90      * unique if it is no longer in the schedule. The schedule is automatically cleaned
91      * up to remove actions with a start time of more than 1 hour ago (approximately)
92      * so at that point a name can be reused.
93      */
WithActionName(const Aws::String & value)94     inline ScheduleAction& WithActionName(const Aws::String& value) { SetActionName(value); return *this;}
95 
96     /**
97      * The name of the action, must be unique within the schedule. This name provides
98      * the main reference to an action once it is added to the schedule. A name is
99      * unique if it is no longer in the schedule. The schedule is automatically cleaned
100      * up to remove actions with a start time of more than 1 hour ago (approximately)
101      * so at that point a name can be reused.
102      */
WithActionName(Aws::String && value)103     inline ScheduleAction& WithActionName(Aws::String&& value) { SetActionName(std::move(value)); return *this;}
104 
105     /**
106      * The name of the action, must be unique within the schedule. This name provides
107      * the main reference to an action once it is added to the schedule. A name is
108      * unique if it is no longer in the schedule. The schedule is automatically cleaned
109      * up to remove actions with a start time of more than 1 hour ago (approximately)
110      * so at that point a name can be reused.
111      */
WithActionName(const char * value)112     inline ScheduleAction& WithActionName(const char* value) { SetActionName(value); return *this;}
113 
114 
115     /**
116      * Settings for this schedule action.
117      */
GetScheduleActionSettings()118     inline const ScheduleActionSettings& GetScheduleActionSettings() const{ return m_scheduleActionSettings; }
119 
120     /**
121      * Settings for this schedule action.
122      */
ScheduleActionSettingsHasBeenSet()123     inline bool ScheduleActionSettingsHasBeenSet() const { return m_scheduleActionSettingsHasBeenSet; }
124 
125     /**
126      * Settings for this schedule action.
127      */
SetScheduleActionSettings(const ScheduleActionSettings & value)128     inline void SetScheduleActionSettings(const ScheduleActionSettings& value) { m_scheduleActionSettingsHasBeenSet = true; m_scheduleActionSettings = value; }
129 
130     /**
131      * Settings for this schedule action.
132      */
SetScheduleActionSettings(ScheduleActionSettings && value)133     inline void SetScheduleActionSettings(ScheduleActionSettings&& value) { m_scheduleActionSettingsHasBeenSet = true; m_scheduleActionSettings = std::move(value); }
134 
135     /**
136      * Settings for this schedule action.
137      */
WithScheduleActionSettings(const ScheduleActionSettings & value)138     inline ScheduleAction& WithScheduleActionSettings(const ScheduleActionSettings& value) { SetScheduleActionSettings(value); return *this;}
139 
140     /**
141      * Settings for this schedule action.
142      */
WithScheduleActionSettings(ScheduleActionSettings && value)143     inline ScheduleAction& WithScheduleActionSettings(ScheduleActionSettings&& value) { SetScheduleActionSettings(std::move(value)); return *this;}
144 
145 
146     /**
147      * The time for the action to start in the channel.
148      */
GetScheduleActionStartSettings()149     inline const ScheduleActionStartSettings& GetScheduleActionStartSettings() const{ return m_scheduleActionStartSettings; }
150 
151     /**
152      * The time for the action to start in the channel.
153      */
ScheduleActionStartSettingsHasBeenSet()154     inline bool ScheduleActionStartSettingsHasBeenSet() const { return m_scheduleActionStartSettingsHasBeenSet; }
155 
156     /**
157      * The time for the action to start in the channel.
158      */
SetScheduleActionStartSettings(const ScheduleActionStartSettings & value)159     inline void SetScheduleActionStartSettings(const ScheduleActionStartSettings& value) { m_scheduleActionStartSettingsHasBeenSet = true; m_scheduleActionStartSettings = value; }
160 
161     /**
162      * The time for the action to start in the channel.
163      */
SetScheduleActionStartSettings(ScheduleActionStartSettings && value)164     inline void SetScheduleActionStartSettings(ScheduleActionStartSettings&& value) { m_scheduleActionStartSettingsHasBeenSet = true; m_scheduleActionStartSettings = std::move(value); }
165 
166     /**
167      * The time for the action to start in the channel.
168      */
WithScheduleActionStartSettings(const ScheduleActionStartSettings & value)169     inline ScheduleAction& WithScheduleActionStartSettings(const ScheduleActionStartSettings& value) { SetScheduleActionStartSettings(value); return *this;}
170 
171     /**
172      * The time for the action to start in the channel.
173      */
WithScheduleActionStartSettings(ScheduleActionStartSettings && value)174     inline ScheduleAction& WithScheduleActionStartSettings(ScheduleActionStartSettings&& value) { SetScheduleActionStartSettings(std::move(value)); return *this;}
175 
176   private:
177 
178     Aws::String m_actionName;
179     bool m_actionNameHasBeenSet;
180 
181     ScheduleActionSettings m_scheduleActionSettings;
182     bool m_scheduleActionSettingsHasBeenSet;
183 
184     ScheduleActionStartSettings m_scheduleActionStartSettings;
185     bool m_scheduleActionStartSettingsHasBeenSet;
186   };
187 
188 } // namespace Model
189 } // namespace MediaLive
190 } // namespace Aws
191