""" Options: Date: 2025-07-04 09:13:31 Version: 6.110 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://doapigw.baasbv.nl/api #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: GenerateDocumentBatch.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserReference(IEntityReference): id: Optional[int] = None login_name: Optional[str] = None user_principal_name: Optional[str] = None full_name: Optional[str] = None email_address: Optional[str] = None global_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DocumentgeneratorDocumentReference(IEntityReference): id: Optional[str] = None name: Optional[str] = None global_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RegistrationProfileReference(IEntityReference): id: Optional[str] = None global_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DocumentReference(IEntityReference): id: Optional[str] = None code: Optional[str] = None version_code: Optional[str] = None root_doc_i_d: Optional[str] = None internal_invoice_code: Optional[str] = None company_number: Optional[int] = None document_type_i_d: Optional[str] = None invoice_type: Optional[int] = None reg_prof_cat_i_d: Optional[int] = None global_i_d: Optional[str] = None external_i_d: Optional[str] = None extern_nr: Optional[str] = None extern_versie_nr: Optional[str] = None intern_nummer: Optional[str] = None class DocInfoAction(str, Enum): CREATE = 'Create' REGISTER = 'Register' class DocInfoMode(str, Enum): NEW = 'New' CHANGE = 'Change' NEW_VERSION_PRIMARY = 'NewVersionPrimary' NEW_VERSION_SECONDARY = 'NewVersionSecondary' NEW_FROM_EXISTING_DOCUMENT = 'NewFromExistingDocument' class DocInfoSilentMode(str, Enum): OFF = 'Off' ALLOW_USER_INTERACTION = 'AllowUserInteraction' DO_NOT_ALLOW_USER_INTERACTION = 'DoNotAllowUserInteraction' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DocumentInfo: action: Optional[DocInfoAction] = None mode: Optional[DocInfoMode] = None version: Optional[str] = None silent_mode: Optional[DocInfoSilentMode] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MessageQueueReference(IEntityReference): id: Optional[int] = None global_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConfigurationSource: documentgenerator_document: Optional[DocumentgeneratorDocumentReference] = None """ Document genereren op basis van een DocGenDocument. """ registration_profile: Optional[RegistrationProfileReference] = None """ Document genereren op basis van een RegistratieProfiel. """ registered_document: Optional[DocumentReference] = None """ Use existing document registration. """ un_registered_document: Optional[DocumentInfo] = None """ Use documentInfo. """ draft_document_registration: Optional[MessageQueueReference] = None """ Use draft document registration. """ documentgenerator_type: Optional[str] = None documentgenerator_type_name: Optional[str] = None """ DocumentgeneratorType voor bijvoorbeeld Word of Email. """ template_extension: Optional[str] = None output_extension: Optional[str] = None class VersioningType(str, Enum): NEW = 'New' CHANGE = 'Change' PRIMARY = 'Primary' SECONDARY = 'Secondary' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyReference(IEntityReference): id: Optional[int] = None number: Optional[int] = None global_i_d: Optional[str] = None external_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RelationReference(IEntityReference): id: Optional[int] = None creditor_number: Optional[int] = None debtor_number: Optional[int] = None global_location_number: Optional[str] = None global_i_d: Optional[str] = None external_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PersonReference(IEntityReference): id: Optional[int] = None number: Optional[int] = None global_i_d: Optional[str] = None external_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProjectReference(IEntityReference): id: Optional[int] = None code: Optional[str] = None type_external_i_d: Optional[str] = None company_number: Optional[int] = None global_i_d: Optional[str] = None external_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubProject: project: Optional[ProjectReference] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContactPersonReference(IEntityReference): id: Optional[int] = None global_i_d: Optional[str] = None external_i_d: Optional[str] = None relation_i_d: Optional[int] = None person_i_d: Optional[int] = None class SignerType(str, Enum): MAIN_SIGNER = 'MainSigner' ADDITIONAL_SIGNER = 'AdditionalSigner' CONFIRMATION_DECLARANT = 'ConfirmationDeclarant' ADDITIONAL_CONFIRMATION_DECLARANT = 'AdditionalConfirmationDeclarant' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Signer: main_signer_post_fix: Optional[str] = None user: Optional[UserReference] = None person: Optional[PersonReference] = None relation: Optional[RelationReference] = None contact_person: Optional[ContactPersonReference] = None registered_document: Optional[DocumentReference] = None type: Optional[SignerType] = None closing_sentence: Optional[str] = None name: Optional[str] = None subsidiary: Optional[str] = None function: Optional[str] = None department: Optional[str] = None phone_number: Optional[str] = None fax_number: Optional[str] = None mobile_number: Optional[str] = None email: Optional[str] = None custom_text: Optional[str] = None signature: Optional[List[str]] = None initials: Optional[List[str]] = None signature_visible: Optional[bool] = None initials_visible: Optional[bool] = None visible: Optional[bool] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Field: name: Optional[str] = None old_value: Optional[str] = None value: Optional[str] = None title: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AttachmentData: content_type: Optional[str] = None data: Optional[str] = None """ Data base64-encoded zonder padding. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Attachment: name: Optional[str] = None attachment_data: Optional[AttachmentData] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RegistrationMetaData: # @ApiMember(Description="Hoe moet het versiebeheer worden toegepast?") versioning: Optional[VersioningType] = None """ Hoe moet het versiebeheer worden toegepast? """ # @ApiMember(Description="Previous document will be used for registration of a new version.") previous_document: Optional[DocumentReference] = None """ Previous document will be used for registration of a new version. """ # @ApiMember(Description="Company") company: Optional[CompanyReference] = None """ Company """ # @ApiMember(Description="Relation") relation: Optional[RelationReference] = None """ Relation """ # @ApiMember(Description="Person") person: Optional[PersonReference] = None """ Person """ # @ApiMember(Description="Project") project: Optional[ProjectReference] = None """ Project """ # @ApiMember(AllowMultiple=true, Description="Sub projects") sub_projects: Optional[List[SubProject]] = None """ Sub projects """ # @ApiMember(AllowMultiple=true, Description="Signers") signers: Optional[List[Signer]] = None """ Signers """ # @ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.") fields: Optional[List[Field]] = None """ Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie. """ # @ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.") attachments: Optional[List[Attachment]] = None """ Attachments die aan de documentregistratie gekoppeld moet worden. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CommonEntityBaseReference(IEntityReference): id: Optional[str] = None external_i_d: Optional[str] = None global_i_d: Optional[str] = None class Direction(IntEnum): LEFT2_RIGHT = 0 UP_LEFT2_DOWN_RIGHT = 45 UP2_DOWN = 90 UP_RIGHT2_DOWN_LEFT = 135 RIGHT2_LEFT = 180 DOWN_RIGHT2_UP_LEFT = 225 DOWN2_UP = 270 DOWN_LEFT2_UP_RIGHT = 315 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Watermark: text: Optional[str] = None font_family_text: Optional[str] = None font_family: Optional[FontFamily] = None direction: Optional[Direction] = None stroke_color_text: Optional[str] = None stroke_color: Optional[Color] = None fill_color_text: Optional[str] = None fill_color: Optional[Color] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BatchDocument(IDocument): # @ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true) configuration_source: Optional[ConfigurationSource] = None """ ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel. """ # @ApiMember(Description="Set references to bind with Registration profile", IsRequired=true) registration_meta_data: Optional[RegistrationMetaData] = None """ Set references to bind with Registration profile """ # @ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.") data_source_entity: Optional[CommonEntityBaseReference] = None """ Entity instance used as data source parent, if not exists default is Document registration instance. """ # @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.") custom_data: Optional[str] = None """ 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="Insert a watermark into the document.") watermark: Optional[Watermark] = None """ Insert a watermark into the document. """ # @ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.") output_type: Optional[str] = None """ Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf. """ class IGenerateDocumentBatch(IReturn[GenerateDocumentBatchResponse]): user: Optional[UserReference] = None description: Optional[str] = None documents: Optional[List[BatchDocument]] = None dont_register: Optional[bool] = None send_mail: bool = False @staticmethod def response_type(): return GenerateDocumentBatchResponse class IDocument: configuration_source: Optional[ConfigurationSource] = None data_source_entity: Optional[CommonEntityBaseReference] = None registration_meta_data: Optional[RegistrationMetaData] = None custom_data: Optional[str] = None watermark: Optional[Watermark] = None output_type: Optional[str] = None class IGenerateDocumentBatchResponse: batch_i_d: Optional[str] = None processed: int = 0 track_and_trace_url: Optional[str] = None class IEntityReference: global_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GenerateDocumentBatchResponse(IGenerateDocumentBatchResponse): # @ApiMember(Description="ID of the batch", IsRequired=true) batch_i_d: Optional[str] = None """ ID of the batch """ # @ApiMember(Description="Document processed count", IsRequired=true) processed: int = 0 """ Document processed count """ # @ApiMember(Description="Track and Trace url", IsRequired=true) track_and_trace_url: Optional[str] = None """ Track and Trace url """ # @Api(Description="Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GenerateDocumentBatch(IReturn[GenerateDocumentBatchResponse], IGenerateDocumentBatch): """ Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent. """ # @ApiMember(Description="Owner of the badge (DigiOffice user)") user: Optional[UserReference] = None """ Owner of the badge (DigiOffice user) """ # @ApiMember(Description="Description of the badge", IsRequired=true) description: Optional[str] = None """ Description of the badge """ # @ApiMember(AllowMultiple=true, Description="Corporate identity document(s) to be generate", IsRequired=true) documents: Optional[List[BatchDocument]] = None """ Corporate identity document(s) to be generate """ # @ApiMember(Description="Generated document is not registered in DigiOffice DMS.") dont_register: Optional[bool] = None """ Generated document is not registered in DigiOffice DMS. """ # @ApiMember(Description="Send the generated e-mail via the e-mail queue.") send_mail: bool = False """ Send the generated e-mail via the e-mail queue. """