""" Options: Date: 2024-10-18 04:15:06 Version: 6.40 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://digiofficeapigateway.deltares.nl/api #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: GenerateDocument.* #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 intern_nummer: Optional[str] = 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. """ 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: 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 signature_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 class IGenerateDocument(IDocument): user: Optional[UserReference] = None send_mail: bool = False should_update_document_file: bool = False 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 IGenerateDocumentResponse: document_i_d: Optional[str] = None class IEntityReference: global_i_d: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GenerateDocumentResponse(IGenerateDocumentResponse): # @ApiMember(Description="Contains the registration ID of the generated (corporate identity) document", IsRequired=true) document_i_d: Optional[str] = None """ Contains the registration ID of the generated (corporate identity) document """ # @Api(Description="Generate custom Document (Don't use from inside VSTO's)") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GenerateDocument(IReturn[GenerateDocumentResponse], IGenerateDocument): """ Generate custom Document (Don't use from inside VSTO's) """ # @ApiMember(Description="DigiOffice user") user: Optional[UserReference] = None """ DigiOffice user """ # @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. """ # @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. """ # @ApiMember(Description="Should update the document file.") should_update_document_file: bool = False """ Should update the document file. """