| POST | /references | Add reference | Add reference | 
|---|
import 'package:servicestack/servicestack.dart';
class ReferenceQueryResponse implements IConvertible
{
    String? CompanyId;
    String? Id;
    String? OwnerId;
    String? ReferenceType;
    int? ReferenceTypeId;
    String? ExternalData;
    DateTime? Updated;
    DateTime? Created;
    String? CreatedBy;
    String? UpdatedBy;
    ResponseStatus? ResponseStatus;
    ReferenceQueryResponse({this.CompanyId,this.Id,this.OwnerId,this.ReferenceType,this.ReferenceTypeId,this.ExternalData,this.Updated,this.Created,this.CreatedBy,this.UpdatedBy,this.ResponseStatus});
    ReferenceQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Id = json['Id'];
        OwnerId = json['OwnerId'];
        ReferenceType = json['ReferenceType'];
        ReferenceTypeId = json['ReferenceTypeId'];
        ExternalData = json['ExternalData'];
        Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!);
        Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        UpdatedBy = json['UpdatedBy'];
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }
    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Id': Id,
        'OwnerId': OwnerId,
        'ReferenceType': ReferenceType,
        'ReferenceTypeId': ReferenceTypeId,
        'ExternalData': ExternalData,
        'Updated': JsonConverters.toJson(Updated,'DateTime',context!),
        'Created': JsonConverters.toJson(Created,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'UpdatedBy': UpdatedBy,
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };
    getTypeName() => "ReferenceQueryResponse";
    TypeContext? context = _ctx;
}
class AddReference implements ICompany, IConvertible
{
    /**
    * The company id, if empty will use the company id for the user you are logged in with.
    */
    // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    String? CompanyId;
    /**
    * Internal Id of the reference. Example could be the Booking Id
    */
    // @ApiMember(Description="Internal Id of the reference. Example could be the Booking Id")
    String? OwnerId;
    /**
    * The type of reference, you can name this parameter what you like. Example could be system_bookingid where the system is the external system
    */
    // @ApiMember(Description="The type of reference, you can name this parameter what you like. Example could be system_bookingid where the system is the external system")
    String? ReferenceType;
    /**
    * External reference type id - can we fetched from /externalreferencestypes endpoint. ReferenceTypeId = 99 is other and should be used for all other types
    */
    // @ApiMember(Description="External reference type id - can we fetched from /externalreferencestypes endpoint. ReferenceTypeId = 99 is other and should be used for all other types")
    int? ReferenceTypeId;
    /**
    * The external data. Could be a Id or a JSON object or anything
    */
    // @ApiMember(Description="The external data. Could be a Id or a JSON object or anything")
    String? ExternalData;
    /**
    * Will show who created the reference.
    */
    // @ApiMember(DataType="datetime", Description="Will show who created the reference.")
    String? CreatedBy;
    AddReference({this.CompanyId,this.OwnerId,this.ReferenceType,this.ReferenceTypeId,this.ExternalData,this.CreatedBy});
    AddReference.fromJson(Map<String, dynamic> json) { fromMap(json); }
    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        OwnerId = json['OwnerId'];
        ReferenceType = json['ReferenceType'];
        ReferenceTypeId = json['ReferenceTypeId'];
        ExternalData = json['ExternalData'];
        CreatedBy = json['CreatedBy'];
        return this;
    }
    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'OwnerId': OwnerId,
        'ReferenceType': ReferenceType,
        'ReferenceTypeId': ReferenceTypeId,
        'ExternalData': ExternalData,
        'CreatedBy': CreatedBy
    };
    getTypeName() => "AddReference";
    TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: <String, TypeInfo> {
    'ReferenceQueryResponse': TypeInfo(TypeOf.Class, create:() => ReferenceQueryResponse()),
    'AddReference': TypeInfo(TypeOf.Class, create:() => AddReference()),
});
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 /references HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	ReferenceType: String,
	ReferenceTypeId: 0,
	ExternalData: String,
	CreatedBy: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
	ReferenceType: String,
	ReferenceTypeId: 0,
	ExternalData: String,
	CreatedBy: String,
	UpdatedBy: String,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}