""" Options: Date: 2026-02-04 18:38:33 Version: 8.90 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://taxfiling.pwc.de #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: HoleClientSideZertifikatEigenschaftenAsync.* #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 Object = TypeVar('Object') # @Api(Description="Represents a base class for a file with raw data.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FileBase: """ Represents a base class for a file with raw data. """ # @ApiMember(Description="The raw data content of the file in bytes.", Name="Content") content: Optional[bytes] = None """ The raw data content of the file in bytes. """ # @Api(Description="Represents information about a file or directory.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FileMetadata(IFileMetadata): """ Represents information about a file or directory. """ # @ApiMember(Description="The name of the file.\nFor files, gets the name of the file.\nFor directories, gets the name of the last directory in the hierarchy if a hierarchy exists; otherwise, the name of the directory.") name: Optional[str] = None """ The name of the file.For files, gets the name of the file.For directories, gets the name of the last directory in the hierarchy if a hierarchy exists; otherwise, the name of the directory. """ # @ApiMember(Description="The full path of the directory or file.") full_name: Optional[str] = None """ The full path of the directory or file. """ # @ApiMember(Description="The time the current file or directory was last accessed.") last_access_time: datetime.datetime = datetime.datetime(1, 1, 1) """ The time the current file or directory was last accessed. """ # @ApiMember(Description="The name of the file.") last_access_time_utc: datetime.datetime = datetime.datetime(1, 1, 1) """ The name of the file. """ # @ApiMember(Description="The time when the current file or directory was last written to.") last_write_time: datetime.datetime = datetime.datetime(1, 1, 1) """ The time when the current file or directory was last written to. """ # @ApiMember(Description="The time, in coordinated universal time (UTC), when the current file or directory was last written to.") last_write_time_utc: datetime.datetime = datetime.datetime(1, 1, 1) """ The time, in coordinated universal time (UTC), when the current file or directory was last written to. """ # @ApiMember(Description="The size, in bytes, of the current file.") length: int = 0 """ The size, in bytes, of the current file. """ # @ApiMember(Description="The size, in bytes, of the current file.") user_id: int = 0 """ The size, in bytes, of the current file. """ # @ApiMember(Description="The file group id.") group_id: int = 0 """ The file group id. """ # @ApiMember(Description="A value that indicates whether the others can read from this file.") others_can_read: bool = False """ A value that indicates whether the others can read from this file. """ # @ApiMember(Description="A value that indicates whether the group members can execute this file.") group_can_execute: bool = False """ A value that indicates whether the group members can execute this file. """ # @ApiMember(Description="A value that indicates whether the group members can write into this file.") group_can_write: bool = False """ A value that indicates whether the group members can write into this file. """ # @ApiMember(Description="A value that indicates whether the group members can read from this file.") group_can_read: bool = False """ A value that indicates whether the group members can read from this file. """ # @ApiMember(Description="A value that indicates whether the owner can execute this file.") owner_can_execute: bool = False """ A value that indicates whether the owner can execute this file. """ # @ApiMember(Description="A value that indicates whether the owner can write into this file.") owner_can_write: bool = False """ A value that indicates whether the owner can write into this file. """ # @ApiMember(Description="A value that indicates whether the owner can read from this file.") owner_can_read: bool = False """ A value that indicates whether the owner can read from this file. """ # @ApiMember(Description="A value that indicates whether others can read from this file.") others_can_execute: bool = False """ A value that indicates whether others can read from this file. """ # @ApiMember(Description="A value that indicates whether others can write into this file.") others_can_write: bool = False """ A value that indicates whether others can write into this file. """ # @ApiMember(Description="Extensions to the file attributes.") extensions: Dict[str, str] = field(default_factory=dict) """ Extensions to the file attributes. """ # @Api(Description="Represents a generic file that contains raw data content in bytes") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BinaryFile(FileBase): """ Represents a generic file that contains raw data content in bytes """ # @ApiMember(Description="The attributes of the file.") metadata: Optional[FileMetadata] = None """ The attributes of the file. """ # @ApiMember(Description="The name of the file without information on its directory path.") name: Optional[str] = None """ The name of the file without information on its directory path. """ # @Api(Description="Represents a client-side generated certificate that is protected by a password.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ClientSideCertificate(ISecuredCertificate): """ Represents a client-side generated certificate that is protected by a password. """ # @ApiMember(Description="The friendly name of the certificate.", IsRequired=true) name: Optional[str] = None """ The friendly name of the certificate. """ # @StringLength(255) # @ApiMember(Description="The password to protect the certificate from unauthorized access.", IsRequired=true) pin: Optional[str] = None """ The password to protect the certificate from unauthorized access. """ # @ApiMember(Description="The file that contains the private key. Access is protected by the PIN.", IsRequired=true) private_key_file: Optional[BinaryFile] = None """ The file that contains the private key. Access is protected by the PIN. """ # @ApiMember(Description="The file that contains the certificate data and public key.", IsRequired=true) public_key_file: Optional[BinaryFile] = None """ The file that contains the certificate data and public key. """ # @ApiMember(Description="Contains the checksum of the files PublicKeyFile and PrivateKeyFile.", IsRequired=true) checksum_file: Optional[BinaryFile] = None """ Contains the checksum of the files PublicKeyFile and PrivateKeyFile. """ # @StringLength(2147483647) # @ApiMember(Description="The description for the certificate.") description: Optional[str] = None """ The description for the certificate. """ # @ApiMember(Description="The tags that can be used to label or identify the certificate.") tags: List[str] = field(default_factory=list) """ The tags that can be used to label or identify the certificate. """ # @Api(Description="A base service to get the properties of a specified client-side certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HoleClientSideZertifikatEigenschaftenBase(IReturn[HoleZertifikatEigenschaftenResponse], IPost): """ A base service to get the properties of a specified client-side certificate. """ # @ApiMember(Description="The client-side certificate. Access is protected by a PIN.", Name="Zertifikat") zertifikat: Optional[ClientSideCertificate] = None """ The client-side certificate. Access is protected by a PIN. """ @staticmethod def response_type(): return HoleZertifikatEigenschaftenResponse # @Api(Description="Represent issuer details of a certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Info: """ Represent issuer details of a certificate. """ # @ApiMember(Description="The name of the issuer detail.") name: Optional[str] = None """ The name of the issuer detail. """ # @ApiMember(Description="The value of the issuer detail.") wert: Optional[str] = None """ The value of the issuer detail. """ # @Api(Description="Represents an issuer of certificates.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Issuer: """ Represents an issuer of certificates. """ # @ApiMember(Description="Details about the issuer of certificates.") infos: List[Info] = field(default_factory=list) """ Details about the issuer of certificates. """ # @Api(Description="Represents the subject of the certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Subjekt: """ Represents the subject of the certificate. """ # @ApiMember(Description="Details about the subject of the certificate.") infos: List[Info] = field(default_factory=list) """ Details about the subject of the certificate. """ class Identifikationsmerkmaltyp(str, Enum): """ Represents a type of Identification characteristic. Identification marker that was specified when the certificate was generated. For portal certificates usually tax number or identification number. """ UNBEKANNT = 'Unbekannt' STEUERNUMMER = 'Steuernummer' IDENTIFIKATIONSNUMMER = 'Identifikationsnummer' BZ_ST_NUMMER = 'BZStNummer' BEARBEITERNUMMER = 'Bearbeiternummer' CLIENTERZEUGT = 'Clienterzeugt' class Registrierertyp(str, Enum): """ Represents a type of registrar. Contains informatiom on the type of person or organization, for which a certificate is issued. Often 'Person' or 'Organisation'. """ UNBEKANNT = 'Unbekannt' PERSON = 'Person' ORGANISATION = 'Organisation' RECHTEVERWALTER = 'Rechteverwalter' BZ_ST_INLAND = 'BZStInland' BZ_ST_AUSLAND = 'BZStAusland' BZ_ST_KEVIZZ = 'BZStKevizz' class VerifikationsartTyp(str, Enum): """ Represents a type of verification. Contains information on the verification of a person or organisation by an issuer of certificates. """ UNBEKANNT = 'Unbekannt' POSTWEG = 'Postweg' NEUERPERSONALAUSWEIS = 'Neuerpersonalausweis' class TokenTyp(str, Enum): """ Represents a type of token.Contains information about the type of token used to create a certificate. """ UNBEKANNT = 'Unbekannt' SOFTWARE = 'Software' STICK = 'Stick' KARTE = 'Karte' AUSWEIS = 'Ausweis' # @Api(Description="Represents the characteristics of a certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Zertifikateigenschaften: """ Represents the characteristics of a certificate. """ # @ApiMember(Description="The start validity date of the certificate.") ausgestellt_am: Optional[datetime.datetime] = None """ The start validity date of the certificate. """ # @ApiMember(Description="The expiry date of the certificate.") gueltig_bis: Optional[datetime.datetime] = None """ The expiry date of the certificate. """ # @ApiMember(Description="The signing algorithm and Object Identifier (for more information on OIDs, please see 'http://www.oid-info.com/')") signaturalgorithmus: Optional[str] = None """ The signing algorithm and Object Identifier (for more information on OIDs, please see 'http://www.oid-info.com/') """ # @ApiMember(Description="The MD5-hash of the public key.") public_key_m_d5: Optional[str] = None """ The MD5-hash of the public key. """ # @ApiMember(Description="The SHA1-hash of the public key.") public_key_s_h_a1: Optional[str] = None """ The SHA1-hash of the public key. """ # @ApiMember(Description="The key length of the public key in units of bits. For example '2048 bits'") public_key_bit_length: int = 0 """ The key length of the public key in units of bits. For example '2048 bits' """ # @ApiMember(Description="The issuer of the certificate.") issuer: Optional[Issuer] = None """ The issuer of the certificate. """ # @ApiMember(Description="The subject of the certificate.") subjekt: Optional[Subjekt] = None """ The subject of the certificate. """ # @ApiMember(Description="The identification characteristics of the certificate.") identifikationsmerkmaltyp: Optional[Identifikationsmerkmaltyp] = None """ The identification characteristics of the certificate. """ # @ApiMember(Description="The type of registrar, to which the key is issued.") registrierertyp: Optional[Registrierertyp] = None """ The type of registrar, to which the key is issued. """ # @ApiMember(Description="The type of verification conducted for the person or organisation, to which the certificate is issued.") verifikationsart: Optional[VerifikationsartTyp] = None """ The type of verification conducted for the person or organisation, to which the certificate is issued. """ # @ApiMember(Description="The type of token used to create the certificate.") token_typ: Optional[TokenTyp] = None """ The type of token used to create the certificate. """ # @ApiMember(Description="Is the certificate is a test certificate? True if it is a test certificate; otherwise false.") testzertifikat: Optional[bool] = None """ Is the certificate is a test certificate? True if it is a test certificate; otherwise false. """ # @Api(Description="Represents a list of properties for a specified certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EricHoleZertifikatEigenschaften: """ Represents a list of properties for a specified certificate. """ # @ApiMember(Description="The properties of the certificate used for signing. These are not available for client-side certificates.") signaturzertifikateigenschaften: Optional[Zertifikateigenschaften] = None """ The properties of the certificate used for signing. These are not available for client-side certificates. """ # @ApiMember(Description="The properties of certificates used for encryption.") verschluesselungszertifikateigenschaften: Optional[Zertifikateigenschaften] = None """ The properties of certificates used for encryption. """ class ISecuredCertificate: pin: Optional[str] = None class IFileMetadata: name: Optional[str] = None full_name: Optional[str] = None last_access_time: datetime.datetime = datetime.datetime(1, 1, 1) last_access_time_utc: datetime.datetime = datetime.datetime(1, 1, 1) last_write_time: datetime.datetime = datetime.datetime(1, 1, 1) last_write_time_utc: datetime.datetime = datetime.datetime(1, 1, 1) length: int = 0 user_id: int = 0 group_id: int = 0 group_can_execute: bool = False group_can_write: bool = False group_can_read: bool = False owner_can_read: bool = False owner_can_execute: bool = False owner_can_write: bool = False others_can_read: bool = False others_can_execute: bool = False others_can_write: bool = False extensions: Optional[Dict[str, str]] = None # @Api(Description="Represent a base response that encapsulate any ERiC API function return value.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EricFehlerCodeResponse(ServiceReponseBase): """ Represent a base response that encapsulate any ERiC API function return value. """ # @ApiMember(Description="The status code that the ERiC API function returns.") status_code: Optional[EricFehlerCode] = None """ The status code that the ERiC API function returns. """ # @ApiMember(Description="The status message that the ERiC API function returns.") status_text: Optional[str] = None """ The status message that the ERiC API function returns. """ # @Api(Description="Represents a type that encapsulates the return values of the ERiC API function, which retrieves the details of a certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HoleZertifikatEigenschaftenResponse(EricFehlerCodeResponse): """ Represents a type that encapsulates the return values of the ERiC API function, which retrieves the details of a certificate. """ # @ApiMember(Description="The list of test fiscal authoririties.") rueckgabe: Optional[EricHoleZertifikatEigenschaften] = None """ The list of test fiscal authoririties. """ # @Route("/HoleClientSideZertifikatEigenschaftenAsync", "POST") # @Api(Description="An asynchronous service to get the properties of specified client-side certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HoleClientSideZertifikatEigenschaftenAsync(HoleClientSideZertifikatEigenschaftenBase, IReturn[HoleZertifikatEigenschaftenResponse]): """ An asynchronous service to get the properties of specified client-side certificate. """ pass