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

The list of cryptographic operations that you can perform using the key. The * modes of use are defined in section A.5.3 of the TR-31 spec.

See * Also:

AWS * API Reference

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

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to decrypt data.

*/ inline bool GetDecrypt() const{ return m_decrypt; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to decrypt data.

*/ inline bool DecryptHasBeenSet() const { return m_decryptHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to decrypt data.

*/ inline void SetDecrypt(bool value) { m_decryptHasBeenSet = true; m_decrypt = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to decrypt data.

*/ inline KeyModesOfUse& WithDecrypt(bool value) { SetDecrypt(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to derive new keys.

*/ inline bool GetDeriveKey() const{ return m_deriveKey; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to derive new keys.

*/ inline bool DeriveKeyHasBeenSet() const { return m_deriveKeyHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to derive new keys.

*/ inline void SetDeriveKey(bool value) { m_deriveKeyHasBeenSet = true; m_deriveKey = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to derive new keys.

*/ inline KeyModesOfUse& WithDeriveKey(bool value) { SetDeriveKey(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to encrypt data.

*/ inline bool GetEncrypt() const{ return m_encrypt; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to encrypt data.

*/ inline bool EncryptHasBeenSet() const { return m_encryptHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to encrypt data.

*/ inline void SetEncrypt(bool value) { m_encryptHasBeenSet = true; m_encrypt = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to encrypt data.

*/ inline KeyModesOfUse& WithEncrypt(bool value) { SetEncrypt(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to generate and verify other card and PIN verification keys.

*/ inline bool GetGenerate() const{ return m_generate; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to generate and verify other card and PIN verification keys.

*/ inline bool GenerateHasBeenSet() const { return m_generateHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to generate and verify other card and PIN verification keys.

*/ inline void SetGenerate(bool value) { m_generateHasBeenSet = true; m_generate = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to generate and verify other card and PIN verification keys.

*/ inline KeyModesOfUse& WithGenerate(bool value) { SetGenerate(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key has no * special restrictions other than the restrictions implied by * KeyUsage.

*/ inline bool GetNoRestrictions() const{ return m_noRestrictions; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key has no * special restrictions other than the restrictions implied by * KeyUsage.

*/ inline bool NoRestrictionsHasBeenSet() const { return m_noRestrictionsHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key has no * special restrictions other than the restrictions implied by * KeyUsage.

*/ inline void SetNoRestrictions(bool value) { m_noRestrictionsHasBeenSet = true; m_noRestrictions = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key has no * special restrictions other than the restrictions implied by * KeyUsage.

*/ inline KeyModesOfUse& WithNoRestrictions(bool value) { SetNoRestrictions(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * for signing.

*/ inline bool GetSign() const{ return m_sign; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * for signing.

*/ inline bool SignHasBeenSet() const { return m_signHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * for signing.

*/ inline void SetSign(bool value) { m_signHasBeenSet = true; m_sign = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * for signing.

*/ inline KeyModesOfUse& WithSign(bool value) { SetSign(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to unwrap other keys.

*/ inline bool GetUnwrap() const{ return m_unwrap; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to unwrap other keys.

*/ inline bool UnwrapHasBeenSet() const { return m_unwrapHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to unwrap other keys.

*/ inline void SetUnwrap(bool value) { m_unwrapHasBeenSet = true; m_unwrap = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to unwrap other keys.

*/ inline KeyModesOfUse& WithUnwrap(bool value) { SetUnwrap(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to verify signatures.

*/ inline bool GetVerify() const{ return m_verify; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to verify signatures.

*/ inline bool VerifyHasBeenSet() const { return m_verifyHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to verify signatures.

*/ inline void SetVerify(bool value) { m_verifyHasBeenSet = true; m_verify = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to verify signatures.

*/ inline KeyModesOfUse& WithVerify(bool value) { SetVerify(value); return *this;} /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to wrap other keys.

*/ inline bool GetWrap() const{ return m_wrap; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to wrap other keys.

*/ inline bool WrapHasBeenSet() const { return m_wrapHasBeenSet; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to wrap other keys.

*/ inline void SetWrap(bool value) { m_wrapHasBeenSet = true; m_wrap = value; } /** *

Specifies whether an Amazon Web Services Payment Cryptography key can be used * to wrap other keys.

*/ inline KeyModesOfUse& WithWrap(bool value) { SetWrap(value); return *this;} private: bool m_decrypt; bool m_decryptHasBeenSet = false; bool m_deriveKey; bool m_deriveKeyHasBeenSet = false; bool m_encrypt; bool m_encryptHasBeenSet = false; bool m_generate; bool m_generateHasBeenSet = false; bool m_noRestrictions; bool m_noRestrictionsHasBeenSet = false; bool m_sign; bool m_signHasBeenSet = false; bool m_unwrap; bool m_unwrapHasBeenSet = false; bool m_verify; bool m_verifyHasBeenSet = false; bool m_wrap; bool m_wrapHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptography } // namespace Aws