<?php namespace dtos;
use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};
class GenerateDocumentResponse implements IGenerateDocumentResponse, JsonSerializable
{
public function __construct(
/** @description 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 string */
public string $DocumentID=''
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['DocumentID'])) $this->DocumentID = $o['DocumentID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->DocumentID)) $o['DocumentID'] = $this->DocumentID;
return empty($o) ? new class(){} : $o;
}
}
class UserReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ID=null,
/** @var string|null */
public ?string $LoginName=null,
/** @var string|null */
public ?string $UserPrincipalName=null,
/** @var string|null */
public ?string $FullName=null,
/** @var string|null */
public ?string $EmailAddress=null,
/** @var string|null */
public ?string $GlobalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['LoginName'])) $this->LoginName = $o['LoginName'];
if (isset($o['UserPrincipalName'])) $this->UserPrincipalName = $o['UserPrincipalName'];
if (isset($o['FullName'])) $this->FullName = $o['FullName'];
if (isset($o['EmailAddress'])) $this->EmailAddress = $o['EmailAddress'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->LoginName)) $o['LoginName'] = $this->LoginName;
if (isset($this->UserPrincipalName)) $o['UserPrincipalName'] = $this->UserPrincipalName;
if (isset($this->FullName)) $o['FullName'] = $this->FullName;
if (isset($this->EmailAddress)) $o['EmailAddress'] = $this->EmailAddress;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
return empty($o) ? new class(){} : $o;
}
}
class DocumentgeneratorDocumentReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $ID=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $GlobalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
return empty($o) ? new class(){} : $o;
}
}
class RegistrationProfileReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var string */
public string $ID='',
/** @var string|null */
public ?string $GlobalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
return empty($o) ? new class(){} : $o;
}
}
class DocumentReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $ID=null,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $VersionCode=null,
/** @var string|null */
public ?string $RootDocID=null,
/** @var string|null */
public ?string $InternalInvoiceCode=null,
/** @var int|null */
public ?int $CompanyNumber=null,
/** @var string|null */
public ?string $DocumentTypeID=null,
/** @var int|null */
public ?int $InvoiceType=null,
/** @var int|null */
public ?int $RegProfCatID=null,
/** @var string|null */
public ?string $GlobalID=null,
/** @var string|null */
public ?string $ExternalID=null,
/** @var string|null */
public ?string $ExternNr=null,
/** @var string|null */
public ?string $ExternVersieNr=null,
/** @var string|null */
public ?string $InternNummer=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['VersionCode'])) $this->VersionCode = $o['VersionCode'];
if (isset($o['RootDocID'])) $this->RootDocID = $o['RootDocID'];
if (isset($o['InternalInvoiceCode'])) $this->InternalInvoiceCode = $o['InternalInvoiceCode'];
if (isset($o['CompanyNumber'])) $this->CompanyNumber = $o['CompanyNumber'];
if (isset($o['DocumentTypeID'])) $this->DocumentTypeID = $o['DocumentTypeID'];
if (isset($o['InvoiceType'])) $this->InvoiceType = $o['InvoiceType'];
if (isset($o['RegProfCatID'])) $this->RegProfCatID = $o['RegProfCatID'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
if (isset($o['ExternalID'])) $this->ExternalID = $o['ExternalID'];
if (isset($o['ExternNr'])) $this->ExternNr = $o['ExternNr'];
if (isset($o['ExternVersieNr'])) $this->ExternVersieNr = $o['ExternVersieNr'];
if (isset($o['InternNummer'])) $this->InternNummer = $o['InternNummer'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->VersionCode)) $o['VersionCode'] = $this->VersionCode;
if (isset($this->RootDocID)) $o['RootDocID'] = $this->RootDocID;
if (isset($this->InternalInvoiceCode)) $o['InternalInvoiceCode'] = $this->InternalInvoiceCode;
if (isset($this->CompanyNumber)) $o['CompanyNumber'] = $this->CompanyNumber;
if (isset($this->DocumentTypeID)) $o['DocumentTypeID'] = $this->DocumentTypeID;
if (isset($this->InvoiceType)) $o['InvoiceType'] = $this->InvoiceType;
if (isset($this->RegProfCatID)) $o['RegProfCatID'] = $this->RegProfCatID;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
if (isset($this->ExternalID)) $o['ExternalID'] = $this->ExternalID;
if (isset($this->ExternNr)) $o['ExternNr'] = $this->ExternNr;
if (isset($this->ExternVersieNr)) $o['ExternVersieNr'] = $this->ExternVersieNr;
if (isset($this->InternNummer)) $o['InternNummer'] = $this->InternNummer;
return empty($o) ? new class(){} : $o;
}
}
enum DocInfoAction : string
{
case Create = 'Create';
case Register = 'Register';
}
enum DocInfoMode : string
{
case New = 'New';
case Change = 'Change';
case NewVersionPrimary = 'NewVersionPrimary';
case NewVersionSecondary = 'NewVersionSecondary';
case NewFromExistingDocument = 'NewFromExistingDocument';
}
enum DocInfoSilentMode : string
{
case Off = 'Off';
case AllowUserInteraction = 'AllowUserInteraction';
case DoNotAllowUserInteraction = 'DoNotAllowUserInteraction';
}
class DocumentInfo implements JsonSerializable
{
public function __construct(
/** @var DocInfoAction|null */
public ?DocInfoAction $Action=null,
/** @var DocInfoMode|null */
public ?DocInfoMode $Mode=null,
/** @var string|null */
public ?string $Version=null,
/** @var DocInfoSilentMode|null */
public ?DocInfoSilentMode $SilentMode=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Action'])) $this->Action = JsonConverters::from('DocInfoAction', $o['Action']);
if (isset($o['Mode'])) $this->Mode = JsonConverters::from('DocInfoMode', $o['Mode']);
if (isset($o['Version'])) $this->Version = $o['Version'];
if (isset($o['SilentMode'])) $this->SilentMode = JsonConverters::from('DocInfoSilentMode', $o['SilentMode']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Action)) $o['Action'] = JsonConverters::to('DocInfoAction', $this->Action);
if (isset($this->Mode)) $o['Mode'] = JsonConverters::to('DocInfoMode', $this->Mode);
if (isset($this->Version)) $o['Version'] = $this->Version;
if (isset($this->SilentMode)) $o['SilentMode'] = JsonConverters::to('DocInfoSilentMode', $this->SilentMode);
return empty($o) ? new class(){} : $o;
}
}
class MessageQueueReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ID=null,
/** @var string|null */
public ?string $GlobalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
return empty($o) ? new class(){} : $o;
}
}
class ConfigurationSource implements JsonSerializable
{
public function __construct(
/** @description Document genereren op basis van een DocGenDocument. */
/** @var DocumentgeneratorDocumentReference|null */
public ?DocumentgeneratorDocumentReference $DocumentgeneratorDocument=null,
/** @description Document genereren op basis van een RegistratieProfiel. */
/** @var RegistrationProfileReference|null */
public ?RegistrationProfileReference $RegistrationProfile=null,
/** @description Use existing document registration. */
/** @var DocumentReference|null */
public ?DocumentReference $RegisteredDocument=null,
/** @description Use documentInfo. */
/** @var DocumentInfo|null */
public ?DocumentInfo $UnRegisteredDocument=null,
/** @description Use draft document registration. */
/** @var MessageQueueReference|null */
public ?MessageQueueReference $DraftDocumentRegistration=null,
/** @var string|null */
public ?string $DocumentgeneratorType=null,
/** @description DocumentgeneratorType voor bijvoorbeeld Word of Email. */
/** @var string|null */
public ?string $DocumentgeneratorTypeName=null,
/** @var string|null */
public ?string $TemplateExtension=null,
/** @var string|null */
public ?string $OutputExtension=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['DocumentgeneratorDocument'])) $this->DocumentgeneratorDocument = JsonConverters::from('DocumentgeneratorDocumentReference', $o['DocumentgeneratorDocument']);
if (isset($o['RegistrationProfile'])) $this->RegistrationProfile = JsonConverters::from('RegistrationProfileReference', $o['RegistrationProfile']);
if (isset($o['RegisteredDocument'])) $this->RegisteredDocument = JsonConverters::from('DocumentReference', $o['RegisteredDocument']);
if (isset($o['UnRegisteredDocument'])) $this->UnRegisteredDocument = JsonConverters::from('DocumentInfo', $o['UnRegisteredDocument']);
if (isset($o['DraftDocumentRegistration'])) $this->DraftDocumentRegistration = JsonConverters::from('MessageQueueReference', $o['DraftDocumentRegistration']);
if (isset($o['DocumentgeneratorType'])) $this->DocumentgeneratorType = JsonConverters::from('string', $o['DocumentgeneratorType']);
if (isset($o['DocumentgeneratorTypeName'])) $this->DocumentgeneratorTypeName = $o['DocumentgeneratorTypeName'];
if (isset($o['TemplateExtension'])) $this->TemplateExtension = $o['TemplateExtension'];
if (isset($o['OutputExtension'])) $this->OutputExtension = $o['OutputExtension'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->DocumentgeneratorDocument)) $o['DocumentgeneratorDocument'] = JsonConverters::to('DocumentgeneratorDocumentReference', $this->DocumentgeneratorDocument);
if (isset($this->RegistrationProfile)) $o['RegistrationProfile'] = JsonConverters::to('RegistrationProfileReference', $this->RegistrationProfile);
if (isset($this->RegisteredDocument)) $o['RegisteredDocument'] = JsonConverters::to('DocumentReference', $this->RegisteredDocument);
if (isset($this->UnRegisteredDocument)) $o['UnRegisteredDocument'] = JsonConverters::to('DocumentInfo', $this->UnRegisteredDocument);
if (isset($this->DraftDocumentRegistration)) $o['DraftDocumentRegistration'] = JsonConverters::to('MessageQueueReference', $this->DraftDocumentRegistration);
if (isset($this->DocumentgeneratorType)) $o['DocumentgeneratorType'] = JsonConverters::to('string', $this->DocumentgeneratorType);
if (isset($this->DocumentgeneratorTypeName)) $o['DocumentgeneratorTypeName'] = $this->DocumentgeneratorTypeName;
if (isset($this->TemplateExtension)) $o['TemplateExtension'] = $this->TemplateExtension;
if (isset($this->OutputExtension)) $o['OutputExtension'] = $this->OutputExtension;
return empty($o) ? new class(){} : $o;
}
}
enum VersioningType : string
{
case New = 'New';
case Change = 'Change';
case Primary = 'Primary';
case Secondary = 'Secondary';
}
class CompanyReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ID=null,
/** @var int|null */
public ?int $Number=null,
/** @var string|null */
public ?string $GlobalID=null,
/** @var string|null */
public ?string $ExternalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['Number'])) $this->Number = $o['Number'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
if (isset($o['ExternalID'])) $this->ExternalID = $o['ExternalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->Number)) $o['Number'] = $this->Number;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
if (isset($this->ExternalID)) $o['ExternalID'] = $this->ExternalID;
return empty($o) ? new class(){} : $o;
}
}
class RelationReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ID=null,
/** @var int|null */
public ?int $CreditorNumber=null,
/** @var int|null */
public ?int $DebtorNumber=null,
/** @var string|null */
public ?string $GlobalLocationNumber=null,
/** @var string|null */
public ?string $GlobalID=null,
/** @var string|null */
public ?string $ExternalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['CreditorNumber'])) $this->CreditorNumber = $o['CreditorNumber'];
if (isset($o['DebtorNumber'])) $this->DebtorNumber = $o['DebtorNumber'];
if (isset($o['GlobalLocationNumber'])) $this->GlobalLocationNumber = $o['GlobalLocationNumber'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
if (isset($o['ExternalID'])) $this->ExternalID = $o['ExternalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->CreditorNumber)) $o['CreditorNumber'] = $this->CreditorNumber;
if (isset($this->DebtorNumber)) $o['DebtorNumber'] = $this->DebtorNumber;
if (isset($this->GlobalLocationNumber)) $o['GlobalLocationNumber'] = $this->GlobalLocationNumber;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
if (isset($this->ExternalID)) $o['ExternalID'] = $this->ExternalID;
return empty($o) ? new class(){} : $o;
}
}
class PersonReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ID=null,
/** @var int|null */
public ?int $Number=null,
/** @var string|null */
public ?string $GlobalID=null,
/** @var string|null */
public ?string $ExternalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['Number'])) $this->Number = $o['Number'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
if (isset($o['ExternalID'])) $this->ExternalID = $o['ExternalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->Number)) $o['Number'] = $this->Number;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
if (isset($this->ExternalID)) $o['ExternalID'] = $this->ExternalID;
return empty($o) ? new class(){} : $o;
}
}
class ProjectReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ID=null,
/** @var string|null */
public ?string $Code=null,
/** @var string|null */
public ?string $TypeExternalID=null,
/** @var int|null */
public ?int $CompanyNumber=null,
/** @var string|null */
public ?string $GlobalID=null,
/** @var string|null */
public ?string $ExternalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['Code'])) $this->Code = $o['Code'];
if (isset($o['TypeExternalID'])) $this->TypeExternalID = $o['TypeExternalID'];
if (isset($o['CompanyNumber'])) $this->CompanyNumber = $o['CompanyNumber'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
if (isset($o['ExternalID'])) $this->ExternalID = $o['ExternalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->Code)) $o['Code'] = $this->Code;
if (isset($this->TypeExternalID)) $o['TypeExternalID'] = $this->TypeExternalID;
if (isset($this->CompanyNumber)) $o['CompanyNumber'] = $this->CompanyNumber;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
if (isset($this->ExternalID)) $o['ExternalID'] = $this->ExternalID;
return empty($o) ? new class(){} : $o;
}
}
class SubProject implements JsonSerializable
{
public function __construct(
/** @var ProjectReference|null */
public ?ProjectReference $Project=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Project'])) $this->Project = JsonConverters::from('ProjectReference', $o['Project']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Project)) $o['Project'] = JsonConverters::to('ProjectReference', $this->Project);
return empty($o) ? new class(){} : $o;
}
}
class ContactPersonReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var int|null */
public ?int $ID=null,
/** @var string|null */
public ?string $GlobalID=null,
/** @var string|null */
public ?string $ExternalID=null,
/** @var int|null */
public ?int $RelationID=null,
/** @var int|null */
public ?int $PersonID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
if (isset($o['ExternalID'])) $this->ExternalID = $o['ExternalID'];
if (isset($o['RelationID'])) $this->RelationID = $o['RelationID'];
if (isset($o['PersonID'])) $this->PersonID = $o['PersonID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
if (isset($this->ExternalID)) $o['ExternalID'] = $this->ExternalID;
if (isset($this->RelationID)) $o['RelationID'] = $this->RelationID;
if (isset($this->PersonID)) $o['PersonID'] = $this->PersonID;
return empty($o) ? new class(){} : $o;
}
}
enum SignerType : string
{
case MainSigner = 'MainSigner';
case AdditionalSigner = 'AdditionalSigner';
case ConfirmationDeclarant = 'ConfirmationDeclarant';
case AdditionalConfirmationDeclarant = 'AdditionalConfirmationDeclarant';
}
class Signer implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $MainSignerPostFix=null,
/** @var UserReference|null */
public ?UserReference $User=null,
/** @var PersonReference|null */
public ?PersonReference $Person=null,
/** @var RelationReference|null */
public ?RelationReference $Relation=null,
/** @var ContactPersonReference|null */
public ?ContactPersonReference $ContactPerson=null,
/** @var DocumentReference|null */
public ?DocumentReference $RegisteredDocument=null,
/** @var SignerType|null */
public ?SignerType $Type=null,
/** @var string|null */
public ?string $ClosingSentence=null,
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Subsidiary=null,
/** @var string|null */
public ?string $Function=null,
/** @var string|null */
public ?string $Department=null,
/** @var string|null */
public ?string $PhoneNumber=null,
/** @var string|null */
public ?string $FaxNumber=null,
/** @var string|null */
public ?string $MobileNumber=null,
/** @var string|null */
public ?string $Email=null,
/** @var string|null */
public ?string $CustomText=null,
/** @var array<string>|null */
public ?array $Signature=null,
/** @var array<string>|null */
public ?array $Initials=null,
/** @var bool|null */
public ?bool $SignatureVisible=null,
/** @var bool|null */
public ?bool $InitialsVisible=null,
/** @var bool|null */
public ?bool $Visible=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['MainSignerPostFix'])) $this->MainSignerPostFix = $o['MainSignerPostFix'];
if (isset($o['User'])) $this->User = JsonConverters::from('UserReference', $o['User']);
if (isset($o['Person'])) $this->Person = JsonConverters::from('PersonReference', $o['Person']);
if (isset($o['Relation'])) $this->Relation = JsonConverters::from('RelationReference', $o['Relation']);
if (isset($o['ContactPerson'])) $this->ContactPerson = JsonConverters::from('ContactPersonReference', $o['ContactPerson']);
if (isset($o['RegisteredDocument'])) $this->RegisteredDocument = JsonConverters::from('DocumentReference', $o['RegisteredDocument']);
if (isset($o['Type'])) $this->Type = JsonConverters::from('SignerType', $o['Type']);
if (isset($o['ClosingSentence'])) $this->ClosingSentence = $o['ClosingSentence'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Subsidiary'])) $this->Subsidiary = $o['Subsidiary'];
if (isset($o['Function'])) $this->Function = $o['Function'];
if (isset($o['Department'])) $this->Department = $o['Department'];
if (isset($o['PhoneNumber'])) $this->PhoneNumber = $o['PhoneNumber'];
if (isset($o['FaxNumber'])) $this->FaxNumber = $o['FaxNumber'];
if (isset($o['MobileNumber'])) $this->MobileNumber = $o['MobileNumber'];
if (isset($o['Email'])) $this->Email = $o['Email'];
if (isset($o['CustomText'])) $this->CustomText = $o['CustomText'];
if (isset($o['Signature'])) $this->Signature = JsonConverters::fromArray('string', $o['Signature']);
if (isset($o['Initials'])) $this->Initials = JsonConverters::fromArray('string', $o['Initials']);
if (isset($o['SignatureVisible'])) $this->SignatureVisible = $o['SignatureVisible'];
if (isset($o['InitialsVisible'])) $this->InitialsVisible = $o['InitialsVisible'];
if (isset($o['Visible'])) $this->Visible = $o['Visible'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->MainSignerPostFix)) $o['MainSignerPostFix'] = $this->MainSignerPostFix;
if (isset($this->User)) $o['User'] = JsonConverters::to('UserReference', $this->User);
if (isset($this->Person)) $o['Person'] = JsonConverters::to('PersonReference', $this->Person);
if (isset($this->Relation)) $o['Relation'] = JsonConverters::to('RelationReference', $this->Relation);
if (isset($this->ContactPerson)) $o['ContactPerson'] = JsonConverters::to('ContactPersonReference', $this->ContactPerson);
if (isset($this->RegisteredDocument)) $o['RegisteredDocument'] = JsonConverters::to('DocumentReference', $this->RegisteredDocument);
if (isset($this->Type)) $o['Type'] = JsonConverters::to('SignerType', $this->Type);
if (isset($this->ClosingSentence)) $o['ClosingSentence'] = $this->ClosingSentence;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Subsidiary)) $o['Subsidiary'] = $this->Subsidiary;
if (isset($this->Function)) $o['Function'] = $this->Function;
if (isset($this->Department)) $o['Department'] = $this->Department;
if (isset($this->PhoneNumber)) $o['PhoneNumber'] = $this->PhoneNumber;
if (isset($this->FaxNumber)) $o['FaxNumber'] = $this->FaxNumber;
if (isset($this->MobileNumber)) $o['MobileNumber'] = $this->MobileNumber;
if (isset($this->Email)) $o['Email'] = $this->Email;
if (isset($this->CustomText)) $o['CustomText'] = $this->CustomText;
if (isset($this->Signature)) $o['Signature'] = JsonConverters::toArray('string', $this->Signature);
if (isset($this->Initials)) $o['Initials'] = JsonConverters::toArray('string', $this->Initials);
if (isset($this->SignatureVisible)) $o['SignatureVisible'] = $this->SignatureVisible;
if (isset($this->InitialsVisible)) $o['InitialsVisible'] = $this->InitialsVisible;
if (isset($this->Visible)) $o['Visible'] = $this->Visible;
return empty($o) ? new class(){} : $o;
}
}
class Field implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $OldValue=null,
/** @var string|null */
public ?string $Value=null,
/** @var string|null */
public ?string $Title=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['OldValue'])) $this->OldValue = $o['OldValue'];
if (isset($o['Value'])) $this->Value = $o['Value'];
if (isset($o['Title'])) $this->Title = $o['Title'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->OldValue)) $o['OldValue'] = $this->OldValue;
if (isset($this->Value)) $o['Value'] = $this->Value;
if (isset($this->Title)) $o['Title'] = $this->Title;
return empty($o) ? new class(){} : $o;
}
}
class AttachmentData implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $ContentType=null,
/** @description Data base64-encoded zonder padding. */
/** @var string|null */
public ?string $Data=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ContentType'])) $this->ContentType = $o['ContentType'];
if (isset($o['Data'])) $this->Data = $o['Data'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ContentType)) $o['ContentType'] = $this->ContentType;
if (isset($this->Data)) $o['Data'] = $this->Data;
return empty($o) ? new class(){} : $o;
}
}
class Attachment implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var AttachmentData|null */
public ?AttachmentData $AttachmentData=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['AttachmentData'])) $this->AttachmentData = JsonConverters::from('AttachmentData', $o['AttachmentData']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->AttachmentData)) $o['AttachmentData'] = JsonConverters::to('AttachmentData', $this->AttachmentData);
return empty($o) ? new class(){} : $o;
}
}
class RegistrationMetaData implements JsonSerializable
{
public function __construct(
/** @description Hoe moet het versiebeheer worden toegepast? */
// @ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")
/** @var VersioningType|null */
public ?VersioningType $Versioning=null,
/** @description 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 DocumentReference|null */
public ?DocumentReference $PreviousDocument=null,
/** @description Company */
// @ApiMember(Description="Company")
/** @var CompanyReference|null */
public ?CompanyReference $Company=null,
/** @description Relation */
// @ApiMember(Description="Relation")
/** @var RelationReference|null */
public ?RelationReference $Relation=null,
/** @description Person */
// @ApiMember(Description="Person")
/** @var PersonReference|null */
public ?PersonReference $Person=null,
/** @description Project */
// @ApiMember(Description="Project")
/** @var ProjectReference|null */
public ?ProjectReference $Project=null,
/** @description Sub projects */
// @ApiMember(AllowMultiple=true, Description="Sub projects")
/** @var array<SubProject>|null */
public ?array $SubProjects=null,
/** @description Signers */
// @ApiMember(AllowMultiple=true, Description="Signers")
/** @var array<Signer>|null */
public ?array $Signers=null,
/** @description 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 array<Field>|null */
public ?array $Fields=null,
/** @description Attachments die aan de documentregistratie gekoppeld moet worden. */
// @ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")
/** @var array<Attachment>|null */
public ?array $Attachments=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Versioning'])) $this->Versioning = JsonConverters::from('VersioningType', $o['Versioning']);
if (isset($o['PreviousDocument'])) $this->PreviousDocument = JsonConverters::from('DocumentReference', $o['PreviousDocument']);
if (isset($o['Company'])) $this->Company = JsonConverters::from('CompanyReference', $o['Company']);
if (isset($o['Relation'])) $this->Relation = JsonConverters::from('RelationReference', $o['Relation']);
if (isset($o['Person'])) $this->Person = JsonConverters::from('PersonReference', $o['Person']);
if (isset($o['Project'])) $this->Project = JsonConverters::from('ProjectReference', $o['Project']);
if (isset($o['SubProjects'])) $this->SubProjects = JsonConverters::fromArray('SubProject', $o['SubProjects']);
if (isset($o['Signers'])) $this->Signers = JsonConverters::fromArray('Signer', $o['Signers']);
if (isset($o['Fields'])) $this->Fields = JsonConverters::fromArray('Field', $o['Fields']);
if (isset($o['Attachments'])) $this->Attachments = JsonConverters::fromArray('Attachment', $o['Attachments']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Versioning)) $o['Versioning'] = JsonConverters::to('VersioningType', $this->Versioning);
if (isset($this->PreviousDocument)) $o['PreviousDocument'] = JsonConverters::to('DocumentReference', $this->PreviousDocument);
if (isset($this->Company)) $o['Company'] = JsonConverters::to('CompanyReference', $this->Company);
if (isset($this->Relation)) $o['Relation'] = JsonConverters::to('RelationReference', $this->Relation);
if (isset($this->Person)) $o['Person'] = JsonConverters::to('PersonReference', $this->Person);
if (isset($this->Project)) $o['Project'] = JsonConverters::to('ProjectReference', $this->Project);
if (isset($this->SubProjects)) $o['SubProjects'] = JsonConverters::toArray('SubProject', $this->SubProjects);
if (isset($this->Signers)) $o['Signers'] = JsonConverters::toArray('Signer', $this->Signers);
if (isset($this->Fields)) $o['Fields'] = JsonConverters::toArray('Field', $this->Fields);
if (isset($this->Attachments)) $o['Attachments'] = JsonConverters::toArray('Attachment', $this->Attachments);
return empty($o) ? new class(){} : $o;
}
}
class CommonEntityBaseReference implements IEntityReference, JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $ID=null,
/** @var string|null */
public ?string $ExternalID=null,
/** @var string|null */
public ?string $GlobalID=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['ID'])) $this->ID = $o['ID'];
if (isset($o['ExternalID'])) $this->ExternalID = $o['ExternalID'];
if (isset($o['GlobalID'])) $this->GlobalID = $o['GlobalID'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->ID)) $o['ID'] = $this->ID;
if (isset($this->ExternalID)) $o['ExternalID'] = $this->ExternalID;
if (isset($this->GlobalID)) $o['GlobalID'] = $this->GlobalID;
return empty($o) ? new class(){} : $o;
}
}
enum Direction : int
{
case Left2Right = 0;
case UpLeft2DownRight = 45;
case Up2Down = 90;
case UpRight2DownLeft = 135;
case Right2Left = 180;
case DownRight2UpLeft = 225;
case Down2Up = 270;
case DownLeft2UpRight = 315;
}
class Watermark implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Text=null,
/** @var string|null */
public ?string $FontFamilyName=null,
/** @var FontFamily|null */
public ?FontFamily $FontFamily=null,
/** @var Direction|null */
public ?Direction $Direction=null,
/** @var string|null */
public ?string $StrokeColorText=null,
/** @var Color|null */
public ?Color $StrokeColor=null,
/** @var string|null */
public ?string $FillColorText=null,
/** @var Color|null */
public ?Color $FillColor=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Text'])) $this->Text = $o['Text'];
if (isset($o['FontFamilyName'])) $this->FontFamilyName = $o['FontFamilyName'];
if (isset($o['FontFamily'])) $this->FontFamily = JsonConverters::from('FontFamily', $o['FontFamily']);
if (isset($o['Direction'])) $this->Direction = JsonConverters::from('Direction', $o['Direction']);
if (isset($o['StrokeColorText'])) $this->StrokeColorText = $o['StrokeColorText'];
if (isset($o['StrokeColor'])) $this->StrokeColor = $o['StrokeColor'];
if (isset($o['FillColorText'])) $this->FillColorText = $o['FillColorText'];
if (isset($o['FillColor'])) $this->FillColor = $o['FillColor'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Text)) $o['Text'] = $this->Text;
if (isset($this->FontFamilyName)) $o['FontFamilyName'] = $this->FontFamilyName;
if (isset($this->FontFamily)) $o['FontFamily'] = JsonConverters::to('FontFamily', $this->FontFamily);
if (isset($this->Direction)) $o['Direction'] = JsonConverters::to('Direction', $this->Direction);
if (isset($this->StrokeColorText)) $o['StrokeColorText'] = $this->StrokeColorText;
if (isset($this->StrokeColor)) $o['StrokeColor'] = $this->StrokeColor;
if (isset($this->FillColorText)) $o['FillColorText'] = $this->FillColorText;
if (isset($this->FillColor)) $o['FillColor'] = $this->FillColor;
return empty($o) ? new class(){} : $o;
}
}
/** @description Generate custom Document (Don't use from inside VSTO's) */
// @Api(Description="Generate custom Document (Don't use from inside VSTO's)")
class GenerateDocument implements IGenerateDocument, JsonSerializable
{
public function __construct(
/** @description DigiOffice user */
// @ApiMember(Description="DigiOffice user")
/** @var UserReference|null */
public ?UserReference $User=null,
/** @description Send the generated e-mail via the e-mail queue. */
// @ApiMember(Description="Send the generated e-mail via the e-mail queue.")
/** @var bool|null */
public ?bool $SendMail=null,
/** @description ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel. */
// @ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)
/** @var ConfigurationSource|null */
public ?ConfigurationSource $ConfigurationSource=null,
/** @description Set references to bind with Registration profile */
// @ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)
/** @var RegistrationMetaData|null */
public ?RegistrationMetaData $RegistrationMetaData=null,
/** @description 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 CommonEntityBaseReference|null */
public ?CommonEntityBaseReference $DataSourceEntity=null,
/** @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. */
// @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 string|null */
public ?string $CustomData=null,
/** @description Insert a watermark into the document. */
// @ApiMember(Description="Insert a watermark into the document.")
/** @var Watermark|null */
public ?Watermark $Watermark=null,
/** @description Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf. */
// @ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")
/** @var string|null */
public ?string $OutputType=null,
/** @description Should update the document file. */
// @ApiMember(Description="Should update the document file.")
/** @var bool|null */
public ?bool $ShouldUpdateDocumentFile=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['User'])) $this->User = JsonConverters::from('UserReference', $o['User']);
if (isset($o['SendMail'])) $this->SendMail = $o['SendMail'];
if (isset($o['ConfigurationSource'])) $this->ConfigurationSource = JsonConverters::from('ConfigurationSource', $o['ConfigurationSource']);
if (isset($o['RegistrationMetaData'])) $this->RegistrationMetaData = JsonConverters::from('RegistrationMetaData', $o['RegistrationMetaData']);
if (isset($o['DataSourceEntity'])) $this->DataSourceEntity = JsonConverters::from('CommonEntityBaseReference', $o['DataSourceEntity']);
if (isset($o['CustomData'])) $this->CustomData = $o['CustomData'];
if (isset($o['Watermark'])) $this->Watermark = JsonConverters::from('Watermark', $o['Watermark']);
if (isset($o['OutputType'])) $this->OutputType = $o['OutputType'];
if (isset($o['ShouldUpdateDocumentFile'])) $this->ShouldUpdateDocumentFile = $o['ShouldUpdateDocumentFile'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->User)) $o['User'] = JsonConverters::to('UserReference', $this->User);
if (isset($this->SendMail)) $o['SendMail'] = $this->SendMail;
if (isset($this->ConfigurationSource)) $o['ConfigurationSource'] = JsonConverters::to('ConfigurationSource', $this->ConfigurationSource);
if (isset($this->RegistrationMetaData)) $o['RegistrationMetaData'] = JsonConverters::to('RegistrationMetaData', $this->RegistrationMetaData);
if (isset($this->DataSourceEntity)) $o['DataSourceEntity'] = JsonConverters::to('CommonEntityBaseReference', $this->DataSourceEntity);
if (isset($this->CustomData)) $o['CustomData'] = $this->CustomData;
if (isset($this->Watermark)) $o['Watermark'] = JsonConverters::to('Watermark', $this->Watermark);
if (isset($this->OutputType)) $o['OutputType'] = $this->OutputType;
if (isset($this->ShouldUpdateDocumentFile)) $o['ShouldUpdateDocumentFile'] = $this->ShouldUpdateDocumentFile;
return empty($o) ? new class(){} : $o;
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /json/reply/GenerateDocument HTTP/1.1
Host: test-do-services.klokgroep.nl
Accept: application/json
Content-Type: application/json
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","ExternVersieNr":"String"},"UnRegisteredDocument":{"Action":"Create","Mode":"New","Version":"String","SilentMode":"Off"},"DraftDocumentRegistration":{"ID":0},"DocumentgeneratorType":null,"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","ExternVersieNr":"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":[{"MainSignerPostFix":"String","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","ExternVersieNr":"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"],"Initials":["String"],"SignatureVisible":false,"InitialsVisible":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","FontFamilyName":"Arial","FontFamily":{"Name":"Arial"},"Direction":"Left2Right","StrokeColorText":null,"FillColorText":null},"OutputType":"String","ShouldUpdateDocumentFile":false}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"DocumentID":"00000000-0000-0000-0000-000000000000"}