Report Filing Service

<back to all web services

BrowseFiles

BrowseFilesSync

Represents a request to browse directories for files on the ELMA server.

Requires Authentication
The following routes are available for this service:
POST/sync/elma/files/browse
"use strict";
/** @typedef {'Upload'|'Download'} */
export var DirectoryType;
(function (DirectoryType) {
    DirectoryType["Upload"] = "Upload"
    DirectoryType["Download"] = "Download"
})(DirectoryType || (DirectoryType = {}));
export class PemCertificate {
    /** @param {{id?:string,content?:string,description?:string,tags?:string[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The unique identifier (e.g. the file name) of the certificate. */
    id;
    /**
     * @type {string}
     * @description The PEM-encoded content of the certificate. */
    content;
    /**
     * @type {string}
     * @description The description of the certificate. */
    description;
    /**
     * @type {string[]}
     * @description Tags to label or identify the certificate. */
    tags;
}
export class ElmaCredential {
    /** @param {{id?:string,certificate?:PemCertificate,authSteuernummer?:string,accountId?:string,password?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The unique identifier of this instance.  This identifer is only relevant in the context of data storage and retrieval. */
    id;
    /**
     * @type {PemCertificate}
     * @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) */
    certificate;
    /**
     * @type {string}
     * @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" */
    authSteuernummer;
    /**
     * @type {string}
     * @description The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9). */
    accountId;
    /**
     * @type {string}
     * @description The password to protect the certificate from unauthorized access. */
    password;
}
export class BrowseFilesBase {
    /** @param {{directoryType?:DirectoryType,credential?:ElmaCredential,stagingEnabled?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {DirectoryType}
     * @description The directory to browse for files. */
    directoryType;
    /**
     * @type {ElmaCredential}
     * @description The credential to gain access on the ELMA server. */
    credential;
    /**
     * @type {?boolean}
     * @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. */
    stagingEnabled;
}
export class FileMetadata {
    /** @param {{name?:string,fullName?:string,lastAccessTime?:string,lastAccessTimeUtc?:string,lastWriteTime?:string,lastWriteTimeUtc?:string,length?:number,userId?:number,groupId?:number,othersCanRead?:boolean,groupCanExecute?:boolean,groupCanWrite?:boolean,groupCanRead?:boolean,ownerCanExecute?:boolean,ownerCanWrite?:boolean,ownerCanRead?:boolean,othersCanExecute?:boolean,othersCanWrite?:boolean,extensions?:{ [index: string]: string; }}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description 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. */
    name;
    /**
     * @type {?string}
     * @description The full path of the directory or file. */
    fullName;
    /**
     * @type {string}
     * @description The time the current file or directory was last accessed. */
    lastAccessTime;
    /**
     * @type {string}
     * @description The name of the file. */
    lastAccessTimeUtc;
    /**
     * @type {string}
     * @description The time when the current file or directory was last written to. */
    lastWriteTime;
    /**
     * @type {string}
     * @description The time, in coordinated universal time (UTC), when the current file or directory was last written to. */
    lastWriteTimeUtc;
    /**
     * @type {number}
     * @description The size, in bytes, of the current file. */
    length;
    /**
     * @type {number}
     * @description The size, in bytes, of the current file. */
    userId;
    /**
     * @type {number}
     * @description The file group id. */
    groupId;
    /**
     * @type {boolean}
     * @description A value that indicates whether the others can read from this file. */
    othersCanRead;
    /**
     * @type {boolean}
     * @description A value that indicates whether the group members can execute this file. */
    groupCanExecute;
    /**
     * @type {boolean}
     * @description A value that indicates whether the group members can write into this file. */
    groupCanWrite;
    /**
     * @type {boolean}
     * @description A value that indicates whether the group members can read from this file. */
    groupCanRead;
    /**
     * @type {boolean}
     * @description A value that indicates whether the owner can execute this file. */
    ownerCanExecute;
    /**
     * @type {boolean}
     * @description A value that indicates whether the owner can write into this file. */
    ownerCanWrite;
    /**
     * @type {boolean}
     * @description A value that indicates whether the owner can read from this file. */
    ownerCanRead;
    /**
     * @type {boolean}
     * @description A value that indicates whether others can read from this file. */
    othersCanExecute;
    /**
     * @type {boolean}
     * @description A value that indicates whether others can write into this file. */
    othersCanWrite;
    /**
     * @type {{ [index: string]: string; }}
     * @description Extensions to the file attributes. */
    extensions;
}
export class BrowseResponse {
    /** @param {{files?:FileMetadata[],responseStatus?:ResponseStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {FileMetadata[]}
     * @description The files from the file browse operation. */
    files;
    /**
     * @type {ResponseStatus}
     * @description The status of the file browse operation. */
    responseStatus;
}
export class BrowseFiles extends BrowseFilesBase {
    /** @param {{directoryType?:DirectoryType,credential?:ElmaCredential,stagingEnabled?:boolean,directoryType?:DirectoryType,credential?:ElmaCredential,stagingEnabled?:boolean}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {DirectoryType}
     * @description The directory to browse for files. */
    directoryType;
    /**
     * @type {ElmaCredential}
     * @description The credential to gain access on the ELMA server. */
    credential;
    /**
     * @type {?boolean}
     * @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. */
    stagingEnabled;
}

JavaScript BrowseFiles DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /sync/elma/files/browse HTTP/1.1 
Host: reportfiling.staging.pwc.de 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<BrowseFiles xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PwC.Elmaas.Core.Services.Contracts.Requests">
  <Credential xmlns:d2p1="http://schemas.datacontract.org/2004/07/PwC.Elmaas.Core.Domain.Concretes.Models">
    <d2p1:AccountId>String</d2p1:AccountId>
    <d2p1:AuthSteuernummer>String</d2p1:AuthSteuernummer>
    <d2p1:Certificate xmlns:d3p1="http://schemas.datacontract.org/2004/07/PwC.Elmaas.Core.Domain.Contracts.Models">
      <d3p1:Content>String</d3p1:Content>
      <d3p1:Description>String</d3p1:Description>
      <d3p1:Id>String</d3p1:Id>
      <d3p1:Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>String</d4p1:string>
      </d3p1:Tags>
    </d2p1:Certificate>
    <d2p1:Password>String</d2p1:Password>
  </Credential>
  <DirectoryType>Upload</DirectoryType>
  <StagingEnabled>false</StagingEnabled>
</BrowseFiles>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<BrowseResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PwC.Elmaas.Core.Services.Contracts.Responses">
  <Files xmlns:d2p1="http://schemas.datacontract.org/2004/07/PwC.DigitalHub.Utilities.IO.Core.Concretes.Models">
    <d2p1:FileMetadata>
      <d2p1:Extensions xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </d2p1:Extensions>
      <d2p1:FullName>String</d2p1:FullName>
      <d2p1:GroupCanExecute>false</d2p1:GroupCanExecute>
      <d2p1:GroupCanRead>false</d2p1:GroupCanRead>
      <d2p1:GroupCanWrite>false</d2p1:GroupCanWrite>
      <d2p1:GroupId>0</d2p1:GroupId>
      <d2p1:LastAccessTime>0001-01-01T00:00:00</d2p1:LastAccessTime>
      <d2p1:LastAccessTimeUtc>0001-01-01T00:00:00</d2p1:LastAccessTimeUtc>
      <d2p1:LastWriteTime>0001-01-01T00:00:00</d2p1:LastWriteTime>
      <d2p1:LastWriteTimeUtc>0001-01-01T00:00:00</d2p1:LastWriteTimeUtc>
      <d2p1:Length>0</d2p1:Length>
      <d2p1:Name>String</d2p1:Name>
      <d2p1:OthersCanExecute>false</d2p1:OthersCanExecute>
      <d2p1:OthersCanRead>false</d2p1:OthersCanRead>
      <d2p1:OthersCanWrite>false</d2p1:OthersCanWrite>
      <d2p1:OwnerCanExecute>false</d2p1:OwnerCanExecute>
      <d2p1:OwnerCanRead>false</d2p1:OwnerCanRead>
      <d2p1:OwnerCanWrite>false</d2p1:OwnerCanWrite>
      <d2p1:UserId>0</d2p1:UserId>
    </d2p1:FileMetadata>
  </Files>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
</BrowseResponse>