import Foundation
import ServiceStack
public class UpdateDocumentRegistration : Codable
{
    public var documentID:String
    public var values:[RegistrationValue] = []
    public var processes:[Process] = []
    public var generateOoxml:Bool
    required public init(){}
}
public class RegistrationValue : Codable
{
    public var key:String
    public var value:String
    public var shadowValue:String
    required public init(){}
}
public class Process : Codable
{
    public var id:Int
    public var title:String
    public var Description:String
    public var note:String
    public var coordinator:String
    public var urgent:Bool
    public var transitions:[Transition] = []
    required public init(){}
}
public class Transition : Codable
{
    public var id:String
    public var reason:String
    public var delayDate:Date?
    public var delayReason:String
    public var userIDs:[Int] = []
    public var groupIDs:[Int] = []
    required public init(){}
}
public class RegisterDocumentResponse : Codable
{
    public var isSucces:Bool
    public var documentId:String
    public var errorMessages:[String] = []
    public var ooxml:String
    /**
    * Is it a corporate identity document?
    */
    // @ApiMember(Description="Is it a corporate identity document?", IsRequired=true)
    public var isCorporateIdentity:Bool
    public var documentVariables:[String:String] = [:]
    required public init(){}
}
Swift UpdateDocumentRegistration DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/UpdateDocumentRegistration HTTP/1.1 
Host: doapigw.baasbv.nl 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
	Values: 
	[
		{
			Value: String,
			ShadowValue: String
		}
	],
	Processes: 
	[
		{
			ID: 0,
			Title: String,
			Description: String,
			Note: String,
			Coordinator: String,
			Urgent: False,
			Transitions: 
			[
				{
					Reason: String,
					DelayDate: 0001-01-01,
					DelayReason: String,
					UserIDs: 
					[
						0
					],
					GroupIDs: 
					[
						0
					]
				}
			]
		}
	],
	GenerateOoxml: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
	IsSucces: False,
	ErrorMessages: 
	[
		String
	],
	Ooxml: String,
	IsCorporateIdentity: False
}