""" Options: Date: 2025-07-17 23:19:16 Version: 6.40 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://hcbtas-q-albamfs-api.azurewebsites.net #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: ValidateNemIdRequestModel.* #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 class CertificateType(str, Enum): POCES = 'Poces' MOCES = 'Moces' VOCES = 'Voces' FOCES = 'Foces' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SignProperty: name: Optional[str] = None value: Optional[str] = None class LogonType(str, Enum): OTP = 'Otp' KEY_FILE = 'KeyFile' UNKNOWN = 'Unknown' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AuthenticationInfo: pid: Optional[str] = None dn: Optional[str] = None common_name: Optional[str] = None rid: Optional[str] = None cpr: Optional[str] = None cvr: Optional[str] = None company: Optional[str] = None email: Optional[str] = None signed_xml: Optional[str] = None issuer_dn: Optional[str] = None is_youth_cert: bool = False certificate_type: Optional[CertificateType] = None subject_serial_number: Optional[str] = None sign_properties: Optional[IList[SignProperty]] = None remember_user_id_token: Optional[str] = None logon_type: Optional[LogonType] = None certificate_serial_number: Optional[str] = None client_certificate: Optional[bytes] = None authorized_to_represent: Optional[str] = None class ClientFlow(str, Enum): NEM_I_D = 'NemID' NEM_I_D_SIGNATURE = 'NemIDSignature' NEM_I_D_KEY_FILE = 'NemIDKeyFile' NEM_I_D_KEY_FILE_SIGNATURE = 'NemIDKeyFileSignature' N_L3_SIGNATURE = 'NL3Signature' INVALID = 'Invalid' LOAD_TEST = 'LoadTest' class FlowStatus(str, Enum): OK = 'Ok' USER_CANCEL = 'UserCancel' CLIENT_FLOW_ERROR = 'ClientFlowError' FLOW_ERROR = 'FlowError' VALIDATION_ERROR = 'ValidationError' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Body: pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FlowMessage(Body): timestamp: Optional[str] = None transaction_identifier: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FlowResult(FlowMessage): client_flow: Optional[ClientFlow] = None status: Optional[FlowStatus] = None is_success: bool = False message: Optional[str] = None user_message: Optional[str] = None flow_error_code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class NemIDFlowResult(FlowResult): authentication_info: Optional[AuthenticationInfo] = None # @Route("/nemidvalidatelogin", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ValidateNemIdRequestModel(IReturn[NemIDFlowResult]): pass