/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the payment-cryptography-data-2022-02-03.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.PaymentCryptographyData.Model
{
///
/// Container for the parameters to the VerifyPinData operation.
/// Verifies pin-related data such as PIN and PIN Offset using algorithms including VISA
/// PVV and IBM3624. For more information, see Verify
/// PIN data in the Amazon Web Services Payment Cryptography User Guide.
///
///
///
/// This operation verifies PIN data for user payment card. A card holder PIN data is
/// never transmitted in clear to or from Amazon Web Services Payment Cryptography. This
/// operation uses PIN Verification Key (PVK) for PIN or PIN Offset generation and then
/// encrypts it using PIN Encryption Key (PEK) to create an EncryptedPinBlock
/// for transmission from Amazon Web Services Payment Cryptography.
///
///
///
/// For information about valid keys for this operation, see Understanding
/// key attributes and Key
/// types for specific data operations in the Amazon Web Services Payment Cryptography
/// User Guide.
///
///
///
/// Cross-account use: This operation can't be used across different Amazon Web
/// Services accounts.
///
///
///
/// Related operations:
///
///
///
public partial class VerifyPinDataRequest : AmazonPaymentCryptographyDataRequest
{
private DukptAttributes _dukptAttributes;
private string _encryptedPinBlock;
private string _encryptionKeyIdentifier;
private PinBlockFormatForPinData _pinBlockFormat;
private int? _pinDataLength;
private string _primaryAccountNumber;
private PinVerificationAttributes _verificationAttributes;
private string _verificationKeyIdentifier;
///
/// Gets and sets the property DukptAttributes.
///
/// The attributes and values for the DUKPT encrypted PIN block data.
///
///
public DukptAttributes DukptAttributes
{
get { return this._dukptAttributes; }
set { this._dukptAttributes = value; }
}
// Check to see if DukptAttributes property is set
internal bool IsSetDukptAttributes()
{
return this._dukptAttributes != null;
}
///
/// Gets and sets the property EncryptedPinBlock.
///
/// The encrypted PIN block data that Amazon Web Services Payment Cryptography verifies.
///
///
[AWSProperty(Required=true, Min=16, Max=32)]
public string EncryptedPinBlock
{
get { return this._encryptedPinBlock; }
set { this._encryptedPinBlock = value; }
}
// Check to see if EncryptedPinBlock property is set
internal bool IsSetEncryptedPinBlock()
{
return this._encryptedPinBlock != null;
}
///
/// Gets and sets the property EncryptionKeyIdentifier.
///
/// The keyARN
of the encryption key under which the PIN block data is encrypted.
/// This key type can be PEK or BDK.
///
///
[AWSProperty(Required=true, Min=7, Max=322)]
public string EncryptionKeyIdentifier
{
get { return this._encryptionKeyIdentifier; }
set { this._encryptionKeyIdentifier = value; }
}
// Check to see if EncryptionKeyIdentifier property is set
internal bool IsSetEncryptionKeyIdentifier()
{
return this._encryptionKeyIdentifier != null;
}
///
/// Gets and sets the property PinBlockFormat.
///
/// The PIN encoding format for pin data generation as specified in ISO 9564. Amazon Web
/// Services Payment Cryptography supports ISO_Format_0
and ISO_Format_3
.
///
///
///
/// The ISO_Format_0
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.
///
///
///
/// The ISO_Format_3
PIN block format is the same as ISO_Format_0
/// except that the fill digits are random values from 10 to 15.
///
///
[AWSProperty(Required=true)]
public PinBlockFormatForPinData PinBlockFormat
{
get { return this._pinBlockFormat; }
set { this._pinBlockFormat = value; }
}
// Check to see if PinBlockFormat property is set
internal bool IsSetPinBlockFormat()
{
return this._pinBlockFormat != null;
}
///
/// Gets and sets the property PinDataLength.
///
/// The length of PIN being verified.
///
///
[AWSProperty(Min=4, Max=12)]
public int PinDataLength
{
get { return this._pinDataLength.GetValueOrDefault(); }
set { this._pinDataLength = value; }
}
// Check to see if PinDataLength property is set
internal bool IsSetPinDataLength()
{
return this._pinDataLength.HasValue;
}
///
/// Gets and sets the property PrimaryAccountNumber.
///
/// The Primary Account Number (PAN), a unique identifier for a payment credit or debit
/// card that associates the card with a specific account holder.
///
///
[AWSProperty(Required=true, Sensitive=true, Min=12, Max=19)]
public string PrimaryAccountNumber
{
get { return this._primaryAccountNumber; }
set { this._primaryAccountNumber = value; }
}
// Check to see if PrimaryAccountNumber property is set
internal bool IsSetPrimaryAccountNumber()
{
return this._primaryAccountNumber != null;
}
///
/// Gets and sets the property VerificationAttributes.
///
/// The attributes and values for PIN data verification.
///
///
[AWSProperty(Required=true)]
public PinVerificationAttributes VerificationAttributes
{
get { return this._verificationAttributes; }
set { this._verificationAttributes = value; }
}
// Check to see if VerificationAttributes property is set
internal bool IsSetVerificationAttributes()
{
return this._verificationAttributes != null;
}
///
/// Gets and sets the property VerificationKeyIdentifier.
///
/// The keyARN
of the PIN verification key.
///
///
[AWSProperty(Required=true, Min=7, Max=322)]
public string VerificationKeyIdentifier
{
get { return this._verificationKeyIdentifier; }
set { this._verificationKeyIdentifier = value; }
}
// Check to see if VerificationKeyIdentifier property is set
internal bool IsSetVerificationKeyIdentifier()
{
return this._verificationKeyIdentifier != null;
}
}
}