export enum FileAccessType
{
    Public = 'Public',
    Team = 'Team',
    Private = 'Private',
}
export class FileSystemFile implements IFile
{
    public id: number;
    public fileName: string;
    public filePath: string;
    public contentType: string;
    public contentLength: number;
    // @References("typeof(MyApp.ServiceModel.FileSystemItem)")
    public fileSystemItemId: number;
    public constructor(init?: Partial<FileSystemFile>) { (Object as any).assign(this, init); }
}
export class FileSystemItem implements IFileItem
{
    public id: number;
    public fileAccessType?: FileAccessType;
    public file: FileSystemFile;
    public appUserId: string;
    public constructor(init?: Partial<FileSystemItem>) { (Object as any).assign(this, init); }
}
export class CreateFileSystemItem implements ICreateDb<FileSystemItem>, IFileItem
{
    public fileAccessType?: FileAccessType;
    public file: FileSystemFile;
    public constructor(init?: Partial<CreateFileSystemItem>) { (Object as any).assign(this, init); }
}
TypeScript CreateFileSystemItem DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /json/reply/CreateFileSystemItem HTTP/1.1 
Host: blazor-gallery.servicestack.net 
Accept: application/json
Content-Type: application/json
Content-Length: length
{"fileAccessType":"Public","file":{"id":0,"fileName":"String","filePath":"String","contentType":"String","contentLength":0,"fileSystemItemId":0}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"id":0,"fileAccessType":"Public","file":{"id":0,"fileName":"String","filePath":"String","contentType":"String","contentLength":0,"fileSystemItemId":0},"appUserId":"String"}