/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace PaymentCryptography { namespace Model { /** *

The role of the key, the algorithm it supports, and the cryptographic * operations allowed with the key. This data is immutable after the key is * created.

See Also:

AWS * API Reference

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

The key algorithm to be use during creation of an Amazon Web Services Payment * Cryptography key.

For symmetric keys, Amazon Web Services Payment * Cryptography supports AES and TDES algorithms. For * asymmetric keys, Amazon Web Services Payment Cryptography supports * RSA and ECC_NIST algorithms.

*/ inline const KeyAlgorithm& GetKeyAlgorithm() const{ return m_keyAlgorithm; } /** *

The key algorithm to be use during creation of an Amazon Web Services Payment * Cryptography key.

For symmetric keys, Amazon Web Services Payment * Cryptography supports AES and TDES algorithms. For * asymmetric keys, Amazon Web Services Payment Cryptography supports * RSA and ECC_NIST algorithms.

*/ inline bool KeyAlgorithmHasBeenSet() const { return m_keyAlgorithmHasBeenSet; } /** *

The key algorithm to be use during creation of an Amazon Web Services Payment * Cryptography key.

For symmetric keys, Amazon Web Services Payment * Cryptography supports AES and TDES algorithms. For * asymmetric keys, Amazon Web Services Payment Cryptography supports * RSA and ECC_NIST algorithms.

*/ inline void SetKeyAlgorithm(const KeyAlgorithm& value) { m_keyAlgorithmHasBeenSet = true; m_keyAlgorithm = value; } /** *

The key algorithm to be use during creation of an Amazon Web Services Payment * Cryptography key.

For symmetric keys, Amazon Web Services Payment * Cryptography supports AES and TDES algorithms. For * asymmetric keys, Amazon Web Services Payment Cryptography supports * RSA and ECC_NIST algorithms.

*/ inline void SetKeyAlgorithm(KeyAlgorithm&& value) { m_keyAlgorithmHasBeenSet = true; m_keyAlgorithm = std::move(value); } /** *

The key algorithm to be use during creation of an Amazon Web Services Payment * Cryptography key.

For symmetric keys, Amazon Web Services Payment * Cryptography supports AES and TDES algorithms. For * asymmetric keys, Amazon Web Services Payment Cryptography supports * RSA and ECC_NIST algorithms.

*/ inline KeyAttributes& WithKeyAlgorithm(const KeyAlgorithm& value) { SetKeyAlgorithm(value); return *this;} /** *

The key algorithm to be use during creation of an Amazon Web Services Payment * Cryptography key.

For symmetric keys, Amazon Web Services Payment * Cryptography supports AES and TDES algorithms. For * asymmetric keys, Amazon Web Services Payment Cryptography supports * RSA and ECC_NIST algorithms.

*/ inline KeyAttributes& WithKeyAlgorithm(KeyAlgorithm&& value) { SetKeyAlgorithm(std::move(value)); return *this;} /** *

The type of Amazon Web Services Payment Cryptography key to create, which * determines the classification of the cryptographic method and whether Amazon Web * Services Payment Cryptography key contains a symmetric key or an asymmetric key * pair.

*/ inline const KeyClass& GetKeyClass() const{ return m_keyClass; } /** *

The type of Amazon Web Services Payment Cryptography key to create, which * determines the classification of the cryptographic method and whether Amazon Web * Services Payment Cryptography key contains a symmetric key or an asymmetric key * pair.

*/ inline bool KeyClassHasBeenSet() const { return m_keyClassHasBeenSet; } /** *

The type of Amazon Web Services Payment Cryptography key to create, which * determines the classification of the cryptographic method and whether Amazon Web * Services Payment Cryptography key contains a symmetric key or an asymmetric key * pair.

*/ inline void SetKeyClass(const KeyClass& value) { m_keyClassHasBeenSet = true; m_keyClass = value; } /** *

The type of Amazon Web Services Payment Cryptography key to create, which * determines the classification of the cryptographic method and whether Amazon Web * Services Payment Cryptography key contains a symmetric key or an asymmetric key * pair.

*/ inline void SetKeyClass(KeyClass&& value) { m_keyClassHasBeenSet = true; m_keyClass = std::move(value); } /** *

The type of Amazon Web Services Payment Cryptography key to create, which * determines the classification of the cryptographic method and whether Amazon Web * Services Payment Cryptography key contains a symmetric key or an asymmetric key * pair.

*/ inline KeyAttributes& WithKeyClass(const KeyClass& value) { SetKeyClass(value); return *this;} /** *

The type of Amazon Web Services Payment Cryptography key to create, which * determines the classification of the cryptographic method and whether Amazon Web * Services Payment Cryptography key contains a symmetric key or an asymmetric key * pair.

*/ inline KeyAttributes& WithKeyClass(KeyClass&& value) { SetKeyClass(std::move(value)); return *this;} /** *

The list of cryptographic operations that you can perform using the key.

*/ inline const KeyModesOfUse& GetKeyModesOfUse() const{ return m_keyModesOfUse; } /** *

The list of cryptographic operations that you can perform using the key.

*/ inline bool KeyModesOfUseHasBeenSet() const { return m_keyModesOfUseHasBeenSet; } /** *

The list of cryptographic operations that you can perform using the key.

*/ inline void SetKeyModesOfUse(const KeyModesOfUse& value) { m_keyModesOfUseHasBeenSet = true; m_keyModesOfUse = value; } /** *

The list of cryptographic operations that you can perform using the key.

*/ inline void SetKeyModesOfUse(KeyModesOfUse&& value) { m_keyModesOfUseHasBeenSet = true; m_keyModesOfUse = std::move(value); } /** *

The list of cryptographic operations that you can perform using the key.

*/ inline KeyAttributes& WithKeyModesOfUse(const KeyModesOfUse& value) { SetKeyModesOfUse(value); return *this;} /** *

The list of cryptographic operations that you can perform using the key.

*/ inline KeyAttributes& WithKeyModesOfUse(KeyModesOfUse&& value) { SetKeyModesOfUse(std::move(value)); return *this;} /** *

The cryptographic usage of an Amazon Web Services Payment Cryptography key as * defined in section A.5.2 of the TR-31 spec.

*/ inline const KeyUsage& GetKeyUsage() const{ return m_keyUsage; } /** *

The cryptographic usage of an Amazon Web Services Payment Cryptography key as * defined in section A.5.2 of the TR-31 spec.

*/ inline bool KeyUsageHasBeenSet() const { return m_keyUsageHasBeenSet; } /** *

The cryptographic usage of an Amazon Web Services Payment Cryptography key as * defined in section A.5.2 of the TR-31 spec.

*/ inline void SetKeyUsage(const KeyUsage& value) { m_keyUsageHasBeenSet = true; m_keyUsage = value; } /** *

The cryptographic usage of an Amazon Web Services Payment Cryptography key as * defined in section A.5.2 of the TR-31 spec.

*/ inline void SetKeyUsage(KeyUsage&& value) { m_keyUsageHasBeenSet = true; m_keyUsage = std::move(value); } /** *

The cryptographic usage of an Amazon Web Services Payment Cryptography key as * defined in section A.5.2 of the TR-31 spec.

*/ inline KeyAttributes& WithKeyUsage(const KeyUsage& value) { SetKeyUsage(value); return *this;} /** *

The cryptographic usage of an Amazon Web Services Payment Cryptography key as * defined in section A.5.2 of the TR-31 spec.

*/ inline KeyAttributes& WithKeyUsage(KeyUsage&& value) { SetKeyUsage(std::move(value)); return *this;} private: KeyAlgorithm m_keyAlgorithm; bool m_keyAlgorithmHasBeenSet = false; KeyClass m_keyClass; bool m_keyClassHasBeenSet = false; KeyModesOfUse m_keyModesOfUse; bool m_keyModesOfUseHasBeenSet = false; KeyUsage m_keyUsage; bool m_keyUsageHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptography } // namespace Aws