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

Parameters to derive a session key for Authorization Response Cryptogram * (ARQC) verification.

See Also:

AWS * API Reference

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

Parameters to derive session key for an Amex payment card for ARQC * verification.

*/ inline const SessionKeyAmex& GetAmex() const{ return m_amex; } /** *

Parameters to derive session key for an Amex payment card for ARQC * verification.

*/ inline bool AmexHasBeenSet() const { return m_amexHasBeenSet; } /** *

Parameters to derive session key for an Amex payment card for ARQC * verification.

*/ inline void SetAmex(const SessionKeyAmex& value) { m_amexHasBeenSet = true; m_amex = value; } /** *

Parameters to derive session key for an Amex payment card for ARQC * verification.

*/ inline void SetAmex(SessionKeyAmex&& value) { m_amexHasBeenSet = true; m_amex = std::move(value); } /** *

Parameters to derive session key for an Amex payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithAmex(const SessionKeyAmex& value) { SetAmex(value); return *this;} /** *

Parameters to derive session key for an Amex payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithAmex(SessionKeyAmex&& value) { SetAmex(std::move(value)); return *this;} /** *

Parameters to derive session key for an Emv2000 payment card for ARQC * verification.

*/ inline const SessionKeyEmv2000& GetEmv2000() const{ return m_emv2000; } /** *

Parameters to derive session key for an Emv2000 payment card for ARQC * verification.

*/ inline bool Emv2000HasBeenSet() const { return m_emv2000HasBeenSet; } /** *

Parameters to derive session key for an Emv2000 payment card for ARQC * verification.

*/ inline void SetEmv2000(const SessionKeyEmv2000& value) { m_emv2000HasBeenSet = true; m_emv2000 = value; } /** *

Parameters to derive session key for an Emv2000 payment card for ARQC * verification.

*/ inline void SetEmv2000(SessionKeyEmv2000&& value) { m_emv2000HasBeenSet = true; m_emv2000 = std::move(value); } /** *

Parameters to derive session key for an Emv2000 payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithEmv2000(const SessionKeyEmv2000& value) { SetEmv2000(value); return *this;} /** *

Parameters to derive session key for an Emv2000 payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithEmv2000(SessionKeyEmv2000&& value) { SetEmv2000(std::move(value)); return *this;} /** *

Parameters to derive session key for an Emv common payment card for ARQC * verification.

*/ inline const SessionKeyEmvCommon& GetEmvCommon() const{ return m_emvCommon; } /** *

Parameters to derive session key for an Emv common payment card for ARQC * verification.

*/ inline bool EmvCommonHasBeenSet() const { return m_emvCommonHasBeenSet; } /** *

Parameters to derive session key for an Emv common payment card for ARQC * verification.

*/ inline void SetEmvCommon(const SessionKeyEmvCommon& value) { m_emvCommonHasBeenSet = true; m_emvCommon = value; } /** *

Parameters to derive session key for an Emv common payment card for ARQC * verification.

*/ inline void SetEmvCommon(SessionKeyEmvCommon&& value) { m_emvCommonHasBeenSet = true; m_emvCommon = std::move(value); } /** *

Parameters to derive session key for an Emv common payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithEmvCommon(const SessionKeyEmvCommon& value) { SetEmvCommon(value); return *this;} /** *

Parameters to derive session key for an Emv common payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithEmvCommon(SessionKeyEmvCommon&& value) { SetEmvCommon(std::move(value)); return *this;} /** *

Parameters to derive session key for a Mastercard payment card for ARQC * verification.

*/ inline const SessionKeyMastercard& GetMastercard() const{ return m_mastercard; } /** *

Parameters to derive session key for a Mastercard payment card for ARQC * verification.

*/ inline bool MastercardHasBeenSet() const { return m_mastercardHasBeenSet; } /** *

Parameters to derive session key for a Mastercard payment card for ARQC * verification.

*/ inline void SetMastercard(const SessionKeyMastercard& value) { m_mastercardHasBeenSet = true; m_mastercard = value; } /** *

Parameters to derive session key for a Mastercard payment card for ARQC * verification.

*/ inline void SetMastercard(SessionKeyMastercard&& value) { m_mastercardHasBeenSet = true; m_mastercard = std::move(value); } /** *

Parameters to derive session key for a Mastercard payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithMastercard(const SessionKeyMastercard& value) { SetMastercard(value); return *this;} /** *

Parameters to derive session key for a Mastercard payment card for ARQC * verification.

*/ inline SessionKeyDerivation& WithMastercard(SessionKeyMastercard&& value) { SetMastercard(std::move(value)); return *this;} /** *

Parameters to derive session key for a Visa payment cardfor ARQC * verification.

*/ inline const SessionKeyVisa& GetVisa() const{ return m_visa; } /** *

Parameters to derive session key for a Visa payment cardfor ARQC * verification.

*/ inline bool VisaHasBeenSet() const { return m_visaHasBeenSet; } /** *

Parameters to derive session key for a Visa payment cardfor ARQC * verification.

*/ inline void SetVisa(const SessionKeyVisa& value) { m_visaHasBeenSet = true; m_visa = value; } /** *

Parameters to derive session key for a Visa payment cardfor ARQC * verification.

*/ inline void SetVisa(SessionKeyVisa&& value) { m_visaHasBeenSet = true; m_visa = std::move(value); } /** *

Parameters to derive session key for a Visa payment cardfor ARQC * verification.

*/ inline SessionKeyDerivation& WithVisa(const SessionKeyVisa& value) { SetVisa(value); return *this;} /** *

Parameters to derive session key for a Visa payment cardfor ARQC * verification.

*/ inline SessionKeyDerivation& WithVisa(SessionKeyVisa&& value) { SetVisa(std::move(value)); return *this;} private: SessionKeyAmex m_amex; bool m_amexHasBeenSet = false; SessionKeyEmv2000 m_emv2000; bool m_emv2000HasBeenSet = false; SessionKeyEmvCommon m_emvCommon; bool m_emvCommonHasBeenSet = false; SessionKeyMastercard m_mastercard; bool m_mastercardHasBeenSet = false; SessionKeyVisa m_visa; bool m_visaHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptographyData } // namespace Aws