/** * 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 PaymentCryptographyData { namespace Model { /** */ class VerifyAuthRequestCryptogramRequest : public PaymentCryptographyDataRequest { public: AWS_PAYMENTCRYPTOGRAPHYDATA_API VerifyAuthRequestCryptogramRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "VerifyAuthRequestCryptogram"; } AWS_PAYMENTCRYPTOGRAPHYDATA_API Aws::String SerializePayload() const override; /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline const Aws::String& GetAuthRequestCryptogram() const{ return m_authRequestCryptogram; } /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline bool AuthRequestCryptogramHasBeenSet() const { return m_authRequestCryptogramHasBeenSet; } /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline void SetAuthRequestCryptogram(const Aws::String& value) { m_authRequestCryptogramHasBeenSet = true; m_authRequestCryptogram = value; } /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline void SetAuthRequestCryptogram(Aws::String&& value) { m_authRequestCryptogramHasBeenSet = true; m_authRequestCryptogram = std::move(value); } /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline void SetAuthRequestCryptogram(const char* value) { m_authRequestCryptogramHasBeenSet = true; m_authRequestCryptogram.assign(value); } /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline VerifyAuthRequestCryptogramRequest& WithAuthRequestCryptogram(const Aws::String& value) { SetAuthRequestCryptogram(value); return *this;} /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline VerifyAuthRequestCryptogramRequest& WithAuthRequestCryptogram(Aws::String&& value) { SetAuthRequestCryptogram(std::move(value)); return *this;} /** *

The auth request cryptogram imported into Amazon Web Services Payment * Cryptography for ARQC verification using a major encryption key and transaction * data.

*/ inline VerifyAuthRequestCryptogramRequest& WithAuthRequestCryptogram(const char* value) { SetAuthRequestCryptogram(value); return *this;} /** *

The attributes and values for auth request cryptogram verification. These * parameters are required in case using ARPC Method 1 or Method 2 for ARQC * verification.

*/ inline const CryptogramAuthResponse& GetAuthResponseAttributes() const{ return m_authResponseAttributes; } /** *

The attributes and values for auth request cryptogram verification. These * parameters are required in case using ARPC Method 1 or Method 2 for ARQC * verification.

*/ inline bool AuthResponseAttributesHasBeenSet() const { return m_authResponseAttributesHasBeenSet; } /** *

The attributes and values for auth request cryptogram verification. These * parameters are required in case using ARPC Method 1 or Method 2 for ARQC * verification.

*/ inline void SetAuthResponseAttributes(const CryptogramAuthResponse& value) { m_authResponseAttributesHasBeenSet = true; m_authResponseAttributes = value; } /** *

The attributes and values for auth request cryptogram verification. These * parameters are required in case using ARPC Method 1 or Method 2 for ARQC * verification.

*/ inline void SetAuthResponseAttributes(CryptogramAuthResponse&& value) { m_authResponseAttributesHasBeenSet = true; m_authResponseAttributes = std::move(value); } /** *

The attributes and values for auth request cryptogram verification. These * parameters are required in case using ARPC Method 1 or Method 2 for ARQC * verification.

*/ inline VerifyAuthRequestCryptogramRequest& WithAuthResponseAttributes(const CryptogramAuthResponse& value) { SetAuthResponseAttributes(value); return *this;} /** *

The attributes and values for auth request cryptogram verification. These * parameters are required in case using ARPC Method 1 or Method 2 for ARQC * verification.

*/ inline VerifyAuthRequestCryptogramRequest& WithAuthResponseAttributes(CryptogramAuthResponse&& value) { SetAuthResponseAttributes(std::move(value)); return *this;} /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline const Aws::String& GetKeyIdentifier() const{ return m_keyIdentifier; } /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline bool KeyIdentifierHasBeenSet() const { return m_keyIdentifierHasBeenSet; } /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline void SetKeyIdentifier(const Aws::String& value) { m_keyIdentifierHasBeenSet = true; m_keyIdentifier = value; } /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline void SetKeyIdentifier(Aws::String&& value) { m_keyIdentifierHasBeenSet = true; m_keyIdentifier = std::move(value); } /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline void SetKeyIdentifier(const char* value) { m_keyIdentifierHasBeenSet = true; m_keyIdentifier.assign(value); } /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline VerifyAuthRequestCryptogramRequest& WithKeyIdentifier(const Aws::String& value) { SetKeyIdentifier(value); return *this;} /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline VerifyAuthRequestCryptogramRequest& WithKeyIdentifier(Aws::String&& value) { SetKeyIdentifier(std::move(value)); return *this;} /** *

The keyARN of the major encryption key that Amazon Web Services * Payment Cryptography uses for ARQC verification.

*/ inline VerifyAuthRequestCryptogramRequest& WithKeyIdentifier(const char* value) { SetKeyIdentifier(value); return *this;} /** *

The method to use when deriving the major encryption key for ARQC * verification within Amazon Web Services Payment Cryptography. The same key * derivation mode was used for ARQC generation outside of Amazon Web Services * Payment Cryptography.

*/ inline const MajorKeyDerivationMode& GetMajorKeyDerivationMode() const{ return m_majorKeyDerivationMode; } /** *

The method to use when deriving the major encryption key for ARQC * verification within Amazon Web Services Payment Cryptography. The same key * derivation mode was used for ARQC generation outside of Amazon Web Services * Payment Cryptography.

*/ inline bool MajorKeyDerivationModeHasBeenSet() const { return m_majorKeyDerivationModeHasBeenSet; } /** *

The method to use when deriving the major encryption key for ARQC * verification within Amazon Web Services Payment Cryptography. The same key * derivation mode was used for ARQC generation outside of Amazon Web Services * Payment Cryptography.

*/ inline void SetMajorKeyDerivationMode(const MajorKeyDerivationMode& value) { m_majorKeyDerivationModeHasBeenSet = true; m_majorKeyDerivationMode = value; } /** *

The method to use when deriving the major encryption key for ARQC * verification within Amazon Web Services Payment Cryptography. The same key * derivation mode was used for ARQC generation outside of Amazon Web Services * Payment Cryptography.

*/ inline void SetMajorKeyDerivationMode(MajorKeyDerivationMode&& value) { m_majorKeyDerivationModeHasBeenSet = true; m_majorKeyDerivationMode = std::move(value); } /** *

The method to use when deriving the major encryption key for ARQC * verification within Amazon Web Services Payment Cryptography. The same key * derivation mode was used for ARQC generation outside of Amazon Web Services * Payment Cryptography.

*/ inline VerifyAuthRequestCryptogramRequest& WithMajorKeyDerivationMode(const MajorKeyDerivationMode& value) { SetMajorKeyDerivationMode(value); return *this;} /** *

The method to use when deriving the major encryption key for ARQC * verification within Amazon Web Services Payment Cryptography. The same key * derivation mode was used for ARQC generation outside of Amazon Web Services * Payment Cryptography.

*/ inline VerifyAuthRequestCryptogramRequest& WithMajorKeyDerivationMode(MajorKeyDerivationMode&& value) { SetMajorKeyDerivationMode(std::move(value)); return *this;} /** *

The attributes and values to use for deriving a session key for ARQC * verification within Amazon Web Services Payment Cryptography. The same * attributes were used for ARQC generation outside of Amazon Web Services Payment * Cryptography.

*/ inline const SessionKeyDerivation& GetSessionKeyDerivationAttributes() const{ return m_sessionKeyDerivationAttributes; } /** *

The attributes and values to use for deriving a session key for ARQC * verification within Amazon Web Services Payment Cryptography. The same * attributes were used for ARQC generation outside of Amazon Web Services Payment * Cryptography.

*/ inline bool SessionKeyDerivationAttributesHasBeenSet() const { return m_sessionKeyDerivationAttributesHasBeenSet; } /** *

The attributes and values to use for deriving a session key for ARQC * verification within Amazon Web Services Payment Cryptography. The same * attributes were used for ARQC generation outside of Amazon Web Services Payment * Cryptography.

*/ inline void SetSessionKeyDerivationAttributes(const SessionKeyDerivation& value) { m_sessionKeyDerivationAttributesHasBeenSet = true; m_sessionKeyDerivationAttributes = value; } /** *

The attributes and values to use for deriving a session key for ARQC * verification within Amazon Web Services Payment Cryptography. The same * attributes were used for ARQC generation outside of Amazon Web Services Payment * Cryptography.

*/ inline void SetSessionKeyDerivationAttributes(SessionKeyDerivation&& value) { m_sessionKeyDerivationAttributesHasBeenSet = true; m_sessionKeyDerivationAttributes = std::move(value); } /** *

The attributes and values to use for deriving a session key for ARQC * verification within Amazon Web Services Payment Cryptography. The same * attributes were used for ARQC generation outside of Amazon Web Services Payment * Cryptography.

*/ inline VerifyAuthRequestCryptogramRequest& WithSessionKeyDerivationAttributes(const SessionKeyDerivation& value) { SetSessionKeyDerivationAttributes(value); return *this;} /** *

The attributes and values to use for deriving a session key for ARQC * verification within Amazon Web Services Payment Cryptography. The same * attributes were used for ARQC generation outside of Amazon Web Services Payment * Cryptography.

*/ inline VerifyAuthRequestCryptogramRequest& WithSessionKeyDerivationAttributes(SessionKeyDerivation&& value) { SetSessionKeyDerivationAttributes(std::move(value)); return *this;} /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline const Aws::String& GetTransactionData() const{ return m_transactionData; } /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline bool TransactionDataHasBeenSet() const { return m_transactionDataHasBeenSet; } /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline void SetTransactionData(const Aws::String& value) { m_transactionDataHasBeenSet = true; m_transactionData = value; } /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline void SetTransactionData(Aws::String&& value) { m_transactionDataHasBeenSet = true; m_transactionData = std::move(value); } /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline void SetTransactionData(const char* value) { m_transactionDataHasBeenSet = true; m_transactionData.assign(value); } /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline VerifyAuthRequestCryptogramRequest& WithTransactionData(const Aws::String& value) { SetTransactionData(value); return *this;} /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline VerifyAuthRequestCryptogramRequest& WithTransactionData(Aws::String&& value) { SetTransactionData(std::move(value)); return *this;} /** *

The transaction data that Amazon Web Services Payment Cryptography uses for * ARQC verification. The same transaction is used for ARQC generation outside of * Amazon Web Services Payment Cryptography.

*/ inline VerifyAuthRequestCryptogramRequest& WithTransactionData(const char* value) { SetTransactionData(value); return *this;} private: Aws::String m_authRequestCryptogram; bool m_authRequestCryptogramHasBeenSet = false; CryptogramAuthResponse m_authResponseAttributes; bool m_authResponseAttributesHasBeenSet = false; Aws::String m_keyIdentifier; bool m_keyIdentifierHasBeenSet = false; MajorKeyDerivationMode m_majorKeyDerivationMode; bool m_majorKeyDerivationModeHasBeenSet = false; SessionKeyDerivation m_sessionKeyDerivationAttributes; bool m_sessionKeyDerivationAttributesHasBeenSet = false; Aws::String m_transactionData; bool m_transactionDataHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptographyData } // namespace Aws