/// <summary>
 /// Initializes a new instance of the <see cref="PaymentRequest" /> class.
 /// </summary>
 /// <param name="Capture">Capture.</param>
 /// <param name="AmountDetail">AmountDetail (required).</param>
 /// <param name="Solution">Solution.</param>
 /// <param name="PaymentInstrument">PaymentInstrument (required).</param>
 /// <param name="BillTo">BillTo.</param>
 /// <param name="ShipTo">ShipTo.</param>
 /// <param name="CustomerIp">CustomerIp.</param>
 /// <param name="Order">Order.</param>
 /// <param name="Tax">Tax.</param>
 /// <param name="Duty">Duty.</param>
 /// <param name="Shipping">Shipping.</param>
 /// <param name="LineItems">LineItems.</param>
 public PaymentRequest(bool?Capture = null, AmountDetail AmountDetail = null, Solution Solution = null, PaymentInstrument PaymentInstrument = null, BaseAddress BillTo = null, BaseAddress ShipTo = null, string CustomerIp = null, Order Order = null, ExtendedAmount Tax = null, ExtendedAmount Duty = null, ExtendedAmount Shipping = null, List <LineItem> LineItems = null)
 {
     // to ensure "AmountDetail" is required (not null)
     if (AmountDetail == null)
     {
         throw new InvalidDataException("AmountDetail is a required property for PaymentRequest and cannot be null");
     }
     else
     {
         this.AmountDetail = AmountDetail;
     }
     // to ensure "PaymentInstrument" is required (not null)
     if (PaymentInstrument == null)
     {
         throw new InvalidDataException("PaymentInstrument is a required property for PaymentRequest and cannot be null");
     }
     else
     {
         this.PaymentInstrument = PaymentInstrument;
     }
     this.Capture    = Capture;
     this.Solution   = Solution;
     this.BillTo     = BillTo;
     this.ShipTo     = ShipTo;
     this.CustomerIp = CustomerIp;
     this.Order      = Order;
     this.Tax        = Tax;
     this.Duty       = Duty;
     this.Shipping   = Shipping;
     this.LineItems  = LineItems;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CreditRequest" /> class.
 /// </summary>
 /// <param name="AmountDetail">AmountDetail (required).</param>
 /// <param name="PaymentInstrument">PaymentInstrument (required).</param>
 public CreditRequest(AmountDetail AmountDetail = null, PaymentInstrument PaymentInstrument = null)
 {
     // to ensure "AmountDetail" is required (not null)
     if (AmountDetail == null)
     {
         throw new InvalidDataException("AmountDetail is a required property for CreditRequest and cannot be null");
     }
     else
     {
         this.AmountDetail = AmountDetail;
     }
     // to ensure "PaymentInstrument" is required (not null)
     if (PaymentInstrument == null)
     {
         throw new InvalidDataException("PaymentInstrument is a required property for CreditRequest and cannot be null");
     }
     else
     {
         this.PaymentInstrument = PaymentInstrument;
     }
 }