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

Parameters to derive session key value using a MAC EMV * algorithm.

See Also:

AWS * API Reference

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

The cryptogram provided by the terminal during transaction processing.

*/ inline const Aws::String& GetApplicationCryptogram() const{ return m_applicationCryptogram; } /** *

The cryptogram provided by the terminal during transaction processing.

*/ inline bool ApplicationCryptogramHasBeenSet() const { return m_applicationCryptogramHasBeenSet; } /** *

The cryptogram provided by the terminal during transaction processing.

*/ inline void SetApplicationCryptogram(const Aws::String& value) { m_applicationCryptogramHasBeenSet = true; m_applicationCryptogram = value; } /** *

The cryptogram provided by the terminal during transaction processing.

*/ inline void SetApplicationCryptogram(Aws::String&& value) { m_applicationCryptogramHasBeenSet = true; m_applicationCryptogram = std::move(value); } /** *

The cryptogram provided by the terminal during transaction processing.

*/ inline void SetApplicationCryptogram(const char* value) { m_applicationCryptogramHasBeenSet = true; m_applicationCryptogram.assign(value); } /** *

The cryptogram provided by the terminal during transaction processing.

*/ inline SessionKeyDerivationValue& WithApplicationCryptogram(const Aws::String& value) { SetApplicationCryptogram(value); return *this;} /** *

The cryptogram provided by the terminal during transaction processing.

*/ inline SessionKeyDerivationValue& WithApplicationCryptogram(Aws::String&& value) { SetApplicationCryptogram(std::move(value)); return *this;} /** *

The cryptogram provided by the terminal during transaction processing.

*/ inline SessionKeyDerivationValue& WithApplicationCryptogram(const char* value) { SetApplicationCryptogram(value); return *this;} /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline const Aws::String& GetApplicationTransactionCounter() const{ return m_applicationTransactionCounter; } /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline bool ApplicationTransactionCounterHasBeenSet() const { return m_applicationTransactionCounterHasBeenSet; } /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline void SetApplicationTransactionCounter(const Aws::String& value) { m_applicationTransactionCounterHasBeenSet = true; m_applicationTransactionCounter = value; } /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline void SetApplicationTransactionCounter(Aws::String&& value) { m_applicationTransactionCounterHasBeenSet = true; m_applicationTransactionCounter = std::move(value); } /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline void SetApplicationTransactionCounter(const char* value) { m_applicationTransactionCounterHasBeenSet = true; m_applicationTransactionCounter.assign(value); } /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline SessionKeyDerivationValue& WithApplicationTransactionCounter(const Aws::String& value) { SetApplicationTransactionCounter(value); return *this;} /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline SessionKeyDerivationValue& WithApplicationTransactionCounter(Aws::String&& value) { SetApplicationTransactionCounter(std::move(value)); return *this;} /** *

The transaction counter that is provided by the terminal during transaction * processing.

*/ inline SessionKeyDerivationValue& WithApplicationTransactionCounter(const char* value) { SetApplicationTransactionCounter(value); return *this;} private: Aws::String m_applicationCryptogram; bool m_applicationCryptogramHasBeenSet = false; Aws::String m_applicationTransactionCounter; bool m_applicationTransactionCounterHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptographyData } // namespace Aws