/** * 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.

Fragments that have duplicate producer timestamps are * deduplicated. This means that if producers are producing a stream of fragments * with producer timestamps that are approximately equal to the true clock time, * the clip will contain all of the fragments within the requested timestamp range. * If some fragments are ingested within the same time range and very different * points in time, only the oldest ingested collection of fragments are * returned.

See Also:

AWS * API Reference

*/ class ClipFragmentSelector { public: AWS_KINESISVIDEOARCHIVEDMEDIA_API ClipFragmentSelector(); AWS_KINESISVIDEOARCHIVEDMEDIA_API ClipFragmentSelector(Aws::Utils::Json::JsonView jsonValue); AWS_KINESISVIDEOARCHIVEDMEDIA_API ClipFragmentSelector& 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 ClipFragmentSelectorType& 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 ClipFragmentSelectorType& value) { m_fragmentSelectorTypeHasBeenSet = true; m_fragmentSelectorType = value; } /** *

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

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

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

*/ inline ClipFragmentSelector& WithFragmentSelectorType(const ClipFragmentSelectorType& value) { SetFragmentSelectorType(value); return *this;} /** *

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

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

The range of timestamps to return.

*/ inline const ClipTimestampRange& 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 ClipTimestampRange& value) { m_timestampRangeHasBeenSet = true; m_timestampRange = value; } /** *

The range of timestamps to return.

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

The range of timestamps to return.

*/ inline ClipFragmentSelector& WithTimestampRange(const ClipTimestampRange& value) { SetTimestampRange(value); return *this;} /** *

The range of timestamps to return.

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