/// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDataFile2" /> class.
 /// </summary>
 /// <param name="consentId">OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource. (required).</param>
 /// <param name="initiation">initiation (required).</param>
 public OBWriteDataFile2(string consentId = default(string), OBFile2 initiation = default(OBFile2))
 {
     // to ensure "consentId" is required (not null)
     this.ConsentId = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteDataFile2 and cannot be null");
     // to ensure "initiation" is required (not null)
     this.Initiation = initiation ?? throw new ArgumentNullException("initiation is a required property for OBWriteDataFile2 and cannot be null");
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDataFileConsent2" /> class.
 /// </summary>
 /// <param name="initiation">initiation (required).</param>
 /// <param name="authorisation">authorisation.</param>
 public OBWriteDataFileConsent2(OBFile2 initiation = default(OBFile2), OBAuthorisation1 authorisation = default(OBAuthorisation1))
 {
     // to ensure "initiation" is required (not null)
     this.Initiation    = initiation ?? throw new ArgumentNullException("initiation is a required property for OBWriteDataFileConsent2 and cannot be null");
     this.Authorisation = authorisation;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="OBWriteDataFileConsentResponse2" /> 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 consent 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="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 OBWriteDataFileConsentResponse2(string consentId = default(string), DateTimeOffset creationDateTime = default(DateTimeOffset), OBExternalConsentStatus2Code status = default(OBExternalConsentStatus2Code), DateTimeOffset statusUpdateDateTime = default(DateTimeOffset), DateTimeOffset cutOffDateTime = default(DateTimeOffset), List <OBCharge2> charges = default(List <OBCharge2>), OBFile2 initiation = default(OBFile2), OBAuthorisation1 authorisation = default(OBAuthorisation1))
 {
     // to ensure "consentId" is required (not null)
     this.ConsentId            = consentId ?? throw new ArgumentNullException("consentId is a required property for OBWriteDataFileConsentResponse2 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 OBWriteDataFileConsentResponse2 and cannot be null");
     this.CutOffDateTime = cutOffDateTime;
     this.Charges        = charges;
     this.Authorisation  = authorisation;
 }