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

A rule for when objects transition to specific storage classes.

See * Also:

AWS * API Reference

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

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetDate() const{ return m_date; } /** *

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool DateHasBeenSet() const { return m_dateHasBeenSet; } /** *

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetDate(const Aws::String& value) { m_dateHasBeenSet = true; m_date = value; } /** *

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetDate(Aws::String&& value) { m_dateHasBeenSet = true; m_date = std::move(value); } /** *

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetDate(const char* value) { m_dateHasBeenSet = true; m_date.assign(value); } /** *

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails& WithDate(const Aws::String& value) { SetDate(value); return *this;} /** *

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails& WithDate(Aws::String&& value) { SetDate(std::move(value)); return *this;} /** *

A date on which to transition objects to the specified storage class. If you * provide Date, you cannot provide Days.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails& WithDate(const char* value) { SetDate(value); return *this;} /** *

The number of days after which to transition the object to the specified * storage class. If you provide Days, you cannot provide * Date.

*/ inline int GetDays() const{ return m_days; } /** *

The number of days after which to transition the object to the specified * storage class. If you provide Days, you cannot provide * Date.

*/ inline bool DaysHasBeenSet() const { return m_daysHasBeenSet; } /** *

The number of days after which to transition the object to the specified * storage class. If you provide Days, you cannot provide * Date.

*/ inline void SetDays(int value) { m_daysHasBeenSet = true; m_days = value; } /** *

The number of days after which to transition the object to the specified * storage class. If you provide Days, you cannot provide * Date.

*/ inline AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails& WithDays(int value) { SetDays(value); return *this;} /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline const Aws::String& GetStorageClass() const{ return m_storageClass; } /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline bool StorageClassHasBeenSet() const { return m_storageClassHasBeenSet; } /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline void SetStorageClass(const Aws::String& value) { m_storageClassHasBeenSet = true; m_storageClass = value; } /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline void SetStorageClass(Aws::String&& value) { m_storageClassHasBeenSet = true; m_storageClass = std::move(value); } /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline void SetStorageClass(const char* value) { m_storageClassHasBeenSet = true; m_storageClass.assign(value); } /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails& WithStorageClass(const Aws::String& value) { SetStorageClass(value); return *this;} /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails& WithStorageClass(Aws::String&& value) { SetStorageClass(std::move(value)); return *this;} /** *

The storage class to transition the object to. Valid values are as * follows:

  • DEEP_ARCHIVE

  • * GLACIER

  • INTELLIGENT_TIERING

    *
  • ONEZONE_IA

  • * STANDARD_IA

*/ inline AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails& WithStorageClass(const char* value) { SetStorageClass(value); return *this;} private: Aws::String m_date; bool m_dateHasBeenSet = false; int m_days; bool m_daysHasBeenSet = false; Aws::String m_storageClass; bool m_storageClassHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws