/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { template class AmazonWebServiceResult; namespace Utils { namespace Json { class JsonValue; } // namespace Json } // namespace Utils namespace KMS { namespace Model { class ScheduleKeyDeletionResult { public: AWS_KMS_API ScheduleKeyDeletionResult(); AWS_KMS_API ScheduleKeyDeletionResult(const Aws::AmazonWebServiceResult& result); AWS_KMS_API ScheduleKeyDeletionResult& operator=(const Aws::AmazonWebServiceResult& result); /** *

The Amazon Resource Name (key * ARN) of the KMS key whose deletion is scheduled.

*/ inline const Aws::String& GetKeyId() const{ return m_keyId; } /** *

The Amazon Resource Name (key * ARN) of the KMS key whose deletion is scheduled.

*/ inline void SetKeyId(const Aws::String& value) { m_keyId = value; } /** *

The Amazon Resource Name (key * ARN) of the KMS key whose deletion is scheduled.

*/ inline void SetKeyId(Aws::String&& value) { m_keyId = std::move(value); } /** *

The Amazon Resource Name (key * ARN) of the KMS key whose deletion is scheduled.

*/ inline void SetKeyId(const char* value) { m_keyId.assign(value); } /** *

The Amazon Resource Name (key * ARN) of the KMS key whose deletion is scheduled.

*/ inline ScheduleKeyDeletionResult& WithKeyId(const Aws::String& value) { SetKeyId(value); return *this;} /** *

The Amazon Resource Name (key * ARN) of the KMS key whose deletion is scheduled.

*/ inline ScheduleKeyDeletionResult& WithKeyId(Aws::String&& value) { SetKeyId(std::move(value)); return *this;} /** *

The Amazon Resource Name (key * ARN) of the KMS key whose deletion is scheduled.

*/ inline ScheduleKeyDeletionResult& WithKeyId(const char* value) { SetKeyId(value); return *this;} /** *

The date and time after which KMS deletes the KMS key.

If the KMS key * is a multi-Region primary key with replica keys, this field does not appear. The * deletion date for the primary key isn't known until its last replica key is * deleted.

*/ inline const Aws::Utils::DateTime& GetDeletionDate() const{ return m_deletionDate; } /** *

The date and time after which KMS deletes the KMS key.

If the KMS key * is a multi-Region primary key with replica keys, this field does not appear. The * deletion date for the primary key isn't known until its last replica key is * deleted.

*/ inline void SetDeletionDate(const Aws::Utils::DateTime& value) { m_deletionDate = value; } /** *

The date and time after which KMS deletes the KMS key.

If the KMS key * is a multi-Region primary key with replica keys, this field does not appear. The * deletion date for the primary key isn't known until its last replica key is * deleted.

*/ inline void SetDeletionDate(Aws::Utils::DateTime&& value) { m_deletionDate = std::move(value); } /** *

The date and time after which KMS deletes the KMS key.

If the KMS key * is a multi-Region primary key with replica keys, this field does not appear. The * deletion date for the primary key isn't known until its last replica key is * deleted.

*/ inline ScheduleKeyDeletionResult& WithDeletionDate(const Aws::Utils::DateTime& value) { SetDeletionDate(value); return *this;} /** *

The date and time after which KMS deletes the KMS key.

If the KMS key * is a multi-Region primary key with replica keys, this field does not appear. The * deletion date for the primary key isn't known until its last replica key is * deleted.

*/ inline ScheduleKeyDeletionResult& WithDeletionDate(Aws::Utils::DateTime&& value) { SetDeletionDate(std::move(value)); return *this;} /** *

The current status of the KMS key.

For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.

*/ inline const KeyState& GetKeyState() const{ return m_keyState; } /** *

The current status of the KMS key.

For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.

*/ inline void SetKeyState(const KeyState& value) { m_keyState = value; } /** *

The current status of the KMS key.

For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.

*/ inline void SetKeyState(KeyState&& value) { m_keyState = std::move(value); } /** *

The current status of the KMS key.

For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.

*/ inline ScheduleKeyDeletionResult& WithKeyState(const KeyState& value) { SetKeyState(value); return *this;} /** *

The current status of the KMS key.

For more information about how key * state affects the use of a KMS key, see Key * states of KMS keys in the Key Management Service Developer Guide.

*/ inline ScheduleKeyDeletionResult& WithKeyState(KeyState&& value) { SetKeyState(std::move(value)); return *this;} /** *

The waiting period before the KMS key is deleted.

If the KMS key is a * multi-Region primary key with replicas, the waiting period begins when the last * of its replica keys is deleted. Otherwise, the waiting period begins * immediately.

*/ inline int GetPendingWindowInDays() const{ return m_pendingWindowInDays; } /** *

The waiting period before the KMS key is deleted.

If the KMS key is a * multi-Region primary key with replicas, the waiting period begins when the last * of its replica keys is deleted. Otherwise, the waiting period begins * immediately.

*/ inline void SetPendingWindowInDays(int value) { m_pendingWindowInDays = value; } /** *

The waiting period before the KMS key is deleted.

If the KMS key is a * multi-Region primary key with replicas, the waiting period begins when the last * of its replica keys is deleted. Otherwise, the waiting period begins * immediately.

*/ inline ScheduleKeyDeletionResult& WithPendingWindowInDays(int value) { SetPendingWindowInDays(value); return *this;} inline const Aws::String& GetRequestId() const{ return m_requestId; } inline void SetRequestId(const Aws::String& value) { m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestId.assign(value); } inline ScheduleKeyDeletionResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline ScheduleKeyDeletionResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline ScheduleKeyDeletionResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::String m_keyId; Aws::Utils::DateTime m_deletionDate; KeyState m_keyState; int m_pendingWindowInDays; Aws::String m_requestId; }; } // namespace Model } // namespace KMS } // namespace Aws