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/Scte35DeliveryRestrictions.h>
9 #include <aws/medialive/model/Scte35SegmentationCancelIndicator.h>
10 #include <aws/core/utils/memory/stl/AWSString.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    * Corresponds to SCTE-35 segmentation_descriptor.<p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/Scte35SegmentationDescriptor">AWS
31    * API Reference</a></p>
32    */
33   class AWS_MEDIALIVE_API Scte35SegmentationDescriptor
34   {
35   public:
36     Scte35SegmentationDescriptor();
37     Scte35SegmentationDescriptor(Aws::Utils::Json::JsonView jsonValue);
38     Scte35SegmentationDescriptor& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * Holds the four SCTE-35 delivery restriction parameters.
44      */
GetDeliveryRestrictions()45     inline const Scte35DeliveryRestrictions& GetDeliveryRestrictions() const{ return m_deliveryRestrictions; }
46 
47     /**
48      * Holds the four SCTE-35 delivery restriction parameters.
49      */
DeliveryRestrictionsHasBeenSet()50     inline bool DeliveryRestrictionsHasBeenSet() const { return m_deliveryRestrictionsHasBeenSet; }
51 
52     /**
53      * Holds the four SCTE-35 delivery restriction parameters.
54      */
SetDeliveryRestrictions(const Scte35DeliveryRestrictions & value)55     inline void SetDeliveryRestrictions(const Scte35DeliveryRestrictions& value) { m_deliveryRestrictionsHasBeenSet = true; m_deliveryRestrictions = value; }
56 
57     /**
58      * Holds the four SCTE-35 delivery restriction parameters.
59      */
SetDeliveryRestrictions(Scte35DeliveryRestrictions && value)60     inline void SetDeliveryRestrictions(Scte35DeliveryRestrictions&& value) { m_deliveryRestrictionsHasBeenSet = true; m_deliveryRestrictions = std::move(value); }
61 
62     /**
63      * Holds the four SCTE-35 delivery restriction parameters.
64      */
WithDeliveryRestrictions(const Scte35DeliveryRestrictions & value)65     inline Scte35SegmentationDescriptor& WithDeliveryRestrictions(const Scte35DeliveryRestrictions& value) { SetDeliveryRestrictions(value); return *this;}
66 
67     /**
68      * Holds the four SCTE-35 delivery restriction parameters.
69      */
WithDeliveryRestrictions(Scte35DeliveryRestrictions && value)70     inline Scte35SegmentationDescriptor& WithDeliveryRestrictions(Scte35DeliveryRestrictions&& value) { SetDeliveryRestrictions(std::move(value)); return *this;}
71 
72 
73     /**
74      * Corresponds to SCTE-35 segment_num. A value that is valid for the specified
75      * segmentation_type_id.
76      */
GetSegmentNum()77     inline int GetSegmentNum() const{ return m_segmentNum; }
78 
79     /**
80      * Corresponds to SCTE-35 segment_num. A value that is valid for the specified
81      * segmentation_type_id.
82      */
SegmentNumHasBeenSet()83     inline bool SegmentNumHasBeenSet() const { return m_segmentNumHasBeenSet; }
84 
85     /**
86      * Corresponds to SCTE-35 segment_num. A value that is valid for the specified
87      * segmentation_type_id.
88      */
SetSegmentNum(int value)89     inline void SetSegmentNum(int value) { m_segmentNumHasBeenSet = true; m_segmentNum = value; }
90 
91     /**
92      * Corresponds to SCTE-35 segment_num. A value that is valid for the specified
93      * segmentation_type_id.
94      */
WithSegmentNum(int value)95     inline Scte35SegmentationDescriptor& WithSegmentNum(int value) { SetSegmentNum(value); return *this;}
96 
97 
98     /**
99      * Corresponds to SCTE-35 segmentation_event_cancel_indicator.
100      */
GetSegmentationCancelIndicator()101     inline const Scte35SegmentationCancelIndicator& GetSegmentationCancelIndicator() const{ return m_segmentationCancelIndicator; }
102 
103     /**
104      * Corresponds to SCTE-35 segmentation_event_cancel_indicator.
105      */
SegmentationCancelIndicatorHasBeenSet()106     inline bool SegmentationCancelIndicatorHasBeenSet() const { return m_segmentationCancelIndicatorHasBeenSet; }
107 
108     /**
109      * Corresponds to SCTE-35 segmentation_event_cancel_indicator.
110      */
SetSegmentationCancelIndicator(const Scte35SegmentationCancelIndicator & value)111     inline void SetSegmentationCancelIndicator(const Scte35SegmentationCancelIndicator& value) { m_segmentationCancelIndicatorHasBeenSet = true; m_segmentationCancelIndicator = value; }
112 
113     /**
114      * Corresponds to SCTE-35 segmentation_event_cancel_indicator.
115      */
SetSegmentationCancelIndicator(Scte35SegmentationCancelIndicator && value)116     inline void SetSegmentationCancelIndicator(Scte35SegmentationCancelIndicator&& value) { m_segmentationCancelIndicatorHasBeenSet = true; m_segmentationCancelIndicator = std::move(value); }
117 
118     /**
119      * Corresponds to SCTE-35 segmentation_event_cancel_indicator.
120      */
WithSegmentationCancelIndicator(const Scte35SegmentationCancelIndicator & value)121     inline Scte35SegmentationDescriptor& WithSegmentationCancelIndicator(const Scte35SegmentationCancelIndicator& value) { SetSegmentationCancelIndicator(value); return *this;}
122 
123     /**
124      * Corresponds to SCTE-35 segmentation_event_cancel_indicator.
125      */
WithSegmentationCancelIndicator(Scte35SegmentationCancelIndicator && value)126     inline Scte35SegmentationDescriptor& WithSegmentationCancelIndicator(Scte35SegmentationCancelIndicator&& value) { SetSegmentationCancelIndicator(std::move(value)); return *this;}
127 
128 
129     /**
130      * Corresponds to SCTE-35 segmentation_duration. Optional. The duration for the
131      * time_signal, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds
132      * by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a duration, the
133      * time_signal will continue until you insert a cancellation message.
134      */
GetSegmentationDuration()135     inline long long GetSegmentationDuration() const{ return m_segmentationDuration; }
136 
137     /**
138      * Corresponds to SCTE-35 segmentation_duration. Optional. The duration for the
139      * time_signal, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds
140      * by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a duration, the
141      * time_signal will continue until you insert a cancellation message.
142      */
SegmentationDurationHasBeenSet()143     inline bool SegmentationDurationHasBeenSet() const { return m_segmentationDurationHasBeenSet; }
144 
145     /**
146      * Corresponds to SCTE-35 segmentation_duration. Optional. The duration for the
147      * time_signal, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds
148      * by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a duration, the
149      * time_signal will continue until you insert a cancellation message.
150      */
SetSegmentationDuration(long long value)151     inline void SetSegmentationDuration(long long value) { m_segmentationDurationHasBeenSet = true; m_segmentationDuration = value; }
152 
153     /**
154      * Corresponds to SCTE-35 segmentation_duration. Optional. The duration for the
155      * time_signal, in 90 KHz ticks. To convert seconds to ticks, multiple the seconds
156      * by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a duration, the
157      * time_signal will continue until you insert a cancellation message.
158      */
WithSegmentationDuration(long long value)159     inline Scte35SegmentationDescriptor& WithSegmentationDuration(long long value) { SetSegmentationDuration(value); return *this;}
160 
161 
162     /**
163      * Corresponds to SCTE-35 segmentation_event_id.
164      */
GetSegmentationEventId()165     inline long long GetSegmentationEventId() const{ return m_segmentationEventId; }
166 
167     /**
168      * Corresponds to SCTE-35 segmentation_event_id.
169      */
SegmentationEventIdHasBeenSet()170     inline bool SegmentationEventIdHasBeenSet() const { return m_segmentationEventIdHasBeenSet; }
171 
172     /**
173      * Corresponds to SCTE-35 segmentation_event_id.
174      */
SetSegmentationEventId(long long value)175     inline void SetSegmentationEventId(long long value) { m_segmentationEventIdHasBeenSet = true; m_segmentationEventId = value; }
176 
177     /**
178      * Corresponds to SCTE-35 segmentation_event_id.
179      */
WithSegmentationEventId(long long value)180     inline Scte35SegmentationDescriptor& WithSegmentationEventId(long long value) { SetSegmentationEventId(value); return *this;}
181 
182 
183     /**
184      * Corresponds to SCTE-35 segmentation_type_id. One of the segmentation_type_id
185      * values listed in the SCTE-35 specification. On the console, enter the ID in
186      * decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex
187      * (for example, "0x34") or decimal (for example, "52").
188      */
GetSegmentationTypeId()189     inline int GetSegmentationTypeId() const{ return m_segmentationTypeId; }
190 
191     /**
192      * Corresponds to SCTE-35 segmentation_type_id. One of the segmentation_type_id
193      * values listed in the SCTE-35 specification. On the console, enter the ID in
194      * decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex
195      * (for example, "0x34") or decimal (for example, "52").
196      */
SegmentationTypeIdHasBeenSet()197     inline bool SegmentationTypeIdHasBeenSet() const { return m_segmentationTypeIdHasBeenSet; }
198 
199     /**
200      * Corresponds to SCTE-35 segmentation_type_id. One of the segmentation_type_id
201      * values listed in the SCTE-35 specification. On the console, enter the ID in
202      * decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex
203      * (for example, "0x34") or decimal (for example, "52").
204      */
SetSegmentationTypeId(int value)205     inline void SetSegmentationTypeId(int value) { m_segmentationTypeIdHasBeenSet = true; m_segmentationTypeId = value; }
206 
207     /**
208      * Corresponds to SCTE-35 segmentation_type_id. One of the segmentation_type_id
209      * values listed in the SCTE-35 specification. On the console, enter the ID in
210      * decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex
211      * (for example, "0x34") or decimal (for example, "52").
212      */
WithSegmentationTypeId(int value)213     inline Scte35SegmentationDescriptor& WithSegmentationTypeId(int value) { SetSegmentationTypeId(value); return *this;}
214 
215 
216     /**
217      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
218      * hexadecimal representation of the characters that make up the SCTE-35
219      * segmentation_upid value. Must contain an even number of hex characters. Do not
220      * include spaces between each hex pair. For example, the ASCII "ADS Information"
221      * becomes hex "41445320496e666f726d6174696f6e.
222      */
GetSegmentationUpid()223     inline const Aws::String& GetSegmentationUpid() const{ return m_segmentationUpid; }
224 
225     /**
226      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
227      * hexadecimal representation of the characters that make up the SCTE-35
228      * segmentation_upid value. Must contain an even number of hex characters. Do not
229      * include spaces between each hex pair. For example, the ASCII "ADS Information"
230      * becomes hex "41445320496e666f726d6174696f6e.
231      */
SegmentationUpidHasBeenSet()232     inline bool SegmentationUpidHasBeenSet() const { return m_segmentationUpidHasBeenSet; }
233 
234     /**
235      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
236      * hexadecimal representation of the characters that make up the SCTE-35
237      * segmentation_upid value. Must contain an even number of hex characters. Do not
238      * include spaces between each hex pair. For example, the ASCII "ADS Information"
239      * becomes hex "41445320496e666f726d6174696f6e.
240      */
SetSegmentationUpid(const Aws::String & value)241     inline void SetSegmentationUpid(const Aws::String& value) { m_segmentationUpidHasBeenSet = true; m_segmentationUpid = value; }
242 
243     /**
244      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
245      * hexadecimal representation of the characters that make up the SCTE-35
246      * segmentation_upid value. Must contain an even number of hex characters. Do not
247      * include spaces between each hex pair. For example, the ASCII "ADS Information"
248      * becomes hex "41445320496e666f726d6174696f6e.
249      */
SetSegmentationUpid(Aws::String && value)250     inline void SetSegmentationUpid(Aws::String&& value) { m_segmentationUpidHasBeenSet = true; m_segmentationUpid = std::move(value); }
251 
252     /**
253      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
254      * hexadecimal representation of the characters that make up the SCTE-35
255      * segmentation_upid value. Must contain an even number of hex characters. Do not
256      * include spaces between each hex pair. For example, the ASCII "ADS Information"
257      * becomes hex "41445320496e666f726d6174696f6e.
258      */
SetSegmentationUpid(const char * value)259     inline void SetSegmentationUpid(const char* value) { m_segmentationUpidHasBeenSet = true; m_segmentationUpid.assign(value); }
260 
261     /**
262      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
263      * hexadecimal representation of the characters that make up the SCTE-35
264      * segmentation_upid value. Must contain an even number of hex characters. Do not
265      * include spaces between each hex pair. For example, the ASCII "ADS Information"
266      * becomes hex "41445320496e666f726d6174696f6e.
267      */
WithSegmentationUpid(const Aws::String & value)268     inline Scte35SegmentationDescriptor& WithSegmentationUpid(const Aws::String& value) { SetSegmentationUpid(value); return *this;}
269 
270     /**
271      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
272      * hexadecimal representation of the characters that make up the SCTE-35
273      * segmentation_upid value. Must contain an even number of hex characters. Do not
274      * include spaces between each hex pair. For example, the ASCII "ADS Information"
275      * becomes hex "41445320496e666f726d6174696f6e.
276      */
WithSegmentationUpid(Aws::String && value)277     inline Scte35SegmentationDescriptor& WithSegmentationUpid(Aws::String&& value) { SetSegmentationUpid(std::move(value)); return *this;}
278 
279     /**
280      * Corresponds to SCTE-35 segmentation_upid. Enter a string containing the
281      * hexadecimal representation of the characters that make up the SCTE-35
282      * segmentation_upid value. Must contain an even number of hex characters. Do not
283      * include spaces between each hex pair. For example, the ASCII "ADS Information"
284      * becomes hex "41445320496e666f726d6174696f6e.
285      */
WithSegmentationUpid(const char * value)286     inline Scte35SegmentationDescriptor& WithSegmentationUpid(const char* value) { SetSegmentationUpid(value); return *this;}
287 
288 
289     /**
290      * Corresponds to SCTE-35 segmentation_upid_type. On the console, enter one of the
291      * types listed in the SCTE-35 specification, converted to a decimal. For example,
292      * "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an
293      * SDK, enter one of the types listed in the SCTE-35 specification, in either hex
294      * (for example, "0x0C" ) or in decimal (for example, "12").
295      */
GetSegmentationUpidType()296     inline int GetSegmentationUpidType() const{ return m_segmentationUpidType; }
297 
298     /**
299      * Corresponds to SCTE-35 segmentation_upid_type. On the console, enter one of the
300      * types listed in the SCTE-35 specification, converted to a decimal. For example,
301      * "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an
302      * SDK, enter one of the types listed in the SCTE-35 specification, in either hex
303      * (for example, "0x0C" ) or in decimal (for example, "12").
304      */
SegmentationUpidTypeHasBeenSet()305     inline bool SegmentationUpidTypeHasBeenSet() const { return m_segmentationUpidTypeHasBeenSet; }
306 
307     /**
308      * Corresponds to SCTE-35 segmentation_upid_type. On the console, enter one of the
309      * types listed in the SCTE-35 specification, converted to a decimal. For example,
310      * "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an
311      * SDK, enter one of the types listed in the SCTE-35 specification, in either hex
312      * (for example, "0x0C" ) or in decimal (for example, "12").
313      */
SetSegmentationUpidType(int value)314     inline void SetSegmentationUpidType(int value) { m_segmentationUpidTypeHasBeenSet = true; m_segmentationUpidType = value; }
315 
316     /**
317      * Corresponds to SCTE-35 segmentation_upid_type. On the console, enter one of the
318      * types listed in the SCTE-35 specification, converted to a decimal. For example,
319      * "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an
320      * SDK, enter one of the types listed in the SCTE-35 specification, in either hex
321      * (for example, "0x0C" ) or in decimal (for example, "12").
322      */
WithSegmentationUpidType(int value)323     inline Scte35SegmentationDescriptor& WithSegmentationUpidType(int value) { SetSegmentationUpidType(value); return *this;}
324 
325 
326     /**
327      * Corresponds to SCTE-35 segments_expected. A value that is valid for the
328      * specified segmentation_type_id.
329      */
GetSegmentsExpected()330     inline int GetSegmentsExpected() const{ return m_segmentsExpected; }
331 
332     /**
333      * Corresponds to SCTE-35 segments_expected. A value that is valid for the
334      * specified segmentation_type_id.
335      */
SegmentsExpectedHasBeenSet()336     inline bool SegmentsExpectedHasBeenSet() const { return m_segmentsExpectedHasBeenSet; }
337 
338     /**
339      * Corresponds to SCTE-35 segments_expected. A value that is valid for the
340      * specified segmentation_type_id.
341      */
SetSegmentsExpected(int value)342     inline void SetSegmentsExpected(int value) { m_segmentsExpectedHasBeenSet = true; m_segmentsExpected = value; }
343 
344     /**
345      * Corresponds to SCTE-35 segments_expected. A value that is valid for the
346      * specified segmentation_type_id.
347      */
WithSegmentsExpected(int value)348     inline Scte35SegmentationDescriptor& WithSegmentsExpected(int value) { SetSegmentsExpected(value); return *this;}
349 
350 
351     /**
352      * Corresponds to SCTE-35 sub_segment_num. A value that is valid for the specified
353      * segmentation_type_id.
354      */
GetSubSegmentNum()355     inline int GetSubSegmentNum() const{ return m_subSegmentNum; }
356 
357     /**
358      * Corresponds to SCTE-35 sub_segment_num. A value that is valid for the specified
359      * segmentation_type_id.
360      */
SubSegmentNumHasBeenSet()361     inline bool SubSegmentNumHasBeenSet() const { return m_subSegmentNumHasBeenSet; }
362 
363     /**
364      * Corresponds to SCTE-35 sub_segment_num. A value that is valid for the specified
365      * segmentation_type_id.
366      */
SetSubSegmentNum(int value)367     inline void SetSubSegmentNum(int value) { m_subSegmentNumHasBeenSet = true; m_subSegmentNum = value; }
368 
369     /**
370      * Corresponds to SCTE-35 sub_segment_num. A value that is valid for the specified
371      * segmentation_type_id.
372      */
WithSubSegmentNum(int value)373     inline Scte35SegmentationDescriptor& WithSubSegmentNum(int value) { SetSubSegmentNum(value); return *this;}
374 
375 
376     /**
377      * Corresponds to SCTE-35 sub_segments_expected. A value that is valid for the
378      * specified segmentation_type_id.
379      */
GetSubSegmentsExpected()380     inline int GetSubSegmentsExpected() const{ return m_subSegmentsExpected; }
381 
382     /**
383      * Corresponds to SCTE-35 sub_segments_expected. A value that is valid for the
384      * specified segmentation_type_id.
385      */
SubSegmentsExpectedHasBeenSet()386     inline bool SubSegmentsExpectedHasBeenSet() const { return m_subSegmentsExpectedHasBeenSet; }
387 
388     /**
389      * Corresponds to SCTE-35 sub_segments_expected. A value that is valid for the
390      * specified segmentation_type_id.
391      */
SetSubSegmentsExpected(int value)392     inline void SetSubSegmentsExpected(int value) { m_subSegmentsExpectedHasBeenSet = true; m_subSegmentsExpected = value; }
393 
394     /**
395      * Corresponds to SCTE-35 sub_segments_expected. A value that is valid for the
396      * specified segmentation_type_id.
397      */
WithSubSegmentsExpected(int value)398     inline Scte35SegmentationDescriptor& WithSubSegmentsExpected(int value) { SetSubSegmentsExpected(value); return *this;}
399 
400   private:
401 
402     Scte35DeliveryRestrictions m_deliveryRestrictions;
403     bool m_deliveryRestrictionsHasBeenSet;
404 
405     int m_segmentNum;
406     bool m_segmentNumHasBeenSet;
407 
408     Scte35SegmentationCancelIndicator m_segmentationCancelIndicator;
409     bool m_segmentationCancelIndicatorHasBeenSet;
410 
411     long long m_segmentationDuration;
412     bool m_segmentationDurationHasBeenSet;
413 
414     long long m_segmentationEventId;
415     bool m_segmentationEventIdHasBeenSet;
416 
417     int m_segmentationTypeId;
418     bool m_segmentationTypeIdHasBeenSet;
419 
420     Aws::String m_segmentationUpid;
421     bool m_segmentationUpidHasBeenSet;
422 
423     int m_segmentationUpidType;
424     bool m_segmentationUpidTypeHasBeenSet;
425 
426     int m_segmentsExpected;
427     bool m_segmentsExpectedHasBeenSet;
428 
429     int m_subSegmentNum;
430     bool m_subSegmentNumHasBeenSet;
431 
432     int m_subSegmentsExpected;
433     bool m_subSegmentsExpectedHasBeenSet;
434   };
435 
436 } // namespace Model
437 } // namespace MediaLive
438 } // namespace Aws
439