/*******************************************************************************
* Copyright 2012-2019 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.
* *****************************************************************************
*
* AWS Tools for Windows (TM) PowerShell (TM)
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using System.Text;
using Amazon.PowerShell.Common;
using Amazon.Runtime;
using Amazon.PaymentCryptographyData;
using Amazon.PaymentCryptographyData.Model;
namespace Amazon.PowerShell.Cmdlets.PAYCD
{
///
/// Generates card-related validation data using algorithms such as Card Verification
/// Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2), or Card Security
/// Codes (CSC). For more information, see Generate
/// card data in the Amazon Web Services Payment Cryptography User Guide.
///
///
///
/// This operation generates a CVV or CSC value that is printed on a payment credit or
/// debit card during card production. The CVV or CSC, PAN (Primary Account Number) and
/// expiration date of the card are required to check its validity during transaction
/// processing. To begin this operation, a CVK (Card Verification Key) encryption key
/// is required. You can use CreateKey
/// or ImportKey
/// to establish a CVK within Amazon Web Services Payment Cryptography. The KeyModesOfUse
/// should be set to Generate
and Verify
for a CVK encryption
/// key.
///
/// 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:
///
[Cmdlet("New", "PAYCDCardValidationData", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)]
[OutputType("Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataResponse")]
[AWSCmdlet("Calls the Payment Cryptography Data GenerateCardValidationData API operation.", Operation = new[] {"GenerateCardValidationData"}, SelectReturnType = typeof(Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataResponse))]
[AWSCmdletOutput("Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataResponse",
"This cmdlet returns an Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataResponse object containing multiple properties. The object can also be referenced from properties attached to the cmdlet entry in the $AWSHistory stack."
)]
public partial class NewPAYCDCardValidationDataCmdlet : AmazonPaymentCryptographyDataClientCmdlet, IExecutor
{
protected override bool IsSensitiveRequest { get; set; } = true;
#region Parameter CardHolderVerificationValue_ApplicationTransactionCounter
///
///
/// The transaction counter value that comes from a point of sale terminal.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_CardHolderVerificationValue_ApplicationTransactionCounter")]
public System.String CardHolderVerificationValue_ApplicationTransactionCounter { get; set; }
#endregion
#region Parameter DynamicCardVerificationCode_ApplicationTransactionCounter
///
///
/// The transaction counter value that comes from the terminal.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationCode_ApplicationTransactionCounter")]
public System.String DynamicCardVerificationCode_ApplicationTransactionCounter { get; set; }
#endregion
#region Parameter DynamicCardVerificationValue_ApplicationTransactionCounter
///
///
/// The transaction counter value that comes from the terminal.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationValue_ApplicationTransactionCounter")]
public System.String DynamicCardVerificationValue_ApplicationTransactionCounter { get; set; }
#endregion
#region Parameter AmexCardSecurityCodeVersion1_CardExpiryDate
///
///
/// The expiry date of a payment card.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_AmexCardSecurityCodeVersion1_CardExpiryDate")]
public System.String AmexCardSecurityCodeVersion1_CardExpiryDate { get; set; }
#endregion
#region Parameter AmexCardSecurityCodeVersion2_CardExpiryDate
///
///
/// The expiry date of a payment card.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_AmexCardSecurityCodeVersion2_CardExpiryDate")]
public System.String AmexCardSecurityCodeVersion2_CardExpiryDate { get; set; }
#endregion
#region Parameter CardVerificationValue1_CardExpiryDate
///
///
/// The expiry date of a payment card.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_CardVerificationValue1_CardExpiryDate")]
public System.String CardVerificationValue1_CardExpiryDate { get; set; }
#endregion
#region Parameter CardVerificationValue2_CardExpiryDate
///
///
/// The expiry date of a payment card.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_CardVerificationValue2_CardExpiryDate")]
public System.String CardVerificationValue2_CardExpiryDate { get; set; }
#endregion
#region Parameter DynamicCardVerificationValue_CardExpiryDate
///
///
/// The expiry date of a payment card.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationValue_CardExpiryDate")]
public System.String DynamicCardVerificationValue_CardExpiryDate { get; set; }
#endregion
#region Parameter KeyIdentifier
///
///
/// The keyARN
of the CVK encryption key that Amazon Web Services Payment
/// Cryptography uses to generate card data.
///
///
#if !MODULAR
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true)]
#else
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true, Mandatory = true)]
[System.Management.Automation.AllowEmptyString]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
public System.String KeyIdentifier { get; set; }
#endregion
#region Parameter CardHolderVerificationValue_PanSequenceNumber
///
///
/// A number that identifies and differentiates payment cards with the same Primary Account
/// Number (PAN).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_CardHolderVerificationValue_PanSequenceNumber")]
public System.String CardHolderVerificationValue_PanSequenceNumber { get; set; }
#endregion
#region Parameter DynamicCardVerificationCode_PanSequenceNumber
///
///
/// A number that identifies and differentiates payment cards with the same Primary Account
/// Number (PAN).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationCode_PanSequenceNumber")]
public System.String DynamicCardVerificationCode_PanSequenceNumber { get; set; }
#endregion
#region Parameter DynamicCardVerificationValue_PanSequenceNumber
///
///
/// A number that identifies and differentiates payment cards with the same Primary Account
/// Number (PAN).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationValue_PanSequenceNumber")]
public System.String DynamicCardVerificationValue_PanSequenceNumber { get; set; }
#endregion
#region Parameter 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.
///
///
#if !MODULAR
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
#else
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]
[System.Management.Automation.AllowEmptyString]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
public System.String PrimaryAccountNumber { get; set; }
#endregion
#region Parameter AmexCardSecurityCodeVersion2_ServiceCode
///
///
/// The service code of the AMEX payment card. This is different from the Card Security
/// Code (CSC).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_AmexCardSecurityCodeVersion2_ServiceCode")]
public System.String AmexCardSecurityCodeVersion2_ServiceCode { get; set; }
#endregion
#region Parameter CardVerificationValue1_ServiceCode
///
///
/// The service code of the payment card. This is different from Card Security Code (CSC).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_CardVerificationValue1_ServiceCode")]
public System.String CardVerificationValue1_ServiceCode { get; set; }
#endregion
#region Parameter DynamicCardVerificationValue_ServiceCode
///
///
/// The service code of the payment card. This is different from Card Security Code (CSC).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationValue_ServiceCode")]
public System.String DynamicCardVerificationValue_ServiceCode { get; set; }
#endregion
#region Parameter DynamicCardVerificationCode_TrackData
///
///
/// The data on the two tracks of magnetic cards used for financial transactions. This
/// includes the cardholder name, PAN, expiration date, bank ID (BIN) and several other
/// numbers the issuing bank uses to validate the data received.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationCode_TrackData")]
public System.String DynamicCardVerificationCode_TrackData { get; set; }
#endregion
#region Parameter CardHolderVerificationValue_UnpredictableNumber
///
///
/// A random number generated by the issuer.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_CardHolderVerificationValue_UnpredictableNumber")]
public System.String CardHolderVerificationValue_UnpredictableNumber { get; set; }
#endregion
#region Parameter DynamicCardVerificationCode_UnpredictableNumber
///
///
/// A random number generated by the issuer.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_DynamicCardVerificationCode_UnpredictableNumber")]
public System.String DynamicCardVerificationCode_UnpredictableNumber { get; set; }
#endregion
#region Parameter ValidationDataLength
///
///
/// The length of the CVV or CSC to be generated. The default value is 3.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? ValidationDataLength { get; set; }
#endregion
#region Parameter Select
///
/// Use the -Select parameter to control the cmdlet output. The default value is '*'.
/// Specifying -Select '*' will result in the cmdlet returning the whole service response (Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataResponse).
/// Specifying the name of a property of type Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataResponse will result in that property being returned.
/// Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public string Select { get; set; } = "*";
#endregion
#region Parameter PassThru
///
/// Changes the cmdlet behavior to return the value passed to the KeyIdentifier parameter.
/// The -PassThru parameter is deprecated, use -Select '^KeyIdentifier' instead. This parameter will be removed in a future version.
///
[System.Obsolete("The -PassThru parameter is deprecated, use -Select '^KeyIdentifier' instead. This parameter will be removed in a future version.")]
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter PassThru { get; set; }
#endregion
#region Parameter Force
///
/// This parameter overrides confirmation prompts to force
/// the cmdlet to continue its operation. This parameter should always
/// be used with caution.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter Force { get; set; }
#endregion
protected override void ProcessRecord()
{
this._AWSSignerType = "v4";
base.ProcessRecord();
var resourceIdentifiersText = FormatParameterValuesForConfirmationMsg(nameof(this.KeyIdentifier), MyInvocation.BoundParameters);
if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "New-PAYCDCardValidationData (GenerateCardValidationData)"))
{
return;
}
var context = new CmdletContext();
// allow for manipulation of parameters prior to loading into context
PreExecutionContextLoad(context);
#pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute
if (ParameterWasBound(nameof(this.Select)))
{
context.Select = CreateSelectDelegate(Select) ??
throw new System.ArgumentException("Invalid value for -Select parameter.", nameof(this.Select));
if (this.PassThru.IsPresent)
{
throw new System.ArgumentException("-PassThru cannot be used when -Select is specified.", nameof(this.Select));
}
}
else if (this.PassThru.IsPresent)
{
context.Select = (response, cmdlet) => this.KeyIdentifier;
}
#pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute
context.AmexCardSecurityCodeVersion1_CardExpiryDate = this.AmexCardSecurityCodeVersion1_CardExpiryDate;
context.AmexCardSecurityCodeVersion2_CardExpiryDate = this.AmexCardSecurityCodeVersion2_CardExpiryDate;
context.AmexCardSecurityCodeVersion2_ServiceCode = this.AmexCardSecurityCodeVersion2_ServiceCode;
context.CardHolderVerificationValue_ApplicationTransactionCounter = this.CardHolderVerificationValue_ApplicationTransactionCounter;
context.CardHolderVerificationValue_PanSequenceNumber = this.CardHolderVerificationValue_PanSequenceNumber;
context.CardHolderVerificationValue_UnpredictableNumber = this.CardHolderVerificationValue_UnpredictableNumber;
context.CardVerificationValue1_CardExpiryDate = this.CardVerificationValue1_CardExpiryDate;
context.CardVerificationValue1_ServiceCode = this.CardVerificationValue1_ServiceCode;
context.CardVerificationValue2_CardExpiryDate = this.CardVerificationValue2_CardExpiryDate;
context.DynamicCardVerificationCode_ApplicationTransactionCounter = this.DynamicCardVerificationCode_ApplicationTransactionCounter;
context.DynamicCardVerificationCode_PanSequenceNumber = this.DynamicCardVerificationCode_PanSequenceNumber;
context.DynamicCardVerificationCode_TrackData = this.DynamicCardVerificationCode_TrackData;
context.DynamicCardVerificationCode_UnpredictableNumber = this.DynamicCardVerificationCode_UnpredictableNumber;
context.DynamicCardVerificationValue_ApplicationTransactionCounter = this.DynamicCardVerificationValue_ApplicationTransactionCounter;
context.DynamicCardVerificationValue_CardExpiryDate = this.DynamicCardVerificationValue_CardExpiryDate;
context.DynamicCardVerificationValue_PanSequenceNumber = this.DynamicCardVerificationValue_PanSequenceNumber;
context.DynamicCardVerificationValue_ServiceCode = this.DynamicCardVerificationValue_ServiceCode;
context.KeyIdentifier = this.KeyIdentifier;
#if MODULAR
if (this.KeyIdentifier == null && ParameterWasBound(nameof(this.KeyIdentifier)))
{
WriteWarning("You are passing $null as a value for parameter KeyIdentifier which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.PrimaryAccountNumber = this.PrimaryAccountNumber;
#if MODULAR
if (this.PrimaryAccountNumber == null && ParameterWasBound(nameof(this.PrimaryAccountNumber)))
{
WriteWarning("You are passing $null as a value for parameter PrimaryAccountNumber which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.ValidationDataLength = this.ValidationDataLength;
// allow further manipulation of loaded context prior to processing
PostExecutionContextLoad(context);
var output = Execute(context) as CmdletOutput;
ProcessOutput(output);
}
#region IExecutor Members
public object Execute(ExecutorContext context)
{
var cmdletContext = context as CmdletContext;
// create request
var request = new Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataRequest();
// populate GenerationAttributes
var requestGenerationAttributesIsNull = true;
request.GenerationAttributes = new Amazon.PaymentCryptographyData.Model.CardGenerationAttributes();
Amazon.PaymentCryptographyData.Model.AmexCardSecurityCodeVersion1 requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1 = null;
// populate AmexCardSecurityCodeVersion1
var requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1IsNull = true;
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1 = new Amazon.PaymentCryptographyData.Model.AmexCardSecurityCodeVersion1();
System.String requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1_amexCardSecurityCodeVersion1_CardExpiryDate = null;
if (cmdletContext.AmexCardSecurityCodeVersion1_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1_amexCardSecurityCodeVersion1_CardExpiryDate = cmdletContext.AmexCardSecurityCodeVersion1_CardExpiryDate;
}
if (requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1_amexCardSecurityCodeVersion1_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1.CardExpiryDate = requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1_amexCardSecurityCodeVersion1_CardExpiryDate;
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1IsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1 should be set to null
if (requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1IsNull)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1 = null;
}
if (requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1 != null)
{
request.GenerationAttributes.AmexCardSecurityCodeVersion1 = requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion1;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.CardVerificationValue2 requestGenerationAttributes_generationAttributes_CardVerificationValue2 = null;
// populate CardVerificationValue2
var requestGenerationAttributes_generationAttributes_CardVerificationValue2IsNull = true;
requestGenerationAttributes_generationAttributes_CardVerificationValue2 = new Amazon.PaymentCryptographyData.Model.CardVerificationValue2();
System.String requestGenerationAttributes_generationAttributes_CardVerificationValue2_cardVerificationValue2_CardExpiryDate = null;
if (cmdletContext.CardVerificationValue2_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue2_cardVerificationValue2_CardExpiryDate = cmdletContext.CardVerificationValue2_CardExpiryDate;
}
if (requestGenerationAttributes_generationAttributes_CardVerificationValue2_cardVerificationValue2_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue2.CardExpiryDate = requestGenerationAttributes_generationAttributes_CardVerificationValue2_cardVerificationValue2_CardExpiryDate;
requestGenerationAttributes_generationAttributes_CardVerificationValue2IsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_CardVerificationValue2 should be set to null
if (requestGenerationAttributes_generationAttributes_CardVerificationValue2IsNull)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue2 = null;
}
if (requestGenerationAttributes_generationAttributes_CardVerificationValue2 != null)
{
request.GenerationAttributes.CardVerificationValue2 = requestGenerationAttributes_generationAttributes_CardVerificationValue2;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.AmexCardSecurityCodeVersion2 requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2 = null;
// populate AmexCardSecurityCodeVersion2
var requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2IsNull = true;
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2 = new Amazon.PaymentCryptographyData.Model.AmexCardSecurityCodeVersion2();
System.String requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_CardExpiryDate = null;
if (cmdletContext.AmexCardSecurityCodeVersion2_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_CardExpiryDate = cmdletContext.AmexCardSecurityCodeVersion2_CardExpiryDate;
}
if (requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2.CardExpiryDate = requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_CardExpiryDate;
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2IsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_ServiceCode = null;
if (cmdletContext.AmexCardSecurityCodeVersion2_ServiceCode != null)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_ServiceCode = cmdletContext.AmexCardSecurityCodeVersion2_ServiceCode;
}
if (requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_ServiceCode != null)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2.ServiceCode = requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2_amexCardSecurityCodeVersion2_ServiceCode;
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2IsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2 should be set to null
if (requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2IsNull)
{
requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2 = null;
}
if (requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2 != null)
{
request.GenerationAttributes.AmexCardSecurityCodeVersion2 = requestGenerationAttributes_generationAttributes_AmexCardSecurityCodeVersion2;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.CardVerificationValue1 requestGenerationAttributes_generationAttributes_CardVerificationValue1 = null;
// populate CardVerificationValue1
var requestGenerationAttributes_generationAttributes_CardVerificationValue1IsNull = true;
requestGenerationAttributes_generationAttributes_CardVerificationValue1 = new Amazon.PaymentCryptographyData.Model.CardVerificationValue1();
System.String requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_CardExpiryDate = null;
if (cmdletContext.CardVerificationValue1_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_CardExpiryDate = cmdletContext.CardVerificationValue1_CardExpiryDate;
}
if (requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue1.CardExpiryDate = requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_CardExpiryDate;
requestGenerationAttributes_generationAttributes_CardVerificationValue1IsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_ServiceCode = null;
if (cmdletContext.CardVerificationValue1_ServiceCode != null)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_ServiceCode = cmdletContext.CardVerificationValue1_ServiceCode;
}
if (requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_ServiceCode != null)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue1.ServiceCode = requestGenerationAttributes_generationAttributes_CardVerificationValue1_cardVerificationValue1_ServiceCode;
requestGenerationAttributes_generationAttributes_CardVerificationValue1IsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_CardVerificationValue1 should be set to null
if (requestGenerationAttributes_generationAttributes_CardVerificationValue1IsNull)
{
requestGenerationAttributes_generationAttributes_CardVerificationValue1 = null;
}
if (requestGenerationAttributes_generationAttributes_CardVerificationValue1 != null)
{
request.GenerationAttributes.CardVerificationValue1 = requestGenerationAttributes_generationAttributes_CardVerificationValue1;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.CardHolderVerificationValue requestGenerationAttributes_generationAttributes_CardHolderVerificationValue = null;
// populate CardHolderVerificationValue
var requestGenerationAttributes_generationAttributes_CardHolderVerificationValueIsNull = true;
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue = new Amazon.PaymentCryptographyData.Model.CardHolderVerificationValue();
System.String requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_ApplicationTransactionCounter = null;
if (cmdletContext.CardHolderVerificationValue_ApplicationTransactionCounter != null)
{
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_ApplicationTransactionCounter = cmdletContext.CardHolderVerificationValue_ApplicationTransactionCounter;
}
if (requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_ApplicationTransactionCounter != null)
{
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue.ApplicationTransactionCounter = requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_ApplicationTransactionCounter;
requestGenerationAttributes_generationAttributes_CardHolderVerificationValueIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_PanSequenceNumber = null;
if (cmdletContext.CardHolderVerificationValue_PanSequenceNumber != null)
{
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_PanSequenceNumber = cmdletContext.CardHolderVerificationValue_PanSequenceNumber;
}
if (requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_PanSequenceNumber != null)
{
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue.PanSequenceNumber = requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_PanSequenceNumber;
requestGenerationAttributes_generationAttributes_CardHolderVerificationValueIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_UnpredictableNumber = null;
if (cmdletContext.CardHolderVerificationValue_UnpredictableNumber != null)
{
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_UnpredictableNumber = cmdletContext.CardHolderVerificationValue_UnpredictableNumber;
}
if (requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_UnpredictableNumber != null)
{
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue.UnpredictableNumber = requestGenerationAttributes_generationAttributes_CardHolderVerificationValue_cardHolderVerificationValue_UnpredictableNumber;
requestGenerationAttributes_generationAttributes_CardHolderVerificationValueIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_CardHolderVerificationValue should be set to null
if (requestGenerationAttributes_generationAttributes_CardHolderVerificationValueIsNull)
{
requestGenerationAttributes_generationAttributes_CardHolderVerificationValue = null;
}
if (requestGenerationAttributes_generationAttributes_CardHolderVerificationValue != null)
{
request.GenerationAttributes.CardHolderVerificationValue = requestGenerationAttributes_generationAttributes_CardHolderVerificationValue;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.DynamicCardVerificationCode requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode = null;
// populate DynamicCardVerificationCode
var requestGenerationAttributes_generationAttributes_DynamicCardVerificationCodeIsNull = true;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode = new Amazon.PaymentCryptographyData.Model.DynamicCardVerificationCode();
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_ApplicationTransactionCounter = null;
if (cmdletContext.DynamicCardVerificationCode_ApplicationTransactionCounter != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_ApplicationTransactionCounter = cmdletContext.DynamicCardVerificationCode_ApplicationTransactionCounter;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_ApplicationTransactionCounter != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode.ApplicationTransactionCounter = requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_ApplicationTransactionCounter;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCodeIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_PanSequenceNumber = null;
if (cmdletContext.DynamicCardVerificationCode_PanSequenceNumber != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_PanSequenceNumber = cmdletContext.DynamicCardVerificationCode_PanSequenceNumber;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_PanSequenceNumber != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode.PanSequenceNumber = requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_PanSequenceNumber;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCodeIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_TrackData = null;
if (cmdletContext.DynamicCardVerificationCode_TrackData != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_TrackData = cmdletContext.DynamicCardVerificationCode_TrackData;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_TrackData != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode.TrackData = requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_TrackData;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCodeIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_UnpredictableNumber = null;
if (cmdletContext.DynamicCardVerificationCode_UnpredictableNumber != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_UnpredictableNumber = cmdletContext.DynamicCardVerificationCode_UnpredictableNumber;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_UnpredictableNumber != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode.UnpredictableNumber = requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode_dynamicCardVerificationCode_UnpredictableNumber;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCodeIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode should be set to null
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationCodeIsNull)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode = null;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode != null)
{
request.GenerationAttributes.DynamicCardVerificationCode = requestGenerationAttributes_generationAttributes_DynamicCardVerificationCode;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.DynamicCardVerificationValue requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue = null;
// populate DynamicCardVerificationValue
var requestGenerationAttributes_generationAttributes_DynamicCardVerificationValueIsNull = true;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue = new Amazon.PaymentCryptographyData.Model.DynamicCardVerificationValue();
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ApplicationTransactionCounter = null;
if (cmdletContext.DynamicCardVerificationValue_ApplicationTransactionCounter != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ApplicationTransactionCounter = cmdletContext.DynamicCardVerificationValue_ApplicationTransactionCounter;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ApplicationTransactionCounter != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue.ApplicationTransactionCounter = requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ApplicationTransactionCounter;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValueIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_CardExpiryDate = null;
if (cmdletContext.DynamicCardVerificationValue_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_CardExpiryDate = cmdletContext.DynamicCardVerificationValue_CardExpiryDate;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_CardExpiryDate != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue.CardExpiryDate = requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_CardExpiryDate;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValueIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_PanSequenceNumber = null;
if (cmdletContext.DynamicCardVerificationValue_PanSequenceNumber != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_PanSequenceNumber = cmdletContext.DynamicCardVerificationValue_PanSequenceNumber;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_PanSequenceNumber != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue.PanSequenceNumber = requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_PanSequenceNumber;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValueIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ServiceCode = null;
if (cmdletContext.DynamicCardVerificationValue_ServiceCode != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ServiceCode = cmdletContext.DynamicCardVerificationValue_ServiceCode;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ServiceCode != null)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue.ServiceCode = requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue_dynamicCardVerificationValue_ServiceCode;
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValueIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue should be set to null
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationValueIsNull)
{
requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue = null;
}
if (requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue != null)
{
request.GenerationAttributes.DynamicCardVerificationValue = requestGenerationAttributes_generationAttributes_DynamicCardVerificationValue;
requestGenerationAttributesIsNull = false;
}
// determine if request.GenerationAttributes should be set to null
if (requestGenerationAttributesIsNull)
{
request.GenerationAttributes = null;
}
if (cmdletContext.KeyIdentifier != null)
{
request.KeyIdentifier = cmdletContext.KeyIdentifier;
}
if (cmdletContext.PrimaryAccountNumber != null)
{
request.PrimaryAccountNumber = cmdletContext.PrimaryAccountNumber;
}
if (cmdletContext.ValidationDataLength != null)
{
request.ValidationDataLength = cmdletContext.ValidationDataLength.Value;
}
CmdletOutput output;
// issue call
var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
try
{
var response = CallAWSServiceOperation(client, request);
object pipelineOutput = null;
pipelineOutput = cmdletContext.Select(response, this);
output = new CmdletOutput
{
PipelineOutput = pipelineOutput,
ServiceResponse = response
};
}
catch (Exception e)
{
output = new CmdletOutput { ErrorResponse = e };
}
return output;
}
public ExecutorContext CreateContext()
{
return new CmdletContext();
}
#endregion
#region AWS Service Operation Call
private Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataResponse CallAWSServiceOperation(IAmazonPaymentCryptographyData client, Amazon.PaymentCryptographyData.Model.GenerateCardValidationDataRequest request)
{
Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Payment Cryptography Data", "GenerateCardValidationData");
try
{
#if DESKTOP
return client.GenerateCardValidationData(request);
#elif CORECLR
return client.GenerateCardValidationDataAsync(request).GetAwaiter().GetResult();
#else
#error "Unknown build edition"
#endif
}
catch (AmazonServiceException exc)
{
var webException = exc.InnerException as System.Net.WebException;
if (webException != null)
{
throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
}
throw;
}
}
#endregion
internal partial class CmdletContext : ExecutorContext
{
public System.String AmexCardSecurityCodeVersion1_CardExpiryDate { get; set; }
public System.String AmexCardSecurityCodeVersion2_CardExpiryDate { get; set; }
public System.String AmexCardSecurityCodeVersion2_ServiceCode { get; set; }
public System.String CardHolderVerificationValue_ApplicationTransactionCounter { get; set; }
public System.String CardHolderVerificationValue_PanSequenceNumber { get; set; }
public System.String CardHolderVerificationValue_UnpredictableNumber { get; set; }
public System.String CardVerificationValue1_CardExpiryDate { get; set; }
public System.String CardVerificationValue1_ServiceCode { get; set; }
public System.String CardVerificationValue2_CardExpiryDate { get; set; }
public System.String DynamicCardVerificationCode_ApplicationTransactionCounter { get; set; }
public System.String DynamicCardVerificationCode_PanSequenceNumber { get; set; }
public System.String DynamicCardVerificationCode_TrackData { get; set; }
public System.String DynamicCardVerificationCode_UnpredictableNumber { get; set; }
public System.String DynamicCardVerificationValue_ApplicationTransactionCounter { get; set; }
public System.String DynamicCardVerificationValue_CardExpiryDate { get; set; }
public System.String DynamicCardVerificationValue_PanSequenceNumber { get; set; }
public System.String DynamicCardVerificationValue_ServiceCode { get; set; }
public System.String KeyIdentifier { get; set; }
public System.String PrimaryAccountNumber { get; set; }
public System.Int32? ValidationDataLength { get; set; }
public System.Func Select { get; set; } =
(response, cmdlet) => response;
}
}
}