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

This API enables you to specify the duration that the camera, or local media * file, should record onto the Edge Agent. The ScheduleConfig * consists of the ScheduleExpression and the * DurationInMinutes attributes.

If the * ScheduleConfig is not provided in the RecorderConfig, * then the Edge Agent will always be set to recording mode.

If the * ScheduleConfig is not provided in the UploaderConfig, * then the Edge Agent will upload at regular intervals (every 1 * hour).

See Also:

AWS * API Reference

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

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline const Aws::String& GetScheduleExpression() const{ return m_scheduleExpression; } /** *

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline bool ScheduleExpressionHasBeenSet() const { return m_scheduleExpressionHasBeenSet; } /** *

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline void SetScheduleExpression(const Aws::String& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = value; } /** *

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline void SetScheduleExpression(Aws::String&& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = std::move(value); } /** *

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline void SetScheduleExpression(const char* value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression.assign(value); } /** *

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline ScheduleConfig& WithScheduleExpression(const Aws::String& value) { SetScheduleExpression(value); return *this;} /** *

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline ScheduleConfig& WithScheduleExpression(Aws::String&& value) { SetScheduleExpression(std::move(value)); return *this;} /** *

The Quartz cron expression that takes care of scheduling jobs to record from * the camera, or local media file, onto the Edge Agent. If the * ScheduleExpression is not provided for the * RecorderConfig, then the Edge Agent will always be set to recording * mode.

For more information about Quartz, refer to the * Cron Trigger Tutorial page to understand the valid expressions and * its use.

*/ inline ScheduleConfig& WithScheduleExpression(const char* value) { SetScheduleExpression(value); return *this;} /** *

The total duration to record the media. If the * ScheduleExpression attribute is provided, then the * DurationInSeconds attribute should also be specified.

*/ inline int GetDurationInSeconds() const{ return m_durationInSeconds; } /** *

The total duration to record the media. If the * ScheduleExpression attribute is provided, then the * DurationInSeconds attribute should also be specified.

*/ inline bool DurationInSecondsHasBeenSet() const { return m_durationInSecondsHasBeenSet; } /** *

The total duration to record the media. If the * ScheduleExpression attribute is provided, then the * DurationInSeconds attribute should also be specified.

*/ inline void SetDurationInSeconds(int value) { m_durationInSecondsHasBeenSet = true; m_durationInSeconds = value; } /** *

The total duration to record the media. If the * ScheduleExpression attribute is provided, then the * DurationInSeconds attribute should also be specified.

*/ inline ScheduleConfig& WithDurationInSeconds(int value) { SetDurationInSeconds(value); return *this;} private: Aws::String m_scheduleExpression; bool m_scheduleExpressionHasBeenSet = false; int m_durationInSeconds; bool m_durationInSecondsHasBeenSet = false; }; } // namespace Model } // namespace KinesisVideo } // namespace Aws