/// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDataDomesticConsentResponse2" /> class.
 /// </summary>
 /// <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="cutOffDateTime">Specified cut-off date and time for the payment consent. 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="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="initiation">initiation (required).</param>
 /// <param name="authorisation">authorisation.</param>
 public OBWriteDataDomesticConsentResponse2(string consentId = default(string), DateTimeOffset creationDateTime = default(DateTimeOffset), OBExternalConsentStatus1Code status = default(OBExternalConsentStatus1Code), DateTimeOffset statusUpdateDateTime = default(DateTimeOffset), DateTimeOffset cutOffDateTime = default(DateTimeOffset), DateTimeOffset expectedExecutionDateTime = default(DateTimeOffset), DateTimeOffset expectedSettlementDateTime = default(DateTimeOffset), List <OBCharge2> charges = default(List <OBCharge2>), OBDomestic2 initiation = default(OBDomestic2), OBAuthorisation1 authorisation = default(OBAuthorisation1))
 {
     // to ensure "consentId" is required (not null)
     this.ConsentId            = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteDataDomesticConsentResponse2 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 OBWriteDataDomesticConsentResponse2 and cannot be null");
     this.CutOffDateTime             = cutOffDateTime;
     this.ExpectedExecutionDateTime  = expectedExecutionDateTime;
     this.ExpectedSettlementDateTime = expectedSettlementDateTime;
     this.Charges       = charges;
     this.Authorisation = authorisation;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDataDomesticStandingOrderConsentResponse3" /> class.
 /// </summary>
 /// <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="permission">permission (required).</param>
 /// <param name="cutOffDateTime">Specified cut-off date and time for the payment consent. 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="initiation">initiation (required).</param>
 /// <param name="authorisation">authorisation.</param>
 public OBWriteDataDomesticStandingOrderConsentResponse3(string consentId = default(string), DateTimeOffset creationDateTime = default(DateTimeOffset), OBExternalConsentStatus1Code status = default(OBExternalConsentStatus1Code), DateTimeOffset statusUpdateDateTime = default(DateTimeOffset), OBExternalPermissions2Code permission = default(OBExternalPermissions2Code), DateTimeOffset cutOffDateTime = default(DateTimeOffset), List <OBCharge2> charges = default(List <OBCharge2>), OBDomesticStandingOrder3 initiation = default(OBDomesticStandingOrder3), OBAuthorisation1 authorisation = default(OBAuthorisation1))
 {
     // to ensure "consentId" is required (not null)
     this.ConsentId            = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteDataDomesticStandingOrderConsentResponse3 and cannot be null");
     this.CreationDateTime     = creationDateTime;
     this.Status               = status;
     this.StatusUpdateDateTime = statusUpdateDateTime;
     this.Permission           = permission;
     // to ensure "initiation" is required (not null)
     this.Initiation     = initiation ?? throw new ArgumentNullException("initiation is a required property for OBWriteDataDomesticStandingOrderConsentResponse3 and cannot be null");
     this.CutOffDateTime = cutOffDateTime;
     this.Charges        = charges;
     this.Authorisation  = authorisation;
 }