| POST,OPTIONS | /v1/dispatch/track/{Token}/messages |
|---|
import 'package:servicestack/servicestack.dart';
abstract class CourierTrackActRequest
{
String? Token;
String? ActToken;
CourierTrackActRequest({this.Token,this.ActToken});
CourierTrackActRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Token = json['Token'];
ActToken = json['ActToken'];
return this;
}
Map<String, dynamic> toJson() => {
'Token': Token,
'ActToken': ActToken
};
getTypeName() => "CourierTrackActRequest";
TypeContext? context = _ctx;
}
class DispatchTrackStepView implements IConvertible
{
String? Name;
DateTime? At;
bool? Done;
bool? Current;
DispatchTrackStepView({this.Name,this.At,this.Done,this.Current});
DispatchTrackStepView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Name = json['Name'];
At = JsonConverters.fromJson(json['At'],'DateTime',context!);
Done = json['Done'];
Current = json['Current'];
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'At': JsonConverters.toJson(At,'DateTime',context!),
'Done': Done,
'Current': Current
};
getTypeName() => "DispatchTrackStepView";
TypeContext? context = _ctx;
}
class CourierTrackBusiness implements IConvertible
{
String? Name;
String? Phone;
CourierTrackBusiness({this.Name,this.Phone});
CourierTrackBusiness.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Name = json['Name'];
Phone = json['Phone'];
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'Phone': Phone
};
getTypeName() => "CourierTrackBusiness";
TypeContext? context = _ctx;
}
class CourierTrackDriver implements IConvertible
{
String? FirstName;
String? Initial;
String? Vehicle;
String? Plate;
int? EtaMin;
int? EtaPct;
CourierTrackDriver({this.FirstName,this.Initial,this.Vehicle,this.Plate,this.EtaMin,this.EtaPct});
CourierTrackDriver.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
FirstName = json['FirstName'];
Initial = json['Initial'];
Vehicle = json['Vehicle'];
Plate = json['Plate'];
EtaMin = json['EtaMin'];
EtaPct = json['EtaPct'];
return this;
}
Map<String, dynamic> toJson() => {
'FirstName': FirstName,
'Initial': Initial,
'Vehicle': Vehicle,
'Plate': Plate,
'EtaMin': EtaMin,
'EtaPct': EtaPct
};
getTypeName() => "CourierTrackDriver";
TypeContext? context = _ctx;
}
class CourierTrackProof implements IConvertible
{
String? Kind;
String? PhotoUrl;
String? AtText;
bool? GpsOk;
int? Units;
String? DamageNote;
String? DeliveredTo;
int? WaitedMin;
int? Attempts;
String? ContactedText;
bool? EachTagged;
bool? EachScanned;
CourierTrackProof({this.Kind,this.PhotoUrl,this.AtText,this.GpsOk,this.Units,this.DamageNote,this.DeliveredTo,this.WaitedMin,this.Attempts,this.ContactedText,this.EachTagged,this.EachScanned});
CourierTrackProof.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Kind = json['Kind'];
PhotoUrl = json['PhotoUrl'];
AtText = json['AtText'];
GpsOk = json['GpsOk'];
Units = json['Units'];
DamageNote = json['DamageNote'];
DeliveredTo = json['DeliveredTo'];
WaitedMin = json['WaitedMin'];
Attempts = json['Attempts'];
ContactedText = json['ContactedText'];
EachTagged = json['EachTagged'];
EachScanned = json['EachScanned'];
return this;
}
Map<String, dynamic> toJson() => {
'Kind': Kind,
'PhotoUrl': PhotoUrl,
'AtText': AtText,
'GpsOk': GpsOk,
'Units': Units,
'DamageNote': DamageNote,
'DeliveredTo': DeliveredTo,
'WaitedMin': WaitedMin,
'Attempts': Attempts,
'ContactedText': ContactedText,
'EachTagged': EachTagged,
'EachScanned': EachScanned
};
getTypeName() => "CourierTrackProof";
TypeContext? context = _ctx;
}
class CourierTrackRating implements IConvertible
{
int? Stars;
String? Tags;
double? Tip;
String? TipStatus;
CourierTrackRating({this.Stars,this.Tags,this.Tip,this.TipStatus});
CourierTrackRating.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Stars = json['Stars'];
Tags = json['Tags'];
Tip = JsonConverters.toDouble(json['Tip']);
TipStatus = json['TipStatus'];
return this;
}
Map<String, dynamic> toJson() => {
'Stars': Stars,
'Tags': Tags,
'Tip': Tip,
'TipStatus': TipStatus
};
getTypeName() => "CourierTrackRating";
TypeContext? context = _ctx;
}
class CourierTrackSlot implements IConvertible
{
String? Id;
String? Day;
String? DayEs;
String? Win;
CourierTrackSlot({this.Id,this.Day,this.DayEs,this.Win});
CourierTrackSlot.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Day = json['Day'];
DayEs = json['DayEs'];
Win = json['Win'];
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Day': Day,
'DayEs': DayEs,
'Win': Win
};
getTypeName() => "CourierTrackSlot";
TypeContext? context = _ctx;
}
class CourierTrackMissed implements IConvertible
{
String? Code;
double? Fee;
int? WaitedMin;
bool? AutoRebook;
String? RebookWindowText;
List<CourierTrackSlot>? Slots = [];
CourierTrackMissed({this.Code,this.Fee,this.WaitedMin,this.AutoRebook,this.RebookWindowText,this.Slots});
CourierTrackMissed.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Code = json['Code'];
Fee = JsonConverters.toDouble(json['Fee']);
WaitedMin = json['WaitedMin'];
AutoRebook = json['AutoRebook'];
RebookWindowText = json['RebookWindowText'];
Slots = JsonConverters.fromJson(json['Slots'],'List<CourierTrackSlot>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Code': Code,
'Fee': Fee,
'WaitedMin': WaitedMin,
'AutoRebook': AutoRebook,
'RebookWindowText': RebookWindowText,
'Slots': JsonConverters.toJson(Slots,'List<CourierTrackSlot>',context!)
};
getTypeName() => "CourierTrackMissed";
TypeContext? context = _ctx;
}
class CourierTrackCan implements IConvertible
{
bool? EditInstructions;
bool? ChangeUnits;
bool? Cancel;
bool? RescheduleDelivery;
bool? Rebook;
bool? Rate;
bool? Message;
bool? Report;
int? MaxUnits;
CourierTrackCan({this.EditInstructions,this.ChangeUnits,this.Cancel,this.RescheduleDelivery,this.Rebook,this.Rate,this.Message,this.Report,this.MaxUnits});
CourierTrackCan.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
EditInstructions = json['EditInstructions'];
ChangeUnits = json['ChangeUnits'];
Cancel = json['Cancel'];
RescheduleDelivery = json['RescheduleDelivery'];
Rebook = json['Rebook'];
Rate = json['Rate'];
Message = json['Message'];
Report = json['Report'];
MaxUnits = json['MaxUnits'];
return this;
}
Map<String, dynamic> toJson() => {
'EditInstructions': EditInstructions,
'ChangeUnits': ChangeUnits,
'Cancel': Cancel,
'RescheduleDelivery': RescheduleDelivery,
'Rebook': Rebook,
'Rate': Rate,
'Message': Message,
'Report': Report,
'MaxUnits': MaxUnits
};
getTypeName() => "CourierTrackCan";
TypeContext? context = _ctx;
}
class CourierTrackMessage implements IConvertible
{
String? Who;
bool? Mine;
bool? Office;
String? AtText;
String? Body;
CourierTrackMessage({this.Who,this.Mine,this.Office,this.AtText,this.Body});
CourierTrackMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Who = json['Who'];
Mine = json['Mine'];
Office = json['Office'];
AtText = json['AtText'];
Body = json['Body'];
return this;
}
Map<String, dynamic> toJson() => {
'Who': Who,
'Mine': Mine,
'Office': Office,
'AtText': AtText,
'Body': Body
};
getTypeName() => "CourierTrackMessage";
TypeContext? context = _ctx;
}
class CourierTrackView implements IConvertible
{
String? State;
String? Code;
String? RunCode;
String? Shape;
String? Template;
String? CourierStep;
String? UnitOne;
String? UnitMany;
String? UnitOneEs;
String? UnitManyEs;
String? FacilityNoun;
String? FacilityNounEs;
int? Units;
bool? UnitsCounted;
String? Address;
String? DropoffAddress;
String? DropoffName;
String? Instructions;
String? GateCode;
String? Handoff;
String? LevelName;
String? ReadyPromise;
String? WindowText;
bool? IsAsap;
Map<String,String?>? Times = {};
int? StopPosition;
int? StopCount;
String? DeliveryWindowText;
CourierTrackDriver? Driver;
CourierTrackProof? Proof;
String? HandoffCode;
CourierTrackRating? Rating;
bool? TipAllowed;
double? TipsPct;
CourierTrackMissed? Missed;
double? CancelFee;
double? CancelFeeCharged;
String? CancelledBy;
String? BookUrl;
CourierTrackCan? Can;
List<CourierTrackSlot>? DeliverySlots = [];
List<CourierTrackMessage>? Messages = [];
bool? MessagesOpen;
String? CaseCode;
String? CaseStatus;
String? CaseReply;
int? ThreadHrs;
DateTime? ExpiresUtc;
bool? LiveEta;
bool? Live;
DateTime? ServerUtc;
CourierTrackView({this.State,this.Code,this.RunCode,this.Shape,this.Template,this.CourierStep,this.UnitOne,this.UnitMany,this.UnitOneEs,this.UnitManyEs,this.FacilityNoun,this.FacilityNounEs,this.Units,this.UnitsCounted,this.Address,this.DropoffAddress,this.DropoffName,this.Instructions,this.GateCode,this.Handoff,this.LevelName,this.ReadyPromise,this.WindowText,this.IsAsap,this.Times,this.StopPosition,this.StopCount,this.DeliveryWindowText,this.Driver,this.Proof,this.HandoffCode,this.Rating,this.TipAllowed,this.TipsPct,this.Missed,this.CancelFee,this.CancelFeeCharged,this.CancelledBy,this.BookUrl,this.Can,this.DeliverySlots,this.Messages,this.MessagesOpen,this.CaseCode,this.CaseStatus,this.CaseReply,this.ThreadHrs,this.ExpiresUtc,this.LiveEta,this.Live,this.ServerUtc});
CourierTrackView.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
State = json['State'];
Code = json['Code'];
RunCode = json['RunCode'];
Shape = json['Shape'];
Template = json['Template'];
CourierStep = json['CourierStep'];
UnitOne = json['UnitOne'];
UnitMany = json['UnitMany'];
UnitOneEs = json['UnitOneEs'];
UnitManyEs = json['UnitManyEs'];
FacilityNoun = json['FacilityNoun'];
FacilityNounEs = json['FacilityNounEs'];
Units = json['Units'];
UnitsCounted = json['UnitsCounted'];
Address = json['Address'];
DropoffAddress = json['DropoffAddress'];
DropoffName = json['DropoffName'];
Instructions = json['Instructions'];
GateCode = json['GateCode'];
Handoff = json['Handoff'];
LevelName = json['LevelName'];
ReadyPromise = json['ReadyPromise'];
WindowText = json['WindowText'];
IsAsap = json['IsAsap'];
Times = JsonConverters.toStringMap(json['Times']);
StopPosition = json['StopPosition'];
StopCount = json['StopCount'];
DeliveryWindowText = json['DeliveryWindowText'];
Driver = JsonConverters.fromJson(json['Driver'],'CourierTrackDriver',context!);
Proof = JsonConverters.fromJson(json['Proof'],'CourierTrackProof',context!);
HandoffCode = json['HandoffCode'];
Rating = JsonConverters.fromJson(json['Rating'],'CourierTrackRating',context!);
TipAllowed = json['TipAllowed'];
TipsPct = JsonConverters.toDouble(json['TipsPct']);
Missed = JsonConverters.fromJson(json['Missed'],'CourierTrackMissed',context!);
CancelFee = JsonConverters.toDouble(json['CancelFee']);
CancelFeeCharged = JsonConverters.toDouble(json['CancelFeeCharged']);
CancelledBy = json['CancelledBy'];
BookUrl = json['BookUrl'];
Can = JsonConverters.fromJson(json['Can'],'CourierTrackCan',context!);
DeliverySlots = JsonConverters.fromJson(json['DeliverySlots'],'List<CourierTrackSlot>',context!);
Messages = JsonConverters.fromJson(json['Messages'],'List<CourierTrackMessage>',context!);
MessagesOpen = json['MessagesOpen'];
CaseCode = json['CaseCode'];
CaseStatus = json['CaseStatus'];
CaseReply = json['CaseReply'];
ThreadHrs = json['ThreadHrs'];
ExpiresUtc = JsonConverters.fromJson(json['ExpiresUtc'],'DateTime',context!);
LiveEta = json['LiveEta'];
Live = json['Live'];
ServerUtc = JsonConverters.fromJson(json['ServerUtc'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'State': State,
'Code': Code,
'RunCode': RunCode,
'Shape': Shape,
'Template': Template,
'CourierStep': CourierStep,
'UnitOne': UnitOne,
'UnitMany': UnitMany,
'UnitOneEs': UnitOneEs,
'UnitManyEs': UnitManyEs,
'FacilityNoun': FacilityNoun,
'FacilityNounEs': FacilityNounEs,
'Units': Units,
'UnitsCounted': UnitsCounted,
'Address': Address,
'DropoffAddress': DropoffAddress,
'DropoffName': DropoffName,
'Instructions': Instructions,
'GateCode': GateCode,
'Handoff': Handoff,
'LevelName': LevelName,
'ReadyPromise': ReadyPromise,
'WindowText': WindowText,
'IsAsap': IsAsap,
'Times': Times,
'StopPosition': StopPosition,
'StopCount': StopCount,
'DeliveryWindowText': DeliveryWindowText,
'Driver': JsonConverters.toJson(Driver,'CourierTrackDriver',context!),
'Proof': JsonConverters.toJson(Proof,'CourierTrackProof',context!),
'HandoffCode': HandoffCode,
'Rating': JsonConverters.toJson(Rating,'CourierTrackRating',context!),
'TipAllowed': TipAllowed,
'TipsPct': TipsPct,
'Missed': JsonConverters.toJson(Missed,'CourierTrackMissed',context!),
'CancelFee': CancelFee,
'CancelFeeCharged': CancelFeeCharged,
'CancelledBy': CancelledBy,
'BookUrl': BookUrl,
'Can': JsonConverters.toJson(Can,'CourierTrackCan',context!),
'DeliverySlots': JsonConverters.toJson(DeliverySlots,'List<CourierTrackSlot>',context!),
'Messages': JsonConverters.toJson(Messages,'List<CourierTrackMessage>',context!),
'MessagesOpen': MessagesOpen,
'CaseCode': CaseCode,
'CaseStatus': CaseStatus,
'CaseReply': CaseReply,
'ThreadHrs': ThreadHrs,
'ExpiresUtc': JsonConverters.toJson(ExpiresUtc,'DateTime',context!),
'LiveEta': LiveEta,
'Live': Live,
'ServerUtc': JsonConverters.toJson(ServerUtc,'DateTime',context!)
};
getTypeName() => "CourierTrackView";
TypeContext? context = _ctx;
}
class DispatchTrackResponse implements IConvertible
{
String? Kind;
String? Code;
String? What;
String? FromLoc;
String? ToLoc;
int? Bags;
double? Fare;
String? PayMode;
String? CardLast4;
bool? Charged;
String? Stage;
String? Headline;
String? Sub;
bool? IsClosed;
String? Eta;
String? DriverName;
String? CustomerName;
List<DispatchTrackStepView>? Steps = [];
bool? Expired;
bool? Invalid;
CourierTrackBusiness? Business;
CourierTrackView? Courier;
String? Notice;
ResponseStatus? ResponseStatus;
DispatchTrackResponse({this.Kind,this.Code,this.What,this.FromLoc,this.ToLoc,this.Bags,this.Fare,this.PayMode,this.CardLast4,this.Charged,this.Stage,this.Headline,this.Sub,this.IsClosed,this.Eta,this.DriverName,this.CustomerName,this.Steps,this.Expired,this.Invalid,this.Business,this.Courier,this.Notice,this.ResponseStatus});
DispatchTrackResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Kind = json['Kind'];
Code = json['Code'];
What = json['What'];
FromLoc = json['FromLoc'];
ToLoc = json['ToLoc'];
Bags = json['Bags'];
Fare = JsonConverters.toDouble(json['Fare']);
PayMode = json['PayMode'];
CardLast4 = json['CardLast4'];
Charged = json['Charged'];
Stage = json['Stage'];
Headline = json['Headline'];
Sub = json['Sub'];
IsClosed = json['IsClosed'];
Eta = json['Eta'];
DriverName = json['DriverName'];
CustomerName = json['CustomerName'];
Steps = JsonConverters.fromJson(json['Steps'],'List<DispatchTrackStepView>',context!);
Expired = json['Expired'];
Invalid = json['Invalid'];
Business = JsonConverters.fromJson(json['Business'],'CourierTrackBusiness',context!);
Courier = JsonConverters.fromJson(json['Courier'],'CourierTrackView',context!);
Notice = json['Notice'];
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Kind': Kind,
'Code': Code,
'What': What,
'FromLoc': FromLoc,
'ToLoc': ToLoc,
'Bags': Bags,
'Fare': Fare,
'PayMode': PayMode,
'CardLast4': CardLast4,
'Charged': Charged,
'Stage': Stage,
'Headline': Headline,
'Sub': Sub,
'IsClosed': IsClosed,
'Eta': Eta,
'DriverName': DriverName,
'CustomerName': CustomerName,
'Steps': JsonConverters.toJson(Steps,'List<DispatchTrackStepView>',context!),
'Expired': Expired,
'Invalid': Invalid,
'Business': JsonConverters.toJson(Business,'CourierTrackBusiness',context!),
'Courier': JsonConverters.toJson(Courier,'CourierTrackView',context!),
'Notice': Notice,
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "DispatchTrackResponse";
TypeContext? context = _ctx;
}
class CourierTrackMessageRequest extends CourierTrackActRequest implements IConvertible
{
String? Text;
CourierTrackMessageRequest({this.Text});
CourierTrackMessageRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Text = json['Text'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Text': Text
});
getTypeName() => "CourierTrackMessageRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'CourierTrackActRequest': TypeInfo(TypeOf.AbstractClass),
'DispatchTrackStepView': TypeInfo(TypeOf.Class, create:() => DispatchTrackStepView()),
'CourierTrackBusiness': TypeInfo(TypeOf.Class, create:() => CourierTrackBusiness()),
'CourierTrackDriver': TypeInfo(TypeOf.Class, create:() => CourierTrackDriver()),
'CourierTrackProof': TypeInfo(TypeOf.Class, create:() => CourierTrackProof()),
'CourierTrackRating': TypeInfo(TypeOf.Class, create:() => CourierTrackRating()),
'CourierTrackSlot': TypeInfo(TypeOf.Class, create:() => CourierTrackSlot()),
'CourierTrackMissed': TypeInfo(TypeOf.Class, create:() => CourierTrackMissed()),
'List<CourierTrackSlot>': TypeInfo(TypeOf.Class, create:() => <CourierTrackSlot>[]),
'CourierTrackCan': TypeInfo(TypeOf.Class, create:() => CourierTrackCan()),
'CourierTrackMessage': TypeInfo(TypeOf.Class, create:() => CourierTrackMessage()),
'CourierTrackView': TypeInfo(TypeOf.Class, create:() => CourierTrackView()),
'List<CourierTrackMessage>': TypeInfo(TypeOf.Class, create:() => <CourierTrackMessage>[]),
'DispatchTrackResponse': TypeInfo(TypeOf.Class, create:() => DispatchTrackResponse()),
'List<DispatchTrackStepView>': TypeInfo(TypeOf.Class, create:() => <DispatchTrackStepView>[]),
'CourierTrackMessageRequest': TypeInfo(TypeOf.Class, create:() => CourierTrackMessageRequest()),
});
Dart CourierTrackMessageRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/dispatch/track/{Token}/messages HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"Text":"String","Token":"String","ActToken":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"Kind":"String","Code":"String","What":"String","FromLoc":"String","ToLoc":"String","Bags":0,"Fare":0,"PayMode":"String","CardLast4":"String","Charged":false,"Stage":"String","Headline":"String","Sub":"String","IsClosed":false,"Eta":"String","DriverName":"String","CustomerName":"String","Steps":[{"Name":"String","At":"0001-01-01T00:00:00.0000000","Done":false,"Current":false}],"Expired":false,"Invalid":false,"Business":{"Name":"String","Phone":"String"},"Courier":{"State":"String","Code":"String","RunCode":"String","Shape":"String","Template":"String","CourierStep":"String","UnitOne":"String","UnitMany":"String","UnitOneEs":"String","UnitManyEs":"String","FacilityNoun":"String","FacilityNounEs":"String","Units":0,"UnitsCounted":false,"Address":"String","DropoffAddress":"String","DropoffName":"String","Instructions":"String","GateCode":"String","Handoff":"String","LevelName":"String","ReadyPromise":"String","WindowText":"String","IsAsap":false,"Times":{"String":"String"},"StopPosition":0,"StopCount":0,"DeliveryWindowText":"String","Driver":{"FirstName":"String","Initial":"String","Vehicle":"String","Plate":"String","EtaMin":0,"EtaPct":0},"Proof":{"Kind":"String","PhotoUrl":"String","AtText":"String","GpsOk":false,"Units":0,"DamageNote":"String","DeliveredTo":"String","WaitedMin":0,"Attempts":0,"ContactedText":"String","EachTagged":false,"EachScanned":false},"HandoffCode":"String","Rating":{"Stars":0,"Tags":"String","Tip":0,"TipStatus":"String"},"TipAllowed":false,"TipsPct":0,"Missed":{"Code":"String","Fee":0,"WaitedMin":0,"AutoRebook":false,"RebookWindowText":"String","Slots":[{"Id":"String","Day":"String","DayEs":"String","Win":"String"}]},"CancelFee":0,"CancelFeeCharged":0,"CancelledBy":"String","BookUrl":"String","Can":{"EditInstructions":false,"ChangeUnits":false,"Cancel":false,"RescheduleDelivery":false,"Rebook":false,"Rate":false,"Message":false,"Report":false,"MaxUnits":0},"DeliverySlots":[{"Id":"String","Day":"String","DayEs":"String","Win":"String"}],"Messages":[{"Who":"String","Mine":false,"Office":false,"AtText":"String","Body":"String"}],"MessagesOpen":false,"CaseCode":"String","CaseStatus":"String","CaseReply":"String","ThreadHrs":0,"ExpiresUtc":"0001-01-01T00:00:00.0000000","LiveEta":false,"Live":false,"ServerUtc":"0001-01-01T00:00:00.0000000"},"Notice":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}