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/model/InputLossActionForUdpOut.h>
9 #include <aws/medialive/model/UdpTimedMetadataId3Frame.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace MediaLive
23 {
24 namespace Model
25 {
26 
27   /**
28    * Udp Group Settings<p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/UdpGroupSettings">AWS
30    * API Reference</a></p>
31    */
32   class AWS_MEDIALIVE_API UdpGroupSettings
33   {
34   public:
35     UdpGroupSettings();
36     UdpGroupSettings(Aws::Utils::Json::JsonView jsonValue);
37     UdpGroupSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * Specifies behavior of last resort when input video is lost, and no more backup
43      * inputs are available. When dropTs is selected the entire transport stream will
44      * stop being emitted.  When dropProgram is selected the program can be dropped
45      * from the transport stream (and replaced with null packets to meet the TS bitrate
46      * requirement).  Or, when emitProgram is chosen the transport stream will continue
47      * to be produced normally with repeat frames, black frames, or slate frames
48      * substituted for the absent input video.
49      */
GetInputLossAction()50     inline const InputLossActionForUdpOut& GetInputLossAction() const{ return m_inputLossAction; }
51 
52     /**
53      * Specifies behavior of last resort when input video is lost, and no more backup
54      * inputs are available. When dropTs is selected the entire transport stream will
55      * stop being emitted.  When dropProgram is selected the program can be dropped
56      * from the transport stream (and replaced with null packets to meet the TS bitrate
57      * requirement).  Or, when emitProgram is chosen the transport stream will continue
58      * to be produced normally with repeat frames, black frames, or slate frames
59      * substituted for the absent input video.
60      */
InputLossActionHasBeenSet()61     inline bool InputLossActionHasBeenSet() const { return m_inputLossActionHasBeenSet; }
62 
63     /**
64      * Specifies behavior of last resort when input video is lost, and no more backup
65      * inputs are available. When dropTs is selected the entire transport stream will
66      * stop being emitted.  When dropProgram is selected the program can be dropped
67      * from the transport stream (and replaced with null packets to meet the TS bitrate
68      * requirement).  Or, when emitProgram is chosen the transport stream will continue
69      * to be produced normally with repeat frames, black frames, or slate frames
70      * substituted for the absent input video.
71      */
SetInputLossAction(const InputLossActionForUdpOut & value)72     inline void SetInputLossAction(const InputLossActionForUdpOut& value) { m_inputLossActionHasBeenSet = true; m_inputLossAction = value; }
73 
74     /**
75      * Specifies behavior of last resort when input video is lost, and no more backup
76      * inputs are available. When dropTs is selected the entire transport stream will
77      * stop being emitted.  When dropProgram is selected the program can be dropped
78      * from the transport stream (and replaced with null packets to meet the TS bitrate
79      * requirement).  Or, when emitProgram is chosen the transport stream will continue
80      * to be produced normally with repeat frames, black frames, or slate frames
81      * substituted for the absent input video.
82      */
SetInputLossAction(InputLossActionForUdpOut && value)83     inline void SetInputLossAction(InputLossActionForUdpOut&& value) { m_inputLossActionHasBeenSet = true; m_inputLossAction = std::move(value); }
84 
85     /**
86      * Specifies behavior of last resort when input video is lost, and no more backup
87      * inputs are available. When dropTs is selected the entire transport stream will
88      * stop being emitted.  When dropProgram is selected the program can be dropped
89      * from the transport stream (and replaced with null packets to meet the TS bitrate
90      * requirement).  Or, when emitProgram is chosen the transport stream will continue
91      * to be produced normally with repeat frames, black frames, or slate frames
92      * substituted for the absent input video.
93      */
WithInputLossAction(const InputLossActionForUdpOut & value)94     inline UdpGroupSettings& WithInputLossAction(const InputLossActionForUdpOut& value) { SetInputLossAction(value); return *this;}
95 
96     /**
97      * Specifies behavior of last resort when input video is lost, and no more backup
98      * inputs are available. When dropTs is selected the entire transport stream will
99      * stop being emitted.  When dropProgram is selected the program can be dropped
100      * from the transport stream (and replaced with null packets to meet the TS bitrate
101      * requirement).  Or, when emitProgram is chosen the transport stream will continue
102      * to be produced normally with repeat frames, black frames, or slate frames
103      * substituted for the absent input video.
104      */
WithInputLossAction(InputLossActionForUdpOut && value)105     inline UdpGroupSettings& WithInputLossAction(InputLossActionForUdpOut&& value) { SetInputLossAction(std::move(value)); return *this;}
106 
107 
108     /**
109      * Indicates ID3 frame that has the timecode.
110      */
GetTimedMetadataId3Frame()111     inline const UdpTimedMetadataId3Frame& GetTimedMetadataId3Frame() const{ return m_timedMetadataId3Frame; }
112 
113     /**
114      * Indicates ID3 frame that has the timecode.
115      */
TimedMetadataId3FrameHasBeenSet()116     inline bool TimedMetadataId3FrameHasBeenSet() const { return m_timedMetadataId3FrameHasBeenSet; }
117 
118     /**
119      * Indicates ID3 frame that has the timecode.
120      */
SetTimedMetadataId3Frame(const UdpTimedMetadataId3Frame & value)121     inline void SetTimedMetadataId3Frame(const UdpTimedMetadataId3Frame& value) { m_timedMetadataId3FrameHasBeenSet = true; m_timedMetadataId3Frame = value; }
122 
123     /**
124      * Indicates ID3 frame that has the timecode.
125      */
SetTimedMetadataId3Frame(UdpTimedMetadataId3Frame && value)126     inline void SetTimedMetadataId3Frame(UdpTimedMetadataId3Frame&& value) { m_timedMetadataId3FrameHasBeenSet = true; m_timedMetadataId3Frame = std::move(value); }
127 
128     /**
129      * Indicates ID3 frame that has the timecode.
130      */
WithTimedMetadataId3Frame(const UdpTimedMetadataId3Frame & value)131     inline UdpGroupSettings& WithTimedMetadataId3Frame(const UdpTimedMetadataId3Frame& value) { SetTimedMetadataId3Frame(value); return *this;}
132 
133     /**
134      * Indicates ID3 frame that has the timecode.
135      */
WithTimedMetadataId3Frame(UdpTimedMetadataId3Frame && value)136     inline UdpGroupSettings& WithTimedMetadataId3Frame(UdpTimedMetadataId3Frame&& value) { SetTimedMetadataId3Frame(std::move(value)); return *this;}
137 
138 
139     /**
140      * Timed Metadata interval in seconds.
141      */
GetTimedMetadataId3Period()142     inline int GetTimedMetadataId3Period() const{ return m_timedMetadataId3Period; }
143 
144     /**
145      * Timed Metadata interval in seconds.
146      */
TimedMetadataId3PeriodHasBeenSet()147     inline bool TimedMetadataId3PeriodHasBeenSet() const { return m_timedMetadataId3PeriodHasBeenSet; }
148 
149     /**
150      * Timed Metadata interval in seconds.
151      */
SetTimedMetadataId3Period(int value)152     inline void SetTimedMetadataId3Period(int value) { m_timedMetadataId3PeriodHasBeenSet = true; m_timedMetadataId3Period = value; }
153 
154     /**
155      * Timed Metadata interval in seconds.
156      */
WithTimedMetadataId3Period(int value)157     inline UdpGroupSettings& WithTimedMetadataId3Period(int value) { SetTimedMetadataId3Period(value); return *this;}
158 
159   private:
160 
161     InputLossActionForUdpOut m_inputLossAction;
162     bool m_inputLossActionHasBeenSet;
163 
164     UdpTimedMetadataId3Frame m_timedMetadataId3Frame;
165     bool m_timedMetadataId3FrameHasBeenSet;
166 
167     int m_timedMetadataId3Period;
168     bool m_timedMetadataId3PeriodHasBeenSet;
169   };
170 
171 } // namespace Model
172 } // namespace MediaLive
173 } // namespace Aws
174