/*******************************************************************************
* 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 pin-related data such as PIN, PIN Verification Value (PVV), PIN Block, and
/// PIN Offset during new card issuance or reissuance. For more information, see Generate
/// PIN data in the Amazon Web Services Payment Cryptography User Guide.
///
///
///
/// PIN data is never transmitted in clear to or from Amazon Web Services Payment Cryptography.
/// This operation generates PIN, PVV, or PIN Offset and then encrypts it using Pin Encryption
/// Key (PEK) to create an EncryptedPinBlock
for transmission from Amazon
/// Web Services Payment Cryptography. This operation uses a separate Pin Verification
/// Key (PVK) for VISA PVV generation.
///
/// 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", "PAYCDPinData", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)]
[OutputType("Amazon.PaymentCryptographyData.Model.GeneratePinDataResponse")]
[AWSCmdlet("Calls the Payment Cryptography Data GeneratePinData API operation.", Operation = new[] {"GeneratePinData"}, SelectReturnType = typeof(Amazon.PaymentCryptographyData.Model.GeneratePinDataResponse))]
[AWSCmdletOutput("Amazon.PaymentCryptographyData.Model.GeneratePinDataResponse",
"This cmdlet returns an Amazon.PaymentCryptographyData.Model.GeneratePinDataResponse object containing multiple properties. The object can also be referenced from properties attached to the cmdlet entry in the $AWSHistory stack."
)]
public partial class NewPAYCDPinDataCmdlet : AmazonPaymentCryptographyDataClientCmdlet, IExecutor
{
protected override bool IsSensitiveRequest { get; set; } = true;
#region Parameter Ibm3624NaturalPin_DecimalizationTable
///
///
/// The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert
/// the algorithm intermediate result from hexadecimal characters to decimal.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624NaturalPin_DecimalizationTable")]
public System.String Ibm3624NaturalPin_DecimalizationTable { get; set; }
#endregion
#region Parameter Ibm3624PinFromOffset_DecimalizationTable
///
///
/// The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert
/// the algorithm intermediate result from hexadecimal characters to decimal.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinFromOffset_DecimalizationTable")]
public System.String Ibm3624PinFromOffset_DecimalizationTable { get; set; }
#endregion
#region Parameter Ibm3624PinOffset_DecimalizationTable
///
///
/// The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert
/// the algorithm intermediate result from hexadecimal characters to decimal.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinOffset_DecimalizationTable")]
public System.String Ibm3624PinOffset_DecimalizationTable { get; set; }
#endregion
#region Parameter Ibm3624RandomPin_DecimalizationTable
///
///
/// The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert
/// the algorithm intermediate result from hexadecimal characters to decimal.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624RandomPin_DecimalizationTable")]
public System.String Ibm3624RandomPin_DecimalizationTable { get; set; }
#endregion
#region Parameter Ibm3624PinOffset_EncryptedPinBlock
///
///
/// The encrypted PIN block data. According to ISO 9564 standard, a PIN Block is an encoded
/// representation of a payment card Personal Account Number (PAN) and the cardholder
/// Personal Identification Number (PIN).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinOffset_EncryptedPinBlock")]
public System.String Ibm3624PinOffset_EncryptedPinBlock { get; set; }
#endregion
#region Parameter VisaPinVerificationValue_EncryptedPinBlock
///
///
/// The encrypted PIN block data to verify.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_VisaPinVerificationValue_EncryptedPinBlock")]
public System.String VisaPinVerificationValue_EncryptedPinBlock { get; set; }
#endregion
#region Parameter EncryptionKeyIdentifier
///
///
/// The keyARN
of the PEK that Amazon Web Services Payment Cryptography uses
/// to encrypt the PIN Block.
///
///
#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 EncryptionKeyIdentifier { get; set; }
#endregion
#region Parameter GenerationKeyIdentifier
///
///
/// The keyARN
of the PEK that Amazon Web Services Payment Cryptography uses
/// for pin data generation.
///
///
#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 GenerationKeyIdentifier { get; set; }
#endregion
#region Parameter 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.
///
///
#if !MODULAR
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
#else
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
[AWSConstantClassSource("Amazon.PaymentCryptographyData.PinBlockFormatForPinData")]
public Amazon.PaymentCryptographyData.PinBlockFormatForPinData PinBlockFormat { get; set; }
#endregion
#region Parameter PinDataLength
///
///
/// The length of PIN under generation.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? PinDataLength { get; set; }
#endregion
#region Parameter Ibm3624PinFromOffset_PinOffset
///
///
/// The PIN offset value.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinFromOffset_PinOffset")]
public System.String Ibm3624PinFromOffset_PinOffset { get; set; }
#endregion
#region Parameter Ibm3624NaturalPin_PinValidationData
///
///
/// The unique data for cardholder identification.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624NaturalPin_PinValidationData")]
public System.String Ibm3624NaturalPin_PinValidationData { get; set; }
#endregion
#region Parameter Ibm3624PinFromOffset_PinValidationData
///
///
/// The unique data for cardholder identification.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinFromOffset_PinValidationData")]
public System.String Ibm3624PinFromOffset_PinValidationData { get; set; }
#endregion
#region Parameter Ibm3624PinOffset_PinValidationData
///
///
/// The unique data for cardholder identification.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinOffset_PinValidationData")]
public System.String Ibm3624PinOffset_PinValidationData { get; set; }
#endregion
#region Parameter Ibm3624RandomPin_PinValidationData
///
///
/// The unique data for cardholder identification.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624RandomPin_PinValidationData")]
public System.String Ibm3624RandomPin_PinValidationData { get; set; }
#endregion
#region Parameter Ibm3624NaturalPin_PinValidationDataPadCharacter
///
///
/// The padding character for validation data.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624NaturalPin_PinValidationDataPadCharacter")]
public System.String Ibm3624NaturalPin_PinValidationDataPadCharacter { get; set; }
#endregion
#region Parameter Ibm3624PinFromOffset_PinValidationDataPadCharacter
///
///
/// The padding character for validation data.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinFromOffset_PinValidationDataPadCharacter")]
public System.String Ibm3624PinFromOffset_PinValidationDataPadCharacter { get; set; }
#endregion
#region Parameter Ibm3624PinOffset_PinValidationDataPadCharacter
///
///
/// The padding character for validation data.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624PinOffset_PinValidationDataPadCharacter")]
public System.String Ibm3624PinOffset_PinValidationDataPadCharacter { get; set; }
#endregion
#region Parameter Ibm3624RandomPin_PinValidationDataPadCharacter
///
///
/// The padding character for validation data.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_Ibm3624RandomPin_PinValidationDataPadCharacter")]
public System.String Ibm3624RandomPin_PinValidationDataPadCharacter { get; set; }
#endregion
#region Parameter VisaPin_PinVerificationKeyIndex
///
///
/// The value for PIN verification index. It is used in the Visa PIN algorithm to calculate
/// the PVV (PIN Verification Value).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_VisaPin_PinVerificationKeyIndex")]
public System.Int32? VisaPin_PinVerificationKeyIndex { get; set; }
#endregion
#region Parameter VisaPinVerificationValue_PinVerificationKeyIndex
///
///
/// The value for PIN verification index. It is used in the Visa PIN algorithm to calculate
/// the PVV (PIN Verification Value).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("GenerationAttributes_VisaPinVerificationValue_PinVerificationKeyIndex")]
public System.Int32? VisaPinVerificationValue_PinVerificationKeyIndex { 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 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.GeneratePinDataResponse).
/// Specifying the name of a property of type Amazon.PaymentCryptographyData.Model.GeneratePinDataResponse 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 GenerationKeyIdentifier parameter.
/// The -PassThru parameter is deprecated, use -Select '^GenerationKeyIdentifier' instead. This parameter will be removed in a future version.
///
[System.Obsolete("The -PassThru parameter is deprecated, use -Select '^GenerationKeyIdentifier' 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 = string.Empty;
if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "New-PAYCDPinData (GeneratePinData)"))
{
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.GenerationKeyIdentifier;
}
#pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute
context.EncryptionKeyIdentifier = this.EncryptionKeyIdentifier;
#if MODULAR
if (this.EncryptionKeyIdentifier == null && ParameterWasBound(nameof(this.EncryptionKeyIdentifier)))
{
WriteWarning("You are passing $null as a value for parameter EncryptionKeyIdentifier 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.Ibm3624NaturalPin_DecimalizationTable = this.Ibm3624NaturalPin_DecimalizationTable;
context.Ibm3624NaturalPin_PinValidationData = this.Ibm3624NaturalPin_PinValidationData;
context.Ibm3624NaturalPin_PinValidationDataPadCharacter = this.Ibm3624NaturalPin_PinValidationDataPadCharacter;
context.Ibm3624PinFromOffset_DecimalizationTable = this.Ibm3624PinFromOffset_DecimalizationTable;
context.Ibm3624PinFromOffset_PinOffset = this.Ibm3624PinFromOffset_PinOffset;
context.Ibm3624PinFromOffset_PinValidationData = this.Ibm3624PinFromOffset_PinValidationData;
context.Ibm3624PinFromOffset_PinValidationDataPadCharacter = this.Ibm3624PinFromOffset_PinValidationDataPadCharacter;
context.Ibm3624PinOffset_DecimalizationTable = this.Ibm3624PinOffset_DecimalizationTable;
context.Ibm3624PinOffset_EncryptedPinBlock = this.Ibm3624PinOffset_EncryptedPinBlock;
context.Ibm3624PinOffset_PinValidationData = this.Ibm3624PinOffset_PinValidationData;
context.Ibm3624PinOffset_PinValidationDataPadCharacter = this.Ibm3624PinOffset_PinValidationDataPadCharacter;
context.Ibm3624RandomPin_DecimalizationTable = this.Ibm3624RandomPin_DecimalizationTable;
context.Ibm3624RandomPin_PinValidationData = this.Ibm3624RandomPin_PinValidationData;
context.Ibm3624RandomPin_PinValidationDataPadCharacter = this.Ibm3624RandomPin_PinValidationDataPadCharacter;
context.VisaPin_PinVerificationKeyIndex = this.VisaPin_PinVerificationKeyIndex;
context.VisaPinVerificationValue_EncryptedPinBlock = this.VisaPinVerificationValue_EncryptedPinBlock;
context.VisaPinVerificationValue_PinVerificationKeyIndex = this.VisaPinVerificationValue_PinVerificationKeyIndex;
context.GenerationKeyIdentifier = this.GenerationKeyIdentifier;
#if MODULAR
if (this.GenerationKeyIdentifier == null && ParameterWasBound(nameof(this.GenerationKeyIdentifier)))
{
WriteWarning("You are passing $null as a value for parameter GenerationKeyIdentifier 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.PinBlockFormat = this.PinBlockFormat;
#if MODULAR
if (this.PinBlockFormat == null && ParameterWasBound(nameof(this.PinBlockFormat)))
{
WriteWarning("You are passing $null as a value for parameter PinBlockFormat 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.PinDataLength = this.PinDataLength;
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
// 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.GeneratePinDataRequest();
if (cmdletContext.EncryptionKeyIdentifier != null)
{
request.EncryptionKeyIdentifier = cmdletContext.EncryptionKeyIdentifier;
}
// populate GenerationAttributes
var requestGenerationAttributesIsNull = true;
request.GenerationAttributes = new Amazon.PaymentCryptographyData.Model.PinGenerationAttributes();
Amazon.PaymentCryptographyData.Model.VisaPin requestGenerationAttributes_generationAttributes_VisaPin = null;
// populate VisaPin
var requestGenerationAttributes_generationAttributes_VisaPinIsNull = true;
requestGenerationAttributes_generationAttributes_VisaPin = new Amazon.PaymentCryptographyData.Model.VisaPin();
System.Int32? requestGenerationAttributes_generationAttributes_VisaPin_visaPin_PinVerificationKeyIndex = null;
if (cmdletContext.VisaPin_PinVerificationKeyIndex != null)
{
requestGenerationAttributes_generationAttributes_VisaPin_visaPin_PinVerificationKeyIndex = cmdletContext.VisaPin_PinVerificationKeyIndex.Value;
}
if (requestGenerationAttributes_generationAttributes_VisaPin_visaPin_PinVerificationKeyIndex != null)
{
requestGenerationAttributes_generationAttributes_VisaPin.PinVerificationKeyIndex = requestGenerationAttributes_generationAttributes_VisaPin_visaPin_PinVerificationKeyIndex.Value;
requestGenerationAttributes_generationAttributes_VisaPinIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_VisaPin should be set to null
if (requestGenerationAttributes_generationAttributes_VisaPinIsNull)
{
requestGenerationAttributes_generationAttributes_VisaPin = null;
}
if (requestGenerationAttributes_generationAttributes_VisaPin != null)
{
request.GenerationAttributes.VisaPin = requestGenerationAttributes_generationAttributes_VisaPin;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.VisaPinVerificationValue requestGenerationAttributes_generationAttributes_VisaPinVerificationValue = null;
// populate VisaPinVerificationValue
var requestGenerationAttributes_generationAttributes_VisaPinVerificationValueIsNull = true;
requestGenerationAttributes_generationAttributes_VisaPinVerificationValue = new Amazon.PaymentCryptographyData.Model.VisaPinVerificationValue();
System.String requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_EncryptedPinBlock = null;
if (cmdletContext.VisaPinVerificationValue_EncryptedPinBlock != null)
{
requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_EncryptedPinBlock = cmdletContext.VisaPinVerificationValue_EncryptedPinBlock;
}
if (requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_EncryptedPinBlock != null)
{
requestGenerationAttributes_generationAttributes_VisaPinVerificationValue.EncryptedPinBlock = requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_EncryptedPinBlock;
requestGenerationAttributes_generationAttributes_VisaPinVerificationValueIsNull = false;
}
System.Int32? requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_PinVerificationKeyIndex = null;
if (cmdletContext.VisaPinVerificationValue_PinVerificationKeyIndex != null)
{
requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_PinVerificationKeyIndex = cmdletContext.VisaPinVerificationValue_PinVerificationKeyIndex.Value;
}
if (requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_PinVerificationKeyIndex != null)
{
requestGenerationAttributes_generationAttributes_VisaPinVerificationValue.PinVerificationKeyIndex = requestGenerationAttributes_generationAttributes_VisaPinVerificationValue_visaPinVerificationValue_PinVerificationKeyIndex.Value;
requestGenerationAttributes_generationAttributes_VisaPinVerificationValueIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_VisaPinVerificationValue should be set to null
if (requestGenerationAttributes_generationAttributes_VisaPinVerificationValueIsNull)
{
requestGenerationAttributes_generationAttributes_VisaPinVerificationValue = null;
}
if (requestGenerationAttributes_generationAttributes_VisaPinVerificationValue != null)
{
request.GenerationAttributes.VisaPinVerificationValue = requestGenerationAttributes_generationAttributes_VisaPinVerificationValue;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.Ibm3624NaturalPin requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin = null;
// populate Ibm3624NaturalPin
var requestGenerationAttributes_generationAttributes_Ibm3624NaturalPinIsNull = true;
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin = new Amazon.PaymentCryptographyData.Model.Ibm3624NaturalPin();
System.String requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_DecimalizationTable = null;
if (cmdletContext.Ibm3624NaturalPin_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_DecimalizationTable = cmdletContext.Ibm3624NaturalPin_DecimalizationTable;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin.DecimalizationTable = requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_DecimalizationTable;
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPinIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationData = null;
if (cmdletContext.Ibm3624NaturalPin_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationData = cmdletContext.Ibm3624NaturalPin_PinValidationData;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin.PinValidationData = requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationData;
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPinIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationDataPadCharacter = null;
if (cmdletContext.Ibm3624NaturalPin_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationDataPadCharacter = cmdletContext.Ibm3624NaturalPin_PinValidationDataPadCharacter;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin.PinValidationDataPadCharacter = requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin_ibm3624NaturalPin_PinValidationDataPadCharacter;
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPinIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin should be set to null
if (requestGenerationAttributes_generationAttributes_Ibm3624NaturalPinIsNull)
{
requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin = null;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin != null)
{
request.GenerationAttributes.Ibm3624NaturalPin = requestGenerationAttributes_generationAttributes_Ibm3624NaturalPin;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.Ibm3624RandomPin requestGenerationAttributes_generationAttributes_Ibm3624RandomPin = null;
// populate Ibm3624RandomPin
var requestGenerationAttributes_generationAttributes_Ibm3624RandomPinIsNull = true;
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin = new Amazon.PaymentCryptographyData.Model.Ibm3624RandomPin();
System.String requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_DecimalizationTable = null;
if (cmdletContext.Ibm3624RandomPin_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_DecimalizationTable = cmdletContext.Ibm3624RandomPin_DecimalizationTable;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin.DecimalizationTable = requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_DecimalizationTable;
requestGenerationAttributes_generationAttributes_Ibm3624RandomPinIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationData = null;
if (cmdletContext.Ibm3624RandomPin_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationData = cmdletContext.Ibm3624RandomPin_PinValidationData;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin.PinValidationData = requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationData;
requestGenerationAttributes_generationAttributes_Ibm3624RandomPinIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationDataPadCharacter = null;
if (cmdletContext.Ibm3624RandomPin_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationDataPadCharacter = cmdletContext.Ibm3624RandomPin_PinValidationDataPadCharacter;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin.PinValidationDataPadCharacter = requestGenerationAttributes_generationAttributes_Ibm3624RandomPin_ibm3624RandomPin_PinValidationDataPadCharacter;
requestGenerationAttributes_generationAttributes_Ibm3624RandomPinIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_Ibm3624RandomPin should be set to null
if (requestGenerationAttributes_generationAttributes_Ibm3624RandomPinIsNull)
{
requestGenerationAttributes_generationAttributes_Ibm3624RandomPin = null;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624RandomPin != null)
{
request.GenerationAttributes.Ibm3624RandomPin = requestGenerationAttributes_generationAttributes_Ibm3624RandomPin;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.Ibm3624PinFromOffset requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset = null;
// populate Ibm3624PinFromOffset
var requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffsetIsNull = true;
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset = new Amazon.PaymentCryptographyData.Model.Ibm3624PinFromOffset();
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_DecimalizationTable = null;
if (cmdletContext.Ibm3624PinFromOffset_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_DecimalizationTable = cmdletContext.Ibm3624PinFromOffset_DecimalizationTable;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset.DecimalizationTable = requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_DecimalizationTable;
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffsetIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinOffset = null;
if (cmdletContext.Ibm3624PinFromOffset_PinOffset != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinOffset = cmdletContext.Ibm3624PinFromOffset_PinOffset;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinOffset != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset.PinOffset = requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinOffset;
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffsetIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationData = null;
if (cmdletContext.Ibm3624PinFromOffset_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationData = cmdletContext.Ibm3624PinFromOffset_PinValidationData;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset.PinValidationData = requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationData;
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffsetIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationDataPadCharacter = null;
if (cmdletContext.Ibm3624PinFromOffset_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationDataPadCharacter = cmdletContext.Ibm3624PinFromOffset_PinValidationDataPadCharacter;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset.PinValidationDataPadCharacter = requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset_ibm3624PinFromOffset_PinValidationDataPadCharacter;
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffsetIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset should be set to null
if (requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffsetIsNull)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset = null;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset != null)
{
request.GenerationAttributes.Ibm3624PinFromOffset = requestGenerationAttributes_generationAttributes_Ibm3624PinFromOffset;
requestGenerationAttributesIsNull = false;
}
Amazon.PaymentCryptographyData.Model.Ibm3624PinOffset requestGenerationAttributes_generationAttributes_Ibm3624PinOffset = null;
// populate Ibm3624PinOffset
var requestGenerationAttributes_generationAttributes_Ibm3624PinOffsetIsNull = true;
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset = new Amazon.PaymentCryptographyData.Model.Ibm3624PinOffset();
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_DecimalizationTable = null;
if (cmdletContext.Ibm3624PinOffset_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_DecimalizationTable = cmdletContext.Ibm3624PinOffset_DecimalizationTable;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_DecimalizationTable != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset.DecimalizationTable = requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_DecimalizationTable;
requestGenerationAttributes_generationAttributes_Ibm3624PinOffsetIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_EncryptedPinBlock = null;
if (cmdletContext.Ibm3624PinOffset_EncryptedPinBlock != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_EncryptedPinBlock = cmdletContext.Ibm3624PinOffset_EncryptedPinBlock;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_EncryptedPinBlock != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset.EncryptedPinBlock = requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_EncryptedPinBlock;
requestGenerationAttributes_generationAttributes_Ibm3624PinOffsetIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationData = null;
if (cmdletContext.Ibm3624PinOffset_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationData = cmdletContext.Ibm3624PinOffset_PinValidationData;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationData != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset.PinValidationData = requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationData;
requestGenerationAttributes_generationAttributes_Ibm3624PinOffsetIsNull = false;
}
System.String requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationDataPadCharacter = null;
if (cmdletContext.Ibm3624PinOffset_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationDataPadCharacter = cmdletContext.Ibm3624PinOffset_PinValidationDataPadCharacter;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationDataPadCharacter != null)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset.PinValidationDataPadCharacter = requestGenerationAttributes_generationAttributes_Ibm3624PinOffset_ibm3624PinOffset_PinValidationDataPadCharacter;
requestGenerationAttributes_generationAttributes_Ibm3624PinOffsetIsNull = false;
}
// determine if requestGenerationAttributes_generationAttributes_Ibm3624PinOffset should be set to null
if (requestGenerationAttributes_generationAttributes_Ibm3624PinOffsetIsNull)
{
requestGenerationAttributes_generationAttributes_Ibm3624PinOffset = null;
}
if (requestGenerationAttributes_generationAttributes_Ibm3624PinOffset != null)
{
request.GenerationAttributes.Ibm3624PinOffset = requestGenerationAttributes_generationAttributes_Ibm3624PinOffset;
requestGenerationAttributesIsNull = false;
}
// determine if request.GenerationAttributes should be set to null
if (requestGenerationAttributesIsNull)
{
request.GenerationAttributes = null;
}
if (cmdletContext.GenerationKeyIdentifier != null)
{
request.GenerationKeyIdentifier = cmdletContext.GenerationKeyIdentifier;
}
if (cmdletContext.PinBlockFormat != null)
{
request.PinBlockFormat = cmdletContext.PinBlockFormat;
}
if (cmdletContext.PinDataLength != null)
{
request.PinDataLength = cmdletContext.PinDataLength.Value;
}
if (cmdletContext.PrimaryAccountNumber != null)
{
request.PrimaryAccountNumber = cmdletContext.PrimaryAccountNumber;
}
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.GeneratePinDataResponse CallAWSServiceOperation(IAmazonPaymentCryptographyData client, Amazon.PaymentCryptographyData.Model.GeneratePinDataRequest request)
{
Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Payment Cryptography Data", "GeneratePinData");
try
{
#if DESKTOP
return client.GeneratePinData(request);
#elif CORECLR
return client.GeneratePinDataAsync(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 EncryptionKeyIdentifier { get; set; }
public System.String Ibm3624NaturalPin_DecimalizationTable { get; set; }
public System.String Ibm3624NaturalPin_PinValidationData { get; set; }
public System.String Ibm3624NaturalPin_PinValidationDataPadCharacter { get; set; }
public System.String Ibm3624PinFromOffset_DecimalizationTable { get; set; }
public System.String Ibm3624PinFromOffset_PinOffset { get; set; }
public System.String Ibm3624PinFromOffset_PinValidationData { get; set; }
public System.String Ibm3624PinFromOffset_PinValidationDataPadCharacter { get; set; }
public System.String Ibm3624PinOffset_DecimalizationTable { get; set; }
public System.String Ibm3624PinOffset_EncryptedPinBlock { get; set; }
public System.String Ibm3624PinOffset_PinValidationData { get; set; }
public System.String Ibm3624PinOffset_PinValidationDataPadCharacter { get; set; }
public System.String Ibm3624RandomPin_DecimalizationTable { get; set; }
public System.String Ibm3624RandomPin_PinValidationData { get; set; }
public System.String Ibm3624RandomPin_PinValidationDataPadCharacter { get; set; }
public System.Int32? VisaPin_PinVerificationKeyIndex { get; set; }
public System.String VisaPinVerificationValue_EncryptedPinBlock { get; set; }
public System.Int32? VisaPinVerificationValue_PinVerificationKeyIndex { get; set; }
public System.String GenerationKeyIdentifier { get; set; }
public Amazon.PaymentCryptographyData.PinBlockFormatForPinData PinBlockFormat { get; set; }
public System.Int32? PinDataLength { get; set; }
public System.String PrimaryAccountNumber { get; set; }
public System.Func Select { get; set; } =
(response, cmdlet) => response;
}
}
}