namespace IDB.API.Common
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type GenerateDocumentBatchResponse() =
///<summary>
///ID of the batch
///</summary>
[<ApiMember(Description="ID of the batch", IsRequired=true)>]
member val BatchID:Guid = new Guid() with get,set
///<summary>
///Document processed count
///</summary>
[<ApiMember(Description="Document processed count", IsRequired=true)>]
member val Processed:Int32 = new Int32() with get,set
///<summary>
///Track and Trace url
///</summary>
[<ApiMember(Description="Track and Trace url", IsRequired=true)>]
member val TrackAndTraceUrl:String = null with get,set
[<AllowNullLiteral>]
type UserReference() =
member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val LoginName:String = null with get,set
member val UserPrincipalName:String = null with get,set
member val FullName:String = null with get,set
member val EmailAddress:String = null with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
[<AllowNullLiteral>]
type DocumentgeneratorDocumentReference() =
member val ID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val Name:String = null with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
[<AllowNullLiteral>]
type RegistrationProfileReference() =
member val ID:Guid = new Guid() with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
[<AllowNullLiteral>]
type DocumentReference() =
member val ID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val Code:String = null with get,set
member val VersionCode:String = null with get,set
member val RootDocID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val InternalInvoiceCode:String = null with get,set
member val CompanyNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
member val DocumentTypeID:String = null with get,set
member val InvoiceType:Nullable<Int32> = new Nullable<Int32>() with get,set
member val RegProfCatID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val ExternalID:String = null with get,set
member val ExternNr:String = null with get,set
member val InternNummer:String = null with get,set
[<AllowNullLiteral>]
type MessageQueueReference() =
member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
[<AllowNullLiteral>]
type ConfigurationSource() =
///<summary>
///Document genereren op basis van een DocGenDocument.
///</summary>
member val DocumentgeneratorDocument:DocumentgeneratorDocumentReference = null with get,set
///<summary>
///Document genereren op basis van een RegistratieProfiel.
///</summary>
member val RegistrationProfile:RegistrationProfileReference = null with get,set
///<summary>
///Use existing document registration.
///</summary>
member val RegisteredDocument:DocumentReference = null with get,set
///<summary>
///Use draft document registration.
///</summary>
member val DraftDocumentRegistration:MessageQueueReference = null with get,set
member val DocumentgeneratorType:Type = null with get,set
///<summary>
///DocumentgeneratorType voor bijvoorbeeld Word of Email.
///</summary>
member val DocumentgeneratorTypeName:String = null with get,set
member val TemplateExtension:String = null with get,set
member val OutputExtension:String = null with get,set
type VersioningType =
| New = 0
| Change = 1
| Primary = 2
| Secondary = 3
[<AllowNullLiteral>]
type CompanyReference() =
member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Number:Nullable<Int32> = new Nullable<Int32>() with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val ExternalID:String = null with get,set
[<AllowNullLiteral>]
type RelationReference() =
member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val CreditorNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
member val DebtorNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
member val GlobalLocationNumber:String = null with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val ExternalID:String = null with get,set
[<AllowNullLiteral>]
type PersonReference() =
member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Number:Nullable<Int32> = new Nullable<Int32>() with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val ExternalID:String = null with get,set
[<AllowNullLiteral>]
type ProjectReference() =
member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Code:String = null with get,set
member val TypeExternalID:String = null with get,set
member val CompanyNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val ExternalID:String = null with get,set
[<AllowNullLiteral>]
type SubProject() =
member val Project:ProjectReference = null with get,set
[<AllowNullLiteral>]
type ContactPersonReference() =
member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
member val ExternalID:String = null with get,set
member val RelationID:Nullable<Int32> = new Nullable<Int32>() with get,set
member val PersonID:Nullable<Int32> = new Nullable<Int32>() with get,set
type SignerType =
| MainSigner = 0
| AdditionalSigner = 1
| ConfirmationDeclarant = 2
| AdditionalConfirmationDeclarant = 3
[<AllowNullLiteral>]
type Signer() =
member val User:UserReference = null with get,set
member val Person:PersonReference = null with get,set
member val Relation:RelationReference = null with get,set
member val ContactPerson:ContactPersonReference = null with get,set
member val RegisteredDocument:DocumentReference = null with get,set
member val Type:SignerType = new SignerType() with get,set
member val ClosingSentence:String = null with get,set
member val Name:String = null with get,set
member val Subsidiary:String = null with get,set
member val Function:String = null with get,set
member val Department:String = null with get,set
member val PhoneNumber:String = null with get,set
member val FaxNumber:String = null with get,set
member val MobileNumber:String = null with get,set
member val Email:String = null with get,set
member val CustomText:String = null with get,set
member val Signature:ResizeArray<String> = new ResizeArray<String>() with get,set
member val SignatureVisible:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val Visible:Nullable<Boolean> = new Nullable<Boolean>() with get,set
[<AllowNullLiteral>]
type Field() =
member val Name:String = null with get,set
member val OldValue:String = null with get,set
member val Value:String = null with get,set
member val Title:String = null with get,set
[<AllowNullLiteral>]
type AttachmentData() =
member val ContentType:String = null with get,set
///<summary>
///Data base64-encoded zonder padding.
///</summary>
member val Data:String = null with get,set
[<AllowNullLiteral>]
type Attachment() =
member val Name:String = null with get,set
member val AttachmentData:AttachmentData = null with get,set
[<AllowNullLiteral>]
type RegistrationMetaData() =
///<summary>
///Hoe moet het versiebeheer worden toegepast?
///</summary>
[<ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")>]
member val Versioning:Nullable<VersioningType> = new Nullable<VersioningType>() with get,set
///<summary>
///Previous document will be used for registration of a new version.
///</summary>
[<ApiMember(Description="Previous document will be used for registration of a new version.")>]
member val PreviousDocument:DocumentReference = null with get,set
///<summary>
///Company
///</summary>
[<ApiMember(Description="Company")>]
member val Company:CompanyReference = null with get,set
///<summary>
///Relation
///</summary>
[<ApiMember(Description="Relation")>]
member val Relation:RelationReference = null with get,set
///<summary>
///Person
///</summary>
[<ApiMember(Description="Person")>]
member val Person:PersonReference = null with get,set
///<summary>
///Project
///</summary>
[<ApiMember(Description="Project")>]
member val Project:ProjectReference = null with get,set
///<summary>
///Sub projects
///</summary>
[<ApiMember(AllowMultiple=true, Description="Sub projects")>]
member val SubProjects:ResizeArray<SubProject> = new ResizeArray<SubProject>() with get,set
///<summary>
///Signers
///</summary>
[<ApiMember(AllowMultiple=true, Description="Signers")>]
member val Signers:ResizeArray<Signer> = new ResizeArray<Signer>() with get,set
///<summary>
///Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.
///</summary>
[<ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.")>]
member val Fields:ResizeArray<Field> = new ResizeArray<Field>() with get,set
///<summary>
///Attachments die aan de documentregistratie gekoppeld moet worden.
///</summary>
[<ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")>]
member val Attachments:ResizeArray<Attachment> = new ResizeArray<Attachment>() with get,set
[<AllowNullLiteral>]
type CommonEntityBaseReference() =
member val ID:String = null with get,set
member val ExternalID:String = null with get,set
member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
type Direction =
| Left2Right = 0
| UpLeft2DownRight = 45
| Up2Down = 90
| UpRight2DownLeft = 135
| Right2Left = 180
| DownRight2UpLeft = 225
| Down2Up = 270
| DownLeft2UpRight = 315
[<AllowNullLiteral>]
type Watermark() =
member val Text:String = null with get,set
member val FontFamilyText:String = null with get,set
member val FontFamily:FontFamily = null with get,set
member val Direction:Nullable<Direction> = new Nullable<Direction>() with get,set
member val StrokeColorText:String = null with get,set
member val StrokeColor:Color = new Color() with get,set
member val FillColorText:String = null with get,set
member val FillColor:Color = new Color() with get,set
[<AllowNullLiteral>]
type BatchDocument() =
///<summary>
///ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.
///</summary>
[<ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)>]
member val ConfigurationSource:ConfigurationSource = null with get,set
///<summary>
///Set references to bind with Registration profile
///</summary>
[<ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)>]
member val RegistrationMetaData:RegistrationMetaData = null with get,set
///<summary>
///Entity instance used as data source parent, if not exists default is Document registration instance.
///</summary>
[<ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.")>]
member val DataSourceEntity:CommonEntityBaseReference = null with get,set
///<summary>
///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.
///</summary>
[<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.")>]
member val CustomData:String = null with get,set
///<summary>
///Insert a watermark into the document.
///</summary>
[<ApiMember(Description="Insert a watermark into the document.")>]
member val Watermark:Watermark = null with get,set
///<summary>
///Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.
///</summary>
[<ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")>]
member val OutputType:String = null with get,set
///<summary>
///Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.
///</summary>
[<Api(Description="Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.")>]
[<AllowNullLiteral>]
type GenerateDocumentBatch() =
///<summary>
///Owner of the badge (DigiOffice user)
///</summary>
[<ApiMember(Description="Owner of the badge (DigiOffice user)")>]
member val User:UserReference = null with get,set
///<summary>
///Description of the badge
///</summary>
[<ApiMember(Description="Description of the badge", IsRequired=true)>]
member val Description:String = null with get,set
///<summary>
///Corporate identity document(s) to be generate
///</summary>
[<ApiMember(AllowMultiple=true, Description="Corporate identity document(s) to be generate", IsRequired=true)>]
member val Documents:ResizeArray<BatchDocument> = new ResizeArray<BatchDocument>() with get,set
///<summary>
///Generated document is not registered in DigiOffice DMS.
///</summary>
[<ApiMember(Description="Generated document is not registered in DigiOffice DMS.")>]
member val DontRegister:Boolean = new Boolean() with get,set
///<summary>
///Send the generated e-mail via the e-mail queue.
///</summary>
[<ApiMember(Description="Send the generated e-mail via the e-mail queue.")>]
member val SendMail:Boolean = new Boolean() with get,set
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/GenerateDocumentBatch 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
},
Description: String,
Documents:
[
{
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
}
],
DontRegister: False,
SendMail: False
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { Processed: 0, TrackAndTraceUrl: String }