/// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDomesticStandingOrderResponse4Data" /> class.
 /// </summary>
 /// <param name="domesticStandingOrderId">OB: Unique identification as assigned by the ASPSP to uniquely identify the domestic 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">Specifies the status of the payment order resource. (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">charges.</param>
 /// <param name="initiation">initiation (required).</param>
 /// <param name="multiAuthorisation">multiAuthorisation.</param>
 public OBWriteDomesticStandingOrderResponse4Data(string domesticStandingOrderId = default(string), string consentId = default(string), DateTimeOffset creationDateTime = default(DateTimeOffset), StatusEnum status = default(StatusEnum), DateTimeOffset statusUpdateDateTime = default(DateTimeOffset), List <OBWriteDomesticConsentResponse3DataCharges> charges = default(List <OBWriteDomesticConsentResponse3DataCharges>), OBWriteDomesticStandingOrder3DataInitiation initiation = default(OBWriteDomesticStandingOrder3DataInitiation), OBWriteDomesticResponse3DataMultiAuthorisation multiAuthorisation = default(OBWriteDomesticResponse3DataMultiAuthorisation))
 {
     // to ensure "domesticStandingOrderId" is required (not null)
     this.DomesticStandingOrderId = domesticStandingOrderId ?? throw new ArgumentNullException("domesticStandingOrderId is a required property for OBWriteDomesticStandingOrderResponse4Data and cannot be null");
     // to ensure "consentId" is required (not null)
     this.ConsentId            = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteDomesticStandingOrderResponse4Data 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 OBWriteDomesticStandingOrderResponse4Data and cannot be null");
     this.Charges            = charges;
     this.MultiAuthorisation = multiAuthorisation;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="OBWriteInternationalScheduledResponse3Data" /> 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">Specifies the status of the payment order resource. (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">charges.</param>
 /// <param name="exchangeRateInformation">exchangeRateInformation.</param>
 /// <param name="initiation">initiation (required).</param>
 /// <param name="multiAuthorisation">multiAuthorisation.</param>
 public OBWriteInternationalScheduledResponse3Data(string internationalScheduledPaymentId = default(string), string consentId = default(string), DateTimeOffset creationDateTime = default(DateTimeOffset), StatusEnum status = default(StatusEnum), DateTimeOffset statusUpdateDateTime = default(DateTimeOffset), DateTimeOffset expectedExecutionDateTime = default(DateTimeOffset), DateTimeOffset expectedSettlementDateTime = default(DateTimeOffset), List <OBWriteDomesticConsentResponse3DataCharges> charges = default(List <OBWriteDomesticConsentResponse3DataCharges>), OBWriteInternationalConsentResponse3DataExchangeRateInformation exchangeRateInformation = default(OBWriteInternationalConsentResponse3DataExchangeRateInformation), OBWriteInternationalScheduled2DataInitiation initiation = default(OBWriteInternationalScheduled2DataInitiation), OBWriteDomesticResponse3DataMultiAuthorisation multiAuthorisation = default(OBWriteDomesticResponse3DataMultiAuthorisation))
 {
     // to ensure "internationalScheduledPaymentId" is required (not null)
     this.InternationalScheduledPaymentId = internationalScheduledPaymentId ?? throw new ArgumentNullException("internationalScheduledPaymentId is a required property for OBWriteInternationalScheduledResponse3Data and cannot be null");
     // to ensure "consentId" is required (not null)
     this.ConsentId            = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteInternationalScheduledResponse3Data 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 OBWriteInternationalScheduledResponse3Data and cannot be null");
     this.ExpectedExecutionDateTime  = expectedExecutionDateTime;
     this.ExpectedSettlementDateTime = expectedSettlementDateTime;
     this.Charges = charges;
     this.ExchangeRateInformation = exchangeRateInformation;
     this.MultiAuthorisation      = multiAuthorisation;
 }