""" Options: Date: 2024-10-18 17:20:56 Version: 6.110 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://reportfiling.staging.pwc.de #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: BrowseFilesAsync.* #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 # @Api(Description="Represents a PEM-encoded certificate.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PemCertificate: """ Represents a PEM-encoded certificate. """ # @ApiMember(Description="The unique identifier (e.g. the file name) of the certificate.", IsRequired=true, Name="Id") id: Optional[str] = None """ The unique identifier (e.g. the file name) of the certificate. """ # @ApiMember(Description="The PEM-encoded content of the certificate.", IsRequired=true, Name="Content") content: Optional[str] = None """ The PEM-encoded content of the certificate. """ # @ApiMember(Description="The description of the certificate.", Name="Description") description: Optional[str] = None """ The description of the certificate. """ # @ApiMember(Description="Tags to label or identify the certificate.", Name="Tags") tags: Optional[List[str]] = None """ Tags to label or identify the certificate. """ # @Api(Description="Represents the credentials of a user to authenticate the access of an ELMA server.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ElmaCredential(IElmaCredential): """ Represents the credentials of a user to authenticate the access of an ELMA server. """ # @ApiMember(Description="The unique identifier of this instance. This identifer is only relevant in the context of data storage and retrieval.", IsRequired=true, Name="Id") id: Optional[str] = None """ The unique identifier of this instance. This identifer is only relevant in the context of data storage and retrieval. """ # @ApiMember(Description="The security certificate to authenticate the user and grant access to the ELMA server. This certificate is generated from the BZSt-issued *.pfx BOP certificate. More details on BOP (BZSt-Online Portal - https://www.elster.de/bportal/start)", IsRequired=true, Name="Certificate") # @Required() # @StringLength(2147483647) certificate: Optional[PemCertificate] = None """ The security certificate to authenticate the user and grant access to the ELMA server. This certificate is generated from the BZSt-issued *.pfx BOP certificate. More details on BOP (BZSt-Online Portal - https://www.elster.de/bportal/start) """ # @ApiMember(Description="The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9). The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start). The number is available in the private area of the BOP user account under \"My BOP\" under the \"Registration Information\"", IsRequired=true, Name="AuthSteuernummer") # @Required() # @StringLength(11) auth_steuernummer: Optional[str] = None """ The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9). The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start). The number is available in the private area of the BOP user account under "My BOP" under the "Registration Information" """ # @ApiMember(Description="The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9).", IsRequired=true, Name="AccountId") # @Required() # @StringLength(10) account_id: Optional[str] = None """ The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9). """ # @ApiMember(Description="The password to protect the certificate from unauthorized access.", IsRequired=true, Name="Password") password: Optional[str] = None """ The password to protect the certificate from unauthorized access. """ class IAuthenticateRequest: credential: Optional[ElmaCredential] = None class IStageableRequest: staging_enabled: Optional[bool] = None class DirectoryType(str, Enum): UPLOAD = 'Upload' DOWNLOAD = 'Download' # @Api(Description="Specifies a request to browse directories for files on the ELMA server.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BrowseFilesBase(IReturn[BrowseResponse], IPost, IAuthenticateRequest, IStageableRequest): """ Specifies a request to browse directories for files on the ELMA server. """ # @ApiMember(Description="The directory to browse for files.", IsRequired=true, Name="DirectoryType") directory_type: Optional[DirectoryType] = None """ The directory to browse for files. """ # @ApiMember(Description="The credential to gain access on the ELMA server.", IsRequired=true, Name="Credential") credential: Optional[ElmaCredential] = None """ The credential to gain access on the ELMA server. """ # @ApiMember(Description="Should operations be staged on the ELMA server? true: operations are executed on the Test ELMA server. false: operations are executed on the Live (Production) ELMA server.", Name="StagingEnabled") staging_enabled: Optional[bool] = None """ Should operations be staged on the ELMA server? true: operations are executed on the Test ELMA server. false: operations are executed on the Live (Production) ELMA server. """ @staticmethod def response_type(): return BrowseResponse # @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="Name") 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.", Name="FullName") 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.", Name="LastAccessTime") 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.", Name="LastAccessTimeUtc") 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.", Name="LastAccessTime") 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.", Name="LastWriteTimeUtc") 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.", Name="Length") length: int = 0 """ The size, in bytes, of the current file. """ # @ApiMember(Description="The size, in bytes, of the current file.", Name="UserId") user_id: int = 0 """ The size, in bytes, of the current file. """ # @ApiMember(Description="The file group id.", Name="GroupId") group_id: int = 0 """ The file group id. """ # @ApiMember(Description="A value that indicates whether the others can read from this file.", Name="OthersCanRead") 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.", Name="GroupCanExecute") 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.", Name="GroupCanWrite") 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.", Name="GroupCanRead") 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.", Name="OwnerCanExecute") 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.", Name="OwnerCanWrite") 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.", Name="OthersCanRead") 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.", Name="OthersCanExecute") 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.", Name="OthersCanWrite") others_can_write: bool = False """ A value that indicates whether others can write into this file. """ # @ApiMember(Description="Extensions to the file attributes.", Name="Extensions") extensions: Optional[Dict[str, str]] = None """ Extensions to the file attributes. """ class IElmaCredential: certificate: Optional[PemCertificate] = None auth_steuernummer: Optional[str] = None account_id: Optional[str] = None password: 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="Encapsulates the results of browsing an ELMA server directory") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BrowseResponse: """ Encapsulates the results of browsing an ELMA server directory """ # @ApiMember(Description="The files from the file browse operation.", Name="Files") files: Optional[List[FileMetadata]] = None """ The files from the file browse operation. """ # @ApiMember(Description="The status of the file browse operation.", Name="ResponseStatus") response_status: Optional[ResponseStatus] = None """ The status of the file browse operation. """ # @Route("/async/elma/files/browse", "POST") # @Api(Description="Represents a request to browse directories for files on the ELMA server in an asynchronous operation.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BrowseFilesAsync(BrowseFilesBase, IReturn[BrowseResponse]): """ Represents a request to browse directories for files on the ELMA server in an asynchronous operation. """ pass