/// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDataInternationalScheduledResponse2" /> class.
 /// </summary>
 /// <param name="internationalScheduledPaymentId">OB: Unique identification as assigned by the ASPSP to uniquely identify the international scheduled payment resource. (required).</param>
 /// <param name="consentId">OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource. (required).</param>
 /// <param name="creationDateTime">Date and time at which the message was created. All dates in the JSON payloads are represented in ISO 8601 date-time format.  All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 (required).</param>
 /// <param name="status">status (required).</param>
 /// <param name="statusUpdateDateTime">Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format.  All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 (required).</param>
 /// <param name="expectedExecutionDateTime">Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format.  All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00.</param>
 /// <param name="expectedSettlementDateTime">Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format.  All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00.</param>
 /// <param name="charges">Set of elements used to provide details of a charge for the payment initiation..</param>
 /// <param name="exchangeRateInformation">exchangeRateInformation.</param>
 /// <param name="initiation">initiation (required).</param>
 /// <param name="multiAuthorisation">multiAuthorisation.</param>
 public OBWriteDataInternationalScheduledResponse2(string internationalScheduledPaymentId = default(string), string consentId = default(string), DateTimeOffset creationDateTime = default(DateTimeOffset), OBExternalStatus1Code status = default(OBExternalStatus1Code), DateTimeOffset statusUpdateDateTime = default(DateTimeOffset), DateTimeOffset expectedExecutionDateTime = default(DateTimeOffset), DateTimeOffset expectedSettlementDateTime = default(DateTimeOffset), List <OBCharge2> charges = default(List <OBCharge2>), OBExchangeRate2 exchangeRateInformation = default(OBExchangeRate2), OBInternationalScheduled2 initiation = default(OBInternationalScheduled2), OBMultiAuthorisation1 multiAuthorisation = default(OBMultiAuthorisation1))
 {
     // to ensure "internationalScheduledPaymentId" is required (not null)
     this.InternationalScheduledPaymentId = internationalScheduledPaymentId ?? throw new ArgumentNullException("internationalScheduledPaymentId is a required property for OBWriteDataInternationalScheduledResponse2 and cannot be null");
     // to ensure "consentId" is required (not null)
     this.ConsentId            = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteDataInternationalScheduledResponse2 and cannot be null");
     this.CreationDateTime     = creationDateTime;
     this.Status               = status;
     this.StatusUpdateDateTime = statusUpdateDateTime;
     // to ensure "initiation" is required (not null)
     this.Initiation = initiation ?? throw new ArgumentNullException("initiation is a required property for OBWriteDataInternationalScheduledResponse2 and cannot be null");
     this.ExpectedExecutionDateTime  = expectedExecutionDateTime;
     this.ExpectedSettlementDateTime = expectedSettlementDateTime;
     this.Charges = charges;
     this.ExchangeRateInformation = exchangeRateInformation;
     this.MultiAuthorisation      = multiAuthorisation;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDataInternationalStandingOrderResponse3" /> class.
 /// </summary>
 /// <param name="internationalStandingOrderId">OB: Unique identification as assigned by the ASPSP to uniquely identify the international standing order resource. (required).</param>
 /// <param name="consentId">OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource. (required).</param>
 /// <param name="creationDateTime">Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format.  All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 (required).</param>
 /// <param name="status">status (required).</param>
 /// <param name="statusUpdateDateTime">Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format.  All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 (required).</param>
 /// <param name="charges">Set of elements used to provide details of a charge for the payment initiation..</param>
 /// <param name="initiation">initiation (required).</param>
 /// <param name="multiAuthorisation">multiAuthorisation.</param>
 public OBWriteDataInternationalStandingOrderResponse3(string internationalStandingOrderId = default(string), string consentId = default(string), DateTimeOffset creationDateTime = default(DateTimeOffset), OBExternalStatus1Code status = default(OBExternalStatus1Code), DateTimeOffset statusUpdateDateTime = default(DateTimeOffset), List <OBCharge2> charges = default(List <OBCharge2>), OBInternationalStandingOrder3 initiation = default(OBInternationalStandingOrder3), OBMultiAuthorisation1 multiAuthorisation = default(OBMultiAuthorisation1))
 {
     // to ensure "internationalStandingOrderId" is required (not null)
     this.InternationalStandingOrderId = internationalStandingOrderId ?? throw new ArgumentNullException("internationalStandingOrderId is a required property for OBWriteDataInternationalStandingOrderResponse3 and cannot be null");
     // to ensure "consentId" is required (not null)
     this.ConsentId            = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteDataInternationalStandingOrderResponse3 and cannot be null");
     this.CreationDateTime     = creationDateTime;
     this.Status               = status;
     this.StatusUpdateDateTime = statusUpdateDateTime;
     // to ensure "initiation" is required (not null)
     this.Initiation         = initiation ?? throw new ArgumentNullException("initiation is a required property for OBWriteDataInternationalStandingOrderResponse3 and cannot be null");
     this.Charges            = charges;
     this.MultiAuthorisation = multiAuthorisation;
 }