/* Options: Date: 2026-02-04 14:00:43 SwiftVersion: 6.0 Version: 8.90 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://taxfiling.pwc.de //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: HoleClientSideZertifikatEigenschaften.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * A synchronous service to get the properties of specified client-side certificate. */ // @Route("/HoleClientSideZertifikatEigenschaften", "POST") // @Api(Description="A synchronous service to get the properties of specified client-side certificate.") public class HoleClientSideZertifikatEigenschaften : HoleClientSideZertifikatEigenschaftenBase, IReturn { public typealias Return = HoleZertifikatEigenschaftenResponse required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } /** * Represents a type that encapsulates the return values of the ERiC API function, which retrieves the details of a certificate. */ // @Api(Description="Represents a type that encapsulates the return values of the ERiC API function, which retrieves the details of a certificate.") public class HoleZertifikatEigenschaftenResponse : EricFehlerCodeResponse { /** * The list of test fiscal authoririties. */ // @ApiMember(Description="The list of test fiscal authoririties.") public var rueckgabe:EricHoleZertifikatEigenschaften? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case rueckgabe } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) rueckgabe = try container.decodeIfPresent(EricHoleZertifikatEigenschaften.self, forKey: .rueckgabe) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if rueckgabe != nil { try container.encode(rueckgabe, forKey: .rueckgabe) } } } /** * Represents a client-side generated certificate that is protected by a password. */ // @Api(Description="Represents a client-side generated certificate that is protected by a password.") public class ClientSideCertificate : ISecuredCertificate, Codable { /** * The friendly name of the certificate. */ // @ApiMember(Description="The friendly name of the certificate.", IsRequired=true) public var name:String? /** * The password to protect the certificate from unauthorized access. */ // @StringLength(255) // @ApiMember(Description="The password to protect the certificate from unauthorized access.", IsRequired=true) public var pin:String? /** * The file that contains the private key. Access is protected by the PIN. */ // @ApiMember(Description="The file that contains the private key. Access is protected by the PIN.", IsRequired=true) public var privateKeyFile:BinaryFile? /** * The file that contains the certificate data and public key. */ // @ApiMember(Description="The file that contains the certificate data and public key.", IsRequired=true) public var publicKeyFile:BinaryFile? /** * Contains the checksum of the files PublicKeyFile and PrivateKeyFile. */ // @ApiMember(Description="Contains the checksum of the files PublicKeyFile and PrivateKeyFile.", IsRequired=true) public var checksumFile:BinaryFile? /** * The description for the certificate. */ // @StringLength(Int32.max) // @ApiMember(Description="The description for the certificate.") public var Description:String? /** * The tags that can be used to label or identify the certificate. */ // @ApiMember(Description="The tags that can be used to label or identify the certificate.") public var tags:[String] = [] required public init(){} } /** * A base service to get the properties of a specified client-side certificate. */ // @Api(Description="A base service to get the properties of a specified client-side certificate.") public class HoleClientSideZertifikatEigenschaftenBase : IPost, Codable { /** * The client-side certificate. Access is protected by a PIN. */ // @ApiMember(Description="The client-side certificate. Access is protected by a PIN.", Name="Zertifikat") public var zertifikat:ClientSideCertificate? required public init(){} } /** * Represents a list of properties for a specified certificate. */ // @Api(Description="Represents a list of properties for a specified certificate.") public class EricHoleZertifikatEigenschaften : Codable { /** * The properties of the certificate used for signing. These are not available for client-side certificates. */ // @ApiMember(Description="The properties of the certificate used for signing. These are not available for client-side certificates.") public var signaturzertifikateigenschaften:Zertifikateigenschaften? /** * The properties of certificates used for encryption. */ // @ApiMember(Description="The properties of certificates used for encryption.") public var verschluesselungszertifikateigenschaften:Zertifikateigenschaften? required public init(){} } /** * Represents a generic file that contains raw data content in bytes */ // @Api(Description="Represents a generic file that contains raw data content in bytes") public class BinaryFile : FileBase { /** * The attributes of the file. */ // @ApiMember(Description="The attributes of the file.") public var metadata:FileMetadata? /** * The name of the file without information on its directory path. */ // @ApiMember(Description="The name of the file without information on its directory path.") public var name:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case metadata case name } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) metadata = try container.decodeIfPresent(FileMetadata.self, forKey: .metadata) name = try container.decodeIfPresent(String.self, forKey: .name) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if metadata != nil { try container.encode(metadata, forKey: .metadata) } if name != nil { try container.encode(name, forKey: .name) } } } /** * Represents a base class for a file with raw data. */ // @Api(Description="Represents a base class for a file with raw data.") public class FileBase : Codable { /** * The raw data content of the file in bytes. */ // @ApiMember(Description="The raw data content of the file in bytes.", Name="Content") public var content:[UInt8]? required public init(){} } public protocol ISecuredCertificate { var pin:String? { get set } } /** * Represents the characteristics of a certificate. */ // @Api(Description="Represents the characteristics of a certificate.") public class Zertifikateigenschaften : Codable { /** * The start validity date of the certificate. */ // @ApiMember(Description="The start validity date of the certificate.") public var ausgestelltAm:Date? /** * The expiry date of the certificate. */ // @ApiMember(Description="The expiry date of the certificate.") public var gueltigBis:Date? /** * The signing algorithm and Object Identifier (for more information on OIDs, please see 'http://www.oid-info.com/') */ // @ApiMember(Description="The signing algorithm and Object Identifier (for more information on OIDs, please see 'http://www.oid-info.com/')") public var signaturalgorithmus:String? /** * The MD5-hash of the public key. */ // @ApiMember(Description="The MD5-hash of the public key.") public var publicKeyMD5:String? /** * The SHA1-hash of the public key. */ // @ApiMember(Description="The SHA1-hash of the public key.") public var publicKeySHA1:String? /** * The key length of the public key in units of bits. For example '2048 bits' */ // @ApiMember(Description="The key length of the public key in units of bits. For example '2048 bits'") public var publicKeyBitLength:Int? /** * The issuer of the certificate. */ // @ApiMember(Description="The issuer of the certificate.") public var issuer:Issuer? /** * The subject of the certificate. */ // @ApiMember(Description="The subject of the certificate.") public var subjekt:Subjekt? /** * The identification characteristics of the certificate. */ // @ApiMember(Description="The identification characteristics of the certificate.") public var identifikationsmerkmaltyp:Identifikationsmerkmaltyp? /** * The type of registrar, to which the key is issued. */ // @ApiMember(Description="The type of registrar, to which the key is issued.") public var registrierertyp:Registrierertyp? /** * The type of verification conducted for the person or organisation, to which the certificate is issued. */ // @ApiMember(Description="The type of verification conducted for the person or organisation, to which the certificate is issued.") public var verifikationsart:VerifikationsartTyp? /** * The type of token used to create the certificate. */ // @ApiMember(Description="The type of token used to create the certificate.") public var tokenTyp:TokenTyp? /** * Is the certificate is a test certificate? True if it is a test certificate; otherwise false. */ // @ApiMember(Description="Is the certificate is a test certificate? True if it is a test certificate; otherwise false.") public var testzertifikat:Bool? required public init(){} } /** * Represents information about a file or directory. */ // @Api(Description="Represents information about a file or directory.") public class FileMetadata : IFileMetadata, Codable { /** * 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 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.") public var name:String? /** * The full path of the directory or file. */ // @ApiMember(Description="The full path of the directory or file.") public var fullName:String? /** * The time the current file or directory was last accessed. */ // @ApiMember(Description="The time the current file or directory was last accessed.") public var lastAccessTime:Date? /** * The name of the file. */ // @ApiMember(Description="The name of the file.") public var lastAccessTimeUtc:Date? /** * The time when the current file or directory was last written to. */ // @ApiMember(Description="The time when the current file or directory was last written to.") public var lastWriteTime:Date? /** * The time, in coordinated universal time (UTC), 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.") public var lastWriteTimeUtc:Date? /** * The size, in bytes, of the current file. */ // @ApiMember(Description="The size, in bytes, of the current file.") public var length:Int? /** * The size, in bytes, of the current file. */ // @ApiMember(Description="The size, in bytes, of the current file.") public var userId:Int? /** * The file group id. */ // @ApiMember(Description="The file group id.") public var groupId:Int? /** * A value that indicates whether the others can read from this file. */ // @ApiMember(Description="A value that indicates whether the others can read from this file.") public var othersCanRead:Bool? /** * A value that indicates whether the group members can execute this file. */ // @ApiMember(Description="A value that indicates whether the group members can execute this file.") public var groupCanExecute:Bool? /** * A value that indicates whether the group members can write into this file. */ // @ApiMember(Description="A value that indicates whether the group members can write into this file.") public var groupCanWrite:Bool? /** * A value that indicates whether the group members can read from this file. */ // @ApiMember(Description="A value that indicates whether the group members can read from this file.") public var groupCanRead:Bool? /** * A value that indicates whether the owner can execute this file. */ // @ApiMember(Description="A value that indicates whether the owner can execute this file.") public var ownerCanExecute:Bool? /** * A value that indicates whether the owner can write into this file. */ // @ApiMember(Description="A value that indicates whether the owner can write into this file.") public var ownerCanWrite:Bool? /** * A value that indicates whether the owner can read from this file. */ // @ApiMember(Description="A value that indicates whether the owner can read from this file.") public var ownerCanRead:Bool? /** * A value that indicates whether others can read from this file. */ // @ApiMember(Description="A value that indicates whether others can read from this file.") public var othersCanExecute:Bool? /** * A value that indicates whether others can write into this file. */ // @ApiMember(Description="A value that indicates whether others can write into this file.") public var othersCanWrite:Bool? /** * Extensions to the file attributes. */ // @ApiMember(Description="Extensions to the file attributes.") public var extensions:[String:String] = [:] required public init(){} } /** * Represents an issuer of certificates. */ // @Api(Description="Represents an issuer of certificates.") public class Issuer : Codable { /** * Details about the issuer of certificates. */ // @ApiMember(Description="Details about the issuer of certificates.") public var infos:[Info] = [] required public init(){} } /** * Represents the subject of the certificate. */ // @Api(Description="Represents the subject of the certificate.") public class Subjekt : Codable { /** * Details about the subject of the certificate. */ // @ApiMember(Description="Details about the subject of the certificate.") public var infos:[Info] = [] required public init(){} } /** * 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. */ public enum Identifikationsmerkmaltyp : String, Codable { case Unbekannt case Steuernummer case Identifikationsnummer case BZStNummer case Bearbeiternummer case Clienterzeugt } /** * Represents a type of registrar. Contains informatiom on the type of person or organization, for which a certificate is issued. Often 'Person' or 'Organisation'. */ public enum Registrierertyp : String, Codable { case Unbekannt case Person case Organisation case Rechteverwalter case BZStInland case BZStAusland case BZStKevizz } /** * Represents a type of verification. Contains information on the verification of a person or organisation by an issuer of certificates. */ public enum VerifikationsartTyp : String, Codable { case Unbekannt case Postweg case Neuerpersonalausweis } /** * Represents a type of token.Contains information about the type of token used to create a certificate. */ public enum TokenTyp : String, Codable { case Unbekannt case Software case Stick case Karte case Ausweis } public protocol IFileMetadata { var name:String? { get set } var fullName:String? { get set } var lastAccessTime:Date? { get set } var lastAccessTimeUtc:Date? { get set } var lastWriteTime:Date? { get set } var lastWriteTimeUtc:Date? { get set } var length:Int? { get set } var userId:Int? { get set } var groupId:Int? { get set } var groupCanExecute:Bool? { get set } var groupCanWrite:Bool? { get set } var groupCanRead:Bool? { get set } var ownerCanRead:Bool? { get set } var ownerCanExecute:Bool? { get set } var ownerCanWrite:Bool? { get set } var othersCanRead:Bool? { get set } var othersCanExecute:Bool? { get set } var othersCanWrite:Bool? { get set } var extensions:[String:String]? { get set } } /** * Represent issuer details of a certificate. */ // @Api(Description="Represent issuer details of a certificate.") public class Info : Codable { /** * The name of the issuer detail. */ // @ApiMember(Description="The name of the issuer detail.") public var name:String? /** * The value of the issuer detail. */ // @ApiMember(Description="The value of the issuer detail.") public var wert:String? required public init(){} } /** * Represent a base response that encapsulate any ERiC API function return value. */ // @Api(Description="Represent a base response that encapsulate any ERiC API function return value.") public class EricFehlerCodeResponse : ServiceReponseBase { /** * The status code that the ERiC API function returns. */ // @ApiMember(Description="The status code that the ERiC API function returns.") public var statusCode:EricFehlerCode? /** * The status message that the ERiC API function returns. */ // @ApiMember(Description="The status message that the ERiC API function returns.") public var statusText:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case statusCode case statusText } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) statusCode = try container.decodeIfPresent(EricFehlerCode.self, forKey: .statusCode) statusText = try container.decodeIfPresent(String.self, forKey: .statusText) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if statusCode != nil { try container.encode(statusCode, forKey: .statusCode) } if statusText != nil { try container.encode(statusText, forKey: .statusText) } } }