import java.math.*
import java.util.*
import net.servicestack.client.*
/**
* Generate custom Document (Don't use from inside VSTO's)
*/
@Api(Description="Generate custom Document (Don't use from inside VSTO's)")
open class GenerateDocument : IGenerateDocument
{
/**
* DigiOffice user
*/
@ApiMember(Description="DigiOffice user")
var User:UserReference? = null
/**
* Send the generated e-mail via the e-mail queue.
*/
@ApiMember(Description="Send the generated e-mail via the e-mail queue.")
var SendMail:Boolean? = null
/**
* ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.
*/
@ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)
var ConfigurationSource:ConfigurationSource? = null
/**
* Set references to bind with Registration profile
*/
@ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)
var RegistrationMetaData:RegistrationMetaData? = null
/**
* Entity instance used as data source parent, if not exists default is Document registration instance.
*/
@ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.")
var DataSourceEntity:CommonEntityBaseReference? = null
/**
* Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.
*/
@ApiMember(Description="Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.")
var CustomData:String? = null
/**
* Insert a watermark into the document.
*/
@ApiMember(Description="Insert a watermark into the document.")
var Watermark:Watermark? = null
/**
* Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.
*/
@ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")
var OutputType:String? = null
/**
* Should update the document file.
*/
@ApiMember(Description="Should update the document file.")
var ShouldUpdateDocumentFile:Boolean? = null
}
open class UserReference : IEntityReference
{
var ID:Int? = null
var LoginName:String? = null
var UserPrincipalName:String? = null
var FullName:String? = null
var EmailAddress:String? = null
var GlobalID:UUID? = null
}
open class ConfigurationSource
{
/**
* Document genereren op basis van een DocGenDocument.
*/
var DocumentgeneratorDocument:DocumentgeneratorDocumentReference? = null
/**
* Document genereren op basis van een RegistratieProfiel.
*/
var RegistrationProfile:RegistrationProfileReference? = null
/**
* Use existing document registration.
*/
var RegisteredDocument:DocumentReference? = null
/**
* Use draft document registration.
*/
var DraftDocumentRegistration:MessageQueueReference? = null
var DocumentgeneratorType:Class? = null
/**
* DocumentgeneratorType voor bijvoorbeeld Word of Email.
*/
var DocumentgeneratorTypeName:String? = null
var TemplateExtension:String? = null
var OutputExtension:String? = null
}
open class DocumentgeneratorDocumentReference : IEntityReference
{
var ID:UUID? = null
var Name:String? = null
var GlobalID:UUID? = null
}
open class RegistrationProfileReference : IEntityReference
{
var ID:UUID? = null
var GlobalID:UUID? = null
}
open class DocumentReference : IEntityReference
{
var ID:UUID? = null
var Code:String? = null
var VersionCode:String? = null
var RootDocID:UUID? = null
var InternalInvoiceCode:String? = null
var CompanyNumber:Int? = null
var DocumentTypeID:String? = null
var InvoiceType:Int? = null
var RegProfCatID:Int? = null
var GlobalID:UUID? = null
var ExternalID:String? = null
var ExternNr:String? = null
var InternNummer:String? = null
}
open class MessageQueueReference : IEntityReference
{
var ID:Int? = null
var GlobalID:UUID? = null
}
open class RegistrationMetaData
{
/**
* Hoe moet het versiebeheer worden toegepast?
*/
@ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")
var Versioning:VersioningType? = null
/**
* Previous document will be used for registration of a new version.
*/
@ApiMember(Description="Previous document will be used for registration of a new version.")
var PreviousDocument:DocumentReference? = null
/**
* Company
*/
@ApiMember(Description="Company")
var Company:CompanyReference? = null
/**
* Relation
*/
@ApiMember(Description="Relation")
var Relation:RelationReference? = null
/**
* Person
*/
@ApiMember(Description="Person")
var Person:PersonReference? = null
/**
* Project
*/
@ApiMember(Description="Project")
var Project:ProjectReference? = null
/**
* Sub projects
*/
@ApiMember(AllowMultiple=true, Description="Sub projects")
var SubProjects:ArrayList<SubProject> = ArrayList<SubProject>()
/**
* Signers
*/
@ApiMember(AllowMultiple=true, Description="Signers")
var Signers:ArrayList<Signer> = ArrayList<Signer>()
/**
* Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.
*/
@ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.")
var Fields:ArrayList<Field> = ArrayList<Field>()
/**
* Attachments die aan de documentregistratie gekoppeld moet worden.
*/
@ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")
var Attachments:ArrayList<Attachment> = ArrayList<Attachment>()
}
enum class VersioningType
{
New,
Change,
Primary,
Secondary,
}
open class CompanyReference : IEntityReference
{
var ID:Int? = null
var Number:Int? = null
var GlobalID:UUID? = null
var ExternalID:String? = null
}
open class RelationReference : IEntityReference
{
var ID:Int? = null
var CreditorNumber:Int? = null
var DebtorNumber:Int? = null
var GlobalLocationNumber:String? = null
var GlobalID:UUID? = null
var ExternalID:String? = null
}
open class PersonReference : IEntityReference
{
var ID:Int? = null
var Number:Int? = null
var GlobalID:UUID? = null
var ExternalID:String? = null
}
open class ProjectReference : IEntityReference
{
var ID:Int? = null
var Code:String? = null
var TypeExternalID:String? = null
var CompanyNumber:Int? = null
var GlobalID:UUID? = null
var ExternalID:String? = null
}
open class SubProject
{
var Project:ProjectReference? = null
}
open class Signer
{
var User:UserReference? = null
var Person:PersonReference? = null
var Relation:RelationReference? = null
var ContactPerson:ContactPersonReference? = null
var RegisteredDocument:DocumentReference? = null
var Type:SignerType? = null
var ClosingSentence:String? = null
var Name:String? = null
var Subsidiary:String? = null
var Function:String? = null
var Department:String? = null
var PhoneNumber:String? = null
var FaxNumber:String? = null
var MobileNumber:String? = null
var Email:String? = null
var CustomText:String? = null
var Signature:ArrayList<String> = ArrayList<String>()
var SignatureVisible:Boolean? = null
var Visible:Boolean? = null
}
open class ContactPersonReference : IEntityReference
{
var ID:Int? = null
var GlobalID:UUID? = null
var ExternalID:String? = null
var RelationID:Int? = null
var PersonID:Int? = null
}
enum class SignerType
{
MainSigner,
AdditionalSigner,
ConfirmationDeclarant,
AdditionalConfirmationDeclarant,
}
open class Field
{
var Name:String? = null
var OldValue:String? = null
var Value:String? = null
var Title:String? = null
}
open class Attachment
{
var Name:String? = null
var AttachmentData:AttachmentData? = null
}
open class AttachmentData
{
var ContentType:String? = null
/**
* Data base64-encoded zonder padding.
*/
var Data:String? = null
}
open class CommonEntityBaseReference : IEntityReference
{
var ID:String? = null
var ExternalID:String? = null
var GlobalID:UUID? = null
}
open class Watermark
{
var Text:String? = null
var FontFamilyText:String? = null
var FontFamily:FontFamily? = null
var Direction:Direction? = null
var StrokeColorText:String? = null
var StrokeColor:Color? = null
var FillColorText:String? = null
var FillColor:Color? = null
}
enum class Direction(val value:Int)
{
Left2Right(0),
UpLeft2DownRight(45),
Up2Down(90),
UpRight2DownLeft(135),
Right2Left(180),
DownRight2UpLeft(225),
Down2Up(270),
DownLeft2UpRight(315),
}
open class GenerateDocumentResponse : IGenerateDocumentResponse
{
/**
* Contains the registration ID of the generated (corporate identity) document
*/
@ApiMember(Description="Contains the registration ID of the generated (corporate identity) document", IsRequired=true)
var DocumentID:UUID? = null
}
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/GenerateDocument HTTP/1.1
Host: digiofficeapigateway.deltares.nl
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
User:
{
ID: 0,
LoginName: String,
UserPrincipalName: String,
FullName: String,
EmailAddress: String,
GlobalID: 00000000-0000-0000-0000-000000000000
},
SendMail: False,
ConfigurationSource:
{
DocumentgeneratorDocument:
{
ID: 00000000-0000-0000-0000-000000000000,
Name: String
},
RegistrationProfile: {},
RegisteredDocument:
{
ID: 00000000-0000-0000-0000-000000000000,
Code: String,
VersionCode: String,
RootDocID: 00000000-0000-0000-0000-000000000000,
InternalInvoiceCode: String,
CompanyNumber: 0,
DocumentTypeID: String,
InvoiceType: 0,
RegProfCatID: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
DraftDocumentRegistration:
{
ID: 0
},
TemplateExtension: String,
OutputExtension: String
},
RegistrationMetaData:
{
Versioning: New,
PreviousDocument:
{
ID: 00000000-0000-0000-0000-000000000000,
Code: String,
VersionCode: String,
RootDocID: 00000000-0000-0000-0000-000000000000,
InternalInvoiceCode: String,
CompanyNumber: 0,
DocumentTypeID: String,
InvoiceType: 0,
RegProfCatID: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
Company:
{
ID: 0,
Number: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
Relation:
{
ID: 0,
CreditorNumber: 0,
DebtorNumber: 0,
GlobalLocationNumber: String,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
Person:
{
ID: 0,
Number: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
Project:
{
ID: 0,
Code: String,
TypeExternalID: String,
CompanyNumber: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
SubProjects:
[
{
Project:
{
ID: 0,
Code: String,
TypeExternalID: String,
CompanyNumber: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
}
}
],
Signers:
[
{
User:
{
ID: 0,
LoginName: String,
UserPrincipalName: String,
FullName: String,
EmailAddress: String,
GlobalID: 00000000-0000-0000-0000-000000000000
},
Person:
{
ID: 0,
Number: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
Relation:
{
ID: 0,
CreditorNumber: 0,
DebtorNumber: 0,
GlobalLocationNumber: String,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
ContactPerson:
{
ID: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String,
RelationID: 0,
PersonID: 0
},
RegisteredDocument:
{
ID: 00000000-0000-0000-0000-000000000000,
Code: String,
VersionCode: String,
RootDocID: 00000000-0000-0000-0000-000000000000,
InternalInvoiceCode: String,
CompanyNumber: 0,
DocumentTypeID: String,
InvoiceType: 0,
RegProfCatID: 0,
GlobalID: 00000000-0000-0000-0000-000000000000,
ExternalID: String
},
Type: MainSigner,
ClosingSentence: String,
Name: String,
Subsidiary: String,
Function: String,
Department: String,
PhoneNumber: String,
FaxNumber: String,
MobileNumber: String,
Email: String,
CustomText: String,
Signature:
[
String
],
SignatureVisible: False,
Visible: False
}
],
Fields:
[
{
Name: String,
OldValue: String,
Value: String,
Title: String = String -> String
}
],
Attachments:
[
{
Name: String,
AttachmentData:
{
ContentType: String,
Data: String
}
}
]
},
DataSourceEntity:
{
ID: String,
ExternalID: String,
GlobalID: 00000000-0000-0000-0000-000000000000
},
CustomData: String,
Watermark:
{
Text: String,
Direction: Left2Right
},
OutputType: String,
ShouldUpdateDocumentFile: False
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { }