/** * 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 WorkMail { namespace Model { /** *

The configuration applied to an organization's folders by its retention * policy.

See Also:

AWS * API Reference

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

The folder name.

*/ inline const FolderName& GetName() const{ return m_name; } /** *

The folder name.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The folder name.

*/ inline void SetName(const FolderName& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The folder name.

*/ inline void SetName(FolderName&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The folder name.

*/ inline FolderConfiguration& WithName(const FolderName& value) { SetName(value); return *this;} /** *

The folder name.

*/ inline FolderConfiguration& WithName(FolderName&& value) { SetName(std::move(value)); return *this;} /** *

The action to take on the folder contents at the end of the folder * configuration period.

*/ inline const RetentionAction& GetAction() const{ return m_action; } /** *

The action to take on the folder contents at the end of the folder * configuration period.

*/ inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; } /** *

The action to take on the folder contents at the end of the folder * configuration period.

*/ inline void SetAction(const RetentionAction& value) { m_actionHasBeenSet = true; m_action = value; } /** *

The action to take on the folder contents at the end of the folder * configuration period.

*/ inline void SetAction(RetentionAction&& value) { m_actionHasBeenSet = true; m_action = std::move(value); } /** *

The action to take on the folder contents at the end of the folder * configuration period.

*/ inline FolderConfiguration& WithAction(const RetentionAction& value) { SetAction(value); return *this;} /** *

The action to take on the folder contents at the end of the folder * configuration period.

*/ inline FolderConfiguration& WithAction(RetentionAction&& value) { SetAction(std::move(value)); return *this;} /** *

The number of days for which the folder-configuration action applies.

*/ inline int GetPeriod() const{ return m_period; } /** *

The number of days for which the folder-configuration action applies.

*/ inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; } /** *

The number of days for which the folder-configuration action applies.

*/ inline void SetPeriod(int value) { m_periodHasBeenSet = true; m_period = value; } /** *

The number of days for which the folder-configuration action applies.

*/ inline FolderConfiguration& WithPeriod(int value) { SetPeriod(value); return *this;} private: FolderName m_name; bool m_nameHasBeenSet = false; RetentionAction m_action; bool m_actionHasBeenSet = false; int m_period; bool m_periodHasBeenSet = false; }; } // namespace Model } // namespace WorkMail } // namespace Aws