/** * 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 { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace PaymentCryptographyData { namespace Model { /** *

Parameters that are required to perform encryption and decryption * operations.

See Also:

AWS * API Reference

*/ class EncryptionDecryptionAttributes { public: AWS_PAYMENTCRYPTOGRAPHYDATA_API EncryptionDecryptionAttributes(); AWS_PAYMENTCRYPTOGRAPHYDATA_API EncryptionDecryptionAttributes(Aws::Utils::Json::JsonView jsonValue); AWS_PAYMENTCRYPTOGRAPHYDATA_API EncryptionDecryptionAttributes& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_PAYMENTCRYPTOGRAPHYDATA_API Aws::Utils::Json::JsonValue Jsonize() const; inline const AsymmetricEncryptionAttributes& GetAsymmetric() const{ return m_asymmetric; } inline bool AsymmetricHasBeenSet() const { return m_asymmetricHasBeenSet; } inline void SetAsymmetric(const AsymmetricEncryptionAttributes& value) { m_asymmetricHasBeenSet = true; m_asymmetric = value; } inline void SetAsymmetric(AsymmetricEncryptionAttributes&& value) { m_asymmetricHasBeenSet = true; m_asymmetric = std::move(value); } inline EncryptionDecryptionAttributes& WithAsymmetric(const AsymmetricEncryptionAttributes& value) { SetAsymmetric(value); return *this;} inline EncryptionDecryptionAttributes& WithAsymmetric(AsymmetricEncryptionAttributes&& value) { SetAsymmetric(std::move(value)); return *this;} inline const DukptEncryptionAttributes& GetDukpt() const{ return m_dukpt; } inline bool DukptHasBeenSet() const { return m_dukptHasBeenSet; } inline void SetDukpt(const DukptEncryptionAttributes& value) { m_dukptHasBeenSet = true; m_dukpt = value; } inline void SetDukpt(DukptEncryptionAttributes&& value) { m_dukptHasBeenSet = true; m_dukpt = std::move(value); } inline EncryptionDecryptionAttributes& WithDukpt(const DukptEncryptionAttributes& value) { SetDukpt(value); return *this;} inline EncryptionDecryptionAttributes& WithDukpt(DukptEncryptionAttributes&& value) { SetDukpt(std::move(value)); return *this;} /** *

Parameters that are required to perform encryption and decryption using * symmetric keys.

*/ inline const SymmetricEncryptionAttributes& GetSymmetric() const{ return m_symmetric; } /** *

Parameters that are required to perform encryption and decryption using * symmetric keys.

*/ inline bool SymmetricHasBeenSet() const { return m_symmetricHasBeenSet; } /** *

Parameters that are required to perform encryption and decryption using * symmetric keys.

*/ inline void SetSymmetric(const SymmetricEncryptionAttributes& value) { m_symmetricHasBeenSet = true; m_symmetric = value; } /** *

Parameters that are required to perform encryption and decryption using * symmetric keys.

*/ inline void SetSymmetric(SymmetricEncryptionAttributes&& value) { m_symmetricHasBeenSet = true; m_symmetric = std::move(value); } /** *

Parameters that are required to perform encryption and decryption using * symmetric keys.

*/ inline EncryptionDecryptionAttributes& WithSymmetric(const SymmetricEncryptionAttributes& value) { SetSymmetric(value); return *this;} /** *

Parameters that are required to perform encryption and decryption using * symmetric keys.

*/ inline EncryptionDecryptionAttributes& WithSymmetric(SymmetricEncryptionAttributes&& value) { SetSymmetric(std::move(value)); return *this;} private: AsymmetricEncryptionAttributes m_asymmetric; bool m_asymmetricHasBeenSet = false; DukptEncryptionAttributes m_dukpt; bool m_dukptHasBeenSet = false; SymmetricEncryptionAttributes m_symmetric; bool m_symmetricHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptographyData } // namespace Aws