import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class AddFileResponse implements IConvertible
{
    String? FileID;
    AddFileResponse({this.FileID});
    AddFileResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
    fromMap(Map<String, dynamic> json) {
        FileID = json['FileID'];
        return this;
    }
    Map<String, dynamic> toJson() => {
        'FileID': FileID
    };
    getTypeName() => "AddFileResponse";
    TypeContext? context = _ctx;
}
class AddFile implements IConvertible
{
    String? Link;
    String? BlobID;
    int? Size;
    bool? IsAttachment;
    bool? Data;
    bool? OCR;
    bool? Preview;
    String? Type;
    DateTime? DateTimeLastModified;
    int? MetricHeight;
    int? MetricWidth;
    String? DocumentID;
    String? OriginalFileName;
    AddFile({this.Link,this.BlobID,this.Size,this.IsAttachment,this.Data,this.OCR,this.Preview,this.Type,this.DateTimeLastModified,this.MetricHeight,this.MetricWidth,this.DocumentID,this.OriginalFileName});
    AddFile.fromJson(Map<String, dynamic> json) { fromMap(json); }
    fromMap(Map<String, dynamic> json) {
        Link = json['Link'];
        BlobID = json['BlobID'];
        Size = json['Size'];
        IsAttachment = json['IsAttachment'];
        Data = json['Data'];
        OCR = json['OCR'];
        Preview = json['Preview'];
        Type = json['Type'];
        DateTimeLastModified = JsonConverters.fromJson(json['DateTimeLastModified'],'DateTime',context!);
        MetricHeight = json['MetricHeight'];
        MetricWidth = json['MetricWidth'];
        DocumentID = json['DocumentID'];
        OriginalFileName = json['OriginalFileName'];
        return this;
    }
    Map<String, dynamic> toJson() => {
        'Link': Link,
        'BlobID': BlobID,
        'Size': Size,
        'IsAttachment': IsAttachment,
        'Data': Data,
        'OCR': OCR,
        'Preview': Preview,
        'Type': Type,
        'DateTimeLastModified': JsonConverters.toJson(DateTimeLastModified,'DateTime',context!),
        'MetricHeight': MetricHeight,
        'MetricWidth': MetricWidth,
        'DocumentID': DocumentID,
        'OriginalFileName': OriginalFileName
    };
    getTypeName() => "AddFile";
    TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'doapigw.baasbv.nl', types: <String, TypeInfo> {
    'AddFileResponse': TypeInfo(TypeOf.Class, create:() => AddFileResponse()),
    'AddFile': TypeInfo(TypeOf.Class, create:() => AddFile()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/AddFile HTTP/1.1 
Host: doapigw.baasbv.nl 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
	Link: String,
	BlobID: 00000000-0000-0000-0000-000000000000,
	Size: 0,
	IsAttachment: False,
	Data: False,
	OCR: False,
	Preview: False,
	Type: String,
	DateTimeLastModified: 0001-01-01,
	MetricHeight: 0,
	MetricWidth: 0,
	DocumentID: 00000000-0000-0000-0000-000000000000,
	OriginalFileName: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
	
}