/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include <aws/payment-cryptography-data/PaymentCryptographyData_EXPORTS.h> #include <aws/payment-cryptography-data/PaymentCryptographyDataRequest.h> #include <aws/payment-cryptography-data/model/DukptAttributes.h> #include <aws/core/utils/memory/stl/AWSString.h> #include <aws/payment-cryptography-data/model/PinBlockFormatForPinData.h> #include <aws/payment-cryptography-data/model/PinVerificationAttributes.h> #include <utility> namespace Aws { namespace PaymentCryptographyData { namespace Model { /** */ class VerifyPinDataRequest : public PaymentCryptographyDataRequest { public: AWS_PAYMENTCRYPTOGRAPHYDATA_API VerifyPinDataRequest(); // 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 "VerifyPinData"; } AWS_PAYMENTCRYPTOGRAPHYDATA_API Aws::String SerializePayload() const override; /** * <p>The attributes and values for the DUKPT encrypted PIN block data.</p> */ inline const DukptAttributes& GetDukptAttributes() const{ return m_dukptAttributes; } /** * <p>The attributes and values for the DUKPT encrypted PIN block data.</p> */ inline bool DukptAttributesHasBeenSet() const { return m_dukptAttributesHasBeenSet; } /** * <p>The attributes and values for the DUKPT encrypted PIN block data.</p> */ inline void SetDukptAttributes(const DukptAttributes& value) { m_dukptAttributesHasBeenSet = true; m_dukptAttributes = value; } /** * <p>The attributes and values for the DUKPT encrypted PIN block data.</p> */ inline void SetDukptAttributes(DukptAttributes&& value) { m_dukptAttributesHasBeenSet = true; m_dukptAttributes = std::move(value); } /** * <p>The attributes and values for the DUKPT encrypted PIN block data.</p> */ inline VerifyPinDataRequest& WithDukptAttributes(const DukptAttributes& value) { SetDukptAttributes(value); return *this;} /** * <p>The attributes and values for the DUKPT encrypted PIN block data.</p> */ inline VerifyPinDataRequest& WithDukptAttributes(DukptAttributes&& value) { SetDukptAttributes(std::move(value)); return *this;} /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline const Aws::String& GetEncryptedPinBlock() const{ return m_encryptedPinBlock; } /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline bool EncryptedPinBlockHasBeenSet() const { return m_encryptedPinBlockHasBeenSet; } /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline void SetEncryptedPinBlock(const Aws::String& value) { m_encryptedPinBlockHasBeenSet = true; m_encryptedPinBlock = value; } /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline void SetEncryptedPinBlock(Aws::String&& value) { m_encryptedPinBlockHasBeenSet = true; m_encryptedPinBlock = std::move(value); } /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline void SetEncryptedPinBlock(const char* value) { m_encryptedPinBlockHasBeenSet = true; m_encryptedPinBlock.assign(value); } /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline VerifyPinDataRequest& WithEncryptedPinBlock(const Aws::String& value) { SetEncryptedPinBlock(value); return *this;} /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline VerifyPinDataRequest& WithEncryptedPinBlock(Aws::String&& value) { SetEncryptedPinBlock(std::move(value)); return *this;} /** * <p>The encrypted PIN block data that Amazon Web Services Payment Cryptography * verifies.</p> */ inline VerifyPinDataRequest& WithEncryptedPinBlock(const char* value) { SetEncryptedPinBlock(value); return *this;} /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline const Aws::String& GetEncryptionKeyIdentifier() const{ return m_encryptionKeyIdentifier; } /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline bool EncryptionKeyIdentifierHasBeenSet() const { return m_encryptionKeyIdentifierHasBeenSet; } /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline void SetEncryptionKeyIdentifier(const Aws::String& value) { m_encryptionKeyIdentifierHasBeenSet = true; m_encryptionKeyIdentifier = value; } /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline void SetEncryptionKeyIdentifier(Aws::String&& value) { m_encryptionKeyIdentifierHasBeenSet = true; m_encryptionKeyIdentifier = std::move(value); } /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline void SetEncryptionKeyIdentifier(const char* value) { m_encryptionKeyIdentifierHasBeenSet = true; m_encryptionKeyIdentifier.assign(value); } /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline VerifyPinDataRequest& WithEncryptionKeyIdentifier(const Aws::String& value) { SetEncryptionKeyIdentifier(value); return *this;} /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline VerifyPinDataRequest& WithEncryptionKeyIdentifier(Aws::String&& value) { SetEncryptionKeyIdentifier(std::move(value)); return *this;} /** * <p>The <code>keyARN</code> of the encryption key under which the PIN block data * is encrypted. This key type can be PEK or BDK.</p> */ inline VerifyPinDataRequest& WithEncryptionKeyIdentifier(const char* value) { SetEncryptionKeyIdentifier(value); return *this;} /** * <p>The PIN encoding format for pin data generation as specified in ISO 9564. * Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and * <code>ISO_Format_3</code>.</p> <p>The <code>ISO_Format_0</code> PIN block format * is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is * similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in * length.</p> <p>The <code>ISO_Format_3</code> PIN block format is the same as * <code>ISO_Format_0</code> except that the fill digits are random values from 10 * to 15.</p> */ inline const PinBlockFormatForPinData& GetPinBlockFormat() const{ return m_pinBlockFormat; } /** * <p>The PIN encoding format for pin data generation as specified in ISO 9564. * Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and * <code>ISO_Format_3</code>.</p> <p>The <code>ISO_Format_0</code> PIN block format * is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is * similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in * length.</p> <p>The <code>ISO_Format_3</code> PIN block format is the same as * <code>ISO_Format_0</code> except that the fill digits are random values from 10 * to 15.</p> */ inline bool PinBlockFormatHasBeenSet() const { return m_pinBlockFormatHasBeenSet; } /** * <p>The PIN encoding format for pin data generation as specified in ISO 9564. * Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and * <code>ISO_Format_3</code>.</p> <p>The <code>ISO_Format_0</code> PIN block format * is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is * similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in * length.</p> <p>The <code>ISO_Format_3</code> PIN block format is the same as * <code>ISO_Format_0</code> except that the fill digits are random values from 10 * to 15.</p> */ inline void SetPinBlockFormat(const PinBlockFormatForPinData& value) { m_pinBlockFormatHasBeenSet = true; m_pinBlockFormat = value; } /** * <p>The PIN encoding format for pin data generation as specified in ISO 9564. * Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and * <code>ISO_Format_3</code>.</p> <p>The <code>ISO_Format_0</code> PIN block format * is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is * similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in * length.</p> <p>The <code>ISO_Format_3</code> PIN block format is the same as * <code>ISO_Format_0</code> except that the fill digits are random values from 10 * to 15.</p> */ inline void SetPinBlockFormat(PinBlockFormatForPinData&& value) { m_pinBlockFormatHasBeenSet = true; m_pinBlockFormat = std::move(value); } /** * <p>The PIN encoding format for pin data generation as specified in ISO 9564. * Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and * <code>ISO_Format_3</code>.</p> <p>The <code>ISO_Format_0</code> PIN block format * is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is * similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in * length.</p> <p>The <code>ISO_Format_3</code> PIN block format is the same as * <code>ISO_Format_0</code> except that the fill digits are random values from 10 * to 15.</p> */ inline VerifyPinDataRequest& WithPinBlockFormat(const PinBlockFormatForPinData& value) { SetPinBlockFormat(value); return *this;} /** * <p>The PIN encoding format for pin data generation as specified in ISO 9564. * Amazon Web Services Payment Cryptography supports <code>ISO_Format_0</code> and * <code>ISO_Format_3</code>.</p> <p>The <code>ISO_Format_0</code> PIN block format * is equivalent to the ANSI X9.8, VISA-1, and ECI-1 PIN block formats. It is * similar to a VISA-4 PIN block format. It supports a PIN from 4 to 12 digits in * length.</p> <p>The <code>ISO_Format_3</code> PIN block format is the same as * <code>ISO_Format_0</code> except that the fill digits are random values from 10 * to 15.</p> */ inline VerifyPinDataRequest& WithPinBlockFormat(PinBlockFormatForPinData&& value) { SetPinBlockFormat(std::move(value)); return *this;} /** * <p>The length of PIN being verified.</p> */ inline int GetPinDataLength() const{ return m_pinDataLength; } /** * <p>The length of PIN being verified.</p> */ inline bool PinDataLengthHasBeenSet() const { return m_pinDataLengthHasBeenSet; } /** * <p>The length of PIN being verified.</p> */ inline void SetPinDataLength(int value) { m_pinDataLengthHasBeenSet = true; m_pinDataLength = value; } /** * <p>The length of PIN being verified.</p> */ inline VerifyPinDataRequest& WithPinDataLength(int value) { SetPinDataLength(value); return *this;} /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline const Aws::String& GetPrimaryAccountNumber() const{ return m_primaryAccountNumber; } /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline bool PrimaryAccountNumberHasBeenSet() const { return m_primaryAccountNumberHasBeenSet; } /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline void SetPrimaryAccountNumber(const Aws::String& value) { m_primaryAccountNumberHasBeenSet = true; m_primaryAccountNumber = value; } /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline void SetPrimaryAccountNumber(Aws::String&& value) { m_primaryAccountNumberHasBeenSet = true; m_primaryAccountNumber = std::move(value); } /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline void SetPrimaryAccountNumber(const char* value) { m_primaryAccountNumberHasBeenSet = true; m_primaryAccountNumber.assign(value); } /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline VerifyPinDataRequest& WithPrimaryAccountNumber(const Aws::String& value) { SetPrimaryAccountNumber(value); return *this;} /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline VerifyPinDataRequest& WithPrimaryAccountNumber(Aws::String&& value) { SetPrimaryAccountNumber(std::move(value)); return *this;} /** * <p>The Primary Account Number (PAN), a unique identifier for a payment credit or * debit card that associates the card with a specific account holder.</p> */ inline VerifyPinDataRequest& WithPrimaryAccountNumber(const char* value) { SetPrimaryAccountNumber(value); return *this;} /** * <p>The attributes and values for PIN data verification.</p> */ inline const PinVerificationAttributes& GetVerificationAttributes() const{ return m_verificationAttributes; } /** * <p>The attributes and values for PIN data verification.</p> */ inline bool VerificationAttributesHasBeenSet() const { return m_verificationAttributesHasBeenSet; } /** * <p>The attributes and values for PIN data verification.</p> */ inline void SetVerificationAttributes(const PinVerificationAttributes& value) { m_verificationAttributesHasBeenSet = true; m_verificationAttributes = value; } /** * <p>The attributes and values for PIN data verification.</p> */ inline void SetVerificationAttributes(PinVerificationAttributes&& value) { m_verificationAttributesHasBeenSet = true; m_verificationAttributes = std::move(value); } /** * <p>The attributes and values for PIN data verification.</p> */ inline VerifyPinDataRequest& WithVerificationAttributes(const PinVerificationAttributes& value) { SetVerificationAttributes(value); return *this;} /** * <p>The attributes and values for PIN data verification.</p> */ inline VerifyPinDataRequest& WithVerificationAttributes(PinVerificationAttributes&& value) { SetVerificationAttributes(std::move(value)); return *this;} /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline const Aws::String& GetVerificationKeyIdentifier() const{ return m_verificationKeyIdentifier; } /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline bool VerificationKeyIdentifierHasBeenSet() const { return m_verificationKeyIdentifierHasBeenSet; } /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline void SetVerificationKeyIdentifier(const Aws::String& value) { m_verificationKeyIdentifierHasBeenSet = true; m_verificationKeyIdentifier = value; } /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline void SetVerificationKeyIdentifier(Aws::String&& value) { m_verificationKeyIdentifierHasBeenSet = true; m_verificationKeyIdentifier = std::move(value); } /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline void SetVerificationKeyIdentifier(const char* value) { m_verificationKeyIdentifierHasBeenSet = true; m_verificationKeyIdentifier.assign(value); } /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline VerifyPinDataRequest& WithVerificationKeyIdentifier(const Aws::String& value) { SetVerificationKeyIdentifier(value); return *this;} /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline VerifyPinDataRequest& WithVerificationKeyIdentifier(Aws::String&& value) { SetVerificationKeyIdentifier(std::move(value)); return *this;} /** * <p>The <code>keyARN</code> of the PIN verification key.</p> */ inline VerifyPinDataRequest& WithVerificationKeyIdentifier(const char* value) { SetVerificationKeyIdentifier(value); return *this;} private: DukptAttributes m_dukptAttributes; bool m_dukptAttributesHasBeenSet = false; Aws::String m_encryptedPinBlock; bool m_encryptedPinBlockHasBeenSet = false; Aws::String m_encryptionKeyIdentifier; bool m_encryptionKeyIdentifierHasBeenSet = false; PinBlockFormatForPinData m_pinBlockFormat; bool m_pinBlockFormatHasBeenSet = false; int m_pinDataLength; bool m_pinDataLengthHasBeenSet = false; Aws::String m_primaryAccountNumber; bool m_primaryAccountNumberHasBeenSet = false; PinVerificationAttributes m_verificationAttributes; bool m_verificationAttributesHasBeenSet = false; Aws::String m_verificationKeyIdentifier; bool m_verificationKeyIdentifierHasBeenSet = false; }; } // namespace Model } // namespace PaymentCryptographyData } // namespace Aws