/**
* 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