/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace KinesisVideoArchivedMedia { namespace Model { /** *

Describes the timestamp range and timestamp origin of a range of * fragments.

Only fragments with a start timestamp greater than or equal to * the given start time and less than or equal to the end time are returned. For * example, if a stream contains fragments with the following start timestamps: *

  • 00:00:00

  • 00:00:02

  • *

    00:00:04

  • 00:00:06

A fragment selector * range with a start time of 00:00:01 and end time of 00:00:04 would return the * fragments with start times of 00:00:02 and 00:00:04.

See Also:

* AWS * API Reference

*/ class FragmentSelector { public: AWS_KINESISVIDEOARCHIVEDMEDIA_API FragmentSelector(); AWS_KINESISVIDEOARCHIVEDMEDIA_API FragmentSelector(Aws::Utils::Json::JsonView jsonValue); AWS_KINESISVIDEOARCHIVEDMEDIA_API FragmentSelector& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_KINESISVIDEOARCHIVEDMEDIA_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The origin of the timestamps to use (Server or Producer).

*/ inline const FragmentSelectorType& GetFragmentSelectorType() const{ return m_fragmentSelectorType; } /** *

The origin of the timestamps to use (Server or Producer).

*/ inline bool FragmentSelectorTypeHasBeenSet() const { return m_fragmentSelectorTypeHasBeenSet; } /** *

The origin of the timestamps to use (Server or Producer).

*/ inline void SetFragmentSelectorType(const FragmentSelectorType& value) { m_fragmentSelectorTypeHasBeenSet = true; m_fragmentSelectorType = value; } /** *

The origin of the timestamps to use (Server or Producer).

*/ inline void SetFragmentSelectorType(FragmentSelectorType&& value) { m_fragmentSelectorTypeHasBeenSet = true; m_fragmentSelectorType = std::move(value); } /** *

The origin of the timestamps to use (Server or Producer).

*/ inline FragmentSelector& WithFragmentSelectorType(const FragmentSelectorType& value) { SetFragmentSelectorType(value); return *this;} /** *

The origin of the timestamps to use (Server or Producer).

*/ inline FragmentSelector& WithFragmentSelectorType(FragmentSelectorType&& value) { SetFragmentSelectorType(std::move(value)); return *this;} /** *

The range of timestamps to return.

*/ inline const TimestampRange& GetTimestampRange() const{ return m_timestampRange; } /** *

The range of timestamps to return.

*/ inline bool TimestampRangeHasBeenSet() const { return m_timestampRangeHasBeenSet; } /** *

The range of timestamps to return.

*/ inline void SetTimestampRange(const TimestampRange& value) { m_timestampRangeHasBeenSet = true; m_timestampRange = value; } /** *

The range of timestamps to return.

*/ inline void SetTimestampRange(TimestampRange&& value) { m_timestampRangeHasBeenSet = true; m_timestampRange = std::move(value); } /** *

The range of timestamps to return.

*/ inline FragmentSelector& WithTimestampRange(const TimestampRange& value) { SetTimestampRange(value); return *this;} /** *

The range of timestamps to return.

*/ inline FragmentSelector& WithTimestampRange(TimestampRange&& value) { SetTimestampRange(std::move(value)); return *this;} private: FragmentSelectorType m_fragmentSelectorType; bool m_fragmentSelectorTypeHasBeenSet = false; TimestampRange m_timestampRange; bool m_timestampRangeHasBeenSet = false; }; } // namespace Model } // namespace KinesisVideoArchivedMedia } // namespace Aws