| GET,POST | /{ObjectId}/Workspace | ||
|---|---|---|---|
| POST | /workspace |
import 'package:servicestack/servicestack.dart';
class Location implements IConvertible
{
double? y;
double? x;
Location({this.y,this.x});
Location.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
y = JsonConverters.toDouble(json['y']);
x = JsonConverters.toDouble(json['x']);
return this;
}
Map<String, dynamic> toJson() => {
'y': y,
'x': x
};
getTypeName() => "Location";
TypeContext? context = _ctx;
}
class Address implements IConvertible
{
String? Street;
String? Unit;
String? City;
String? State;
String? Zip;
String? ContactTitle;
String? ContactName;
String? ContactPhone;
String? ContactEmail;
Location? Location;
String? SiteName;
bool? GeocodeFailed;
String? Country;
Address({this.Street,this.Unit,this.City,this.State,this.Zip,this.ContactTitle,this.ContactName,this.ContactPhone,this.ContactEmail,this.Location,this.SiteName,this.GeocodeFailed,this.Country});
Address.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Street = json['Street'];
Unit = json['Unit'];
City = json['City'];
State = json['State'];
Zip = json['Zip'];
ContactTitle = json['ContactTitle'];
ContactName = json['ContactName'];
ContactPhone = json['ContactPhone'];
ContactEmail = json['ContactEmail'];
Location = JsonConverters.fromJson(json['Location'],'Location',context!);
SiteName = json['SiteName'];
GeocodeFailed = json['GeocodeFailed'];
Country = json['Country'];
return this;
}
Map<String, dynamic> toJson() => {
'Street': Street,
'Unit': Unit,
'City': City,
'State': State,
'Zip': Zip,
'ContactTitle': ContactTitle,
'ContactName': ContactName,
'ContactPhone': ContactPhone,
'ContactEmail': ContactEmail,
'Location': JsonConverters.toJson(Location,'Location',context!),
'SiteName': SiteName,
'GeocodeFailed': GeocodeFailed,
'Country': Country
};
getTypeName() => "Address";
TypeContext? context = _ctx;
}
enum CustomFieldDataType
{
Text,
Number,
Decimal,
Money,
PhoneNumber,
Ssn,
List,
Date,
File,
Barcode,
GPS,
Photo,
Spacer,
Separator,
AutoNumber,
TextArea,
Contact,
User,
Asset,
Checkbox,
CoreAssetList,
CoreTaskList,
CoreParentTask,
CoreContactList,
ComboBox,
DateTime,
Time,
Location,
CoreLocation,
Label,
EventLog,
Address,
Catalog,
CoreTeamList,
Segment,
CoreTimeSeries,
TimeSeries,
Command,
AutoNumberNumeric,
CatalogList,
CatalogComboBox,
DateRange,
DocumentGrid,
ReportLink,
Hyperlink,
PercentComplete,
Chart,
Range,
ExternalId,
AssetCatalog,
Inventory,
CoreTaskLaborItemTypes,
CoreTaskLaborItems,
ObjectList,
CoreTimeZone,
}
class CustomField implements IConvertible
{
String? Key;
String? Label;
bool? IsActive;
bool? IsReadOnly;
bool? IsHidden;
bool? IsMandatory;
bool? DisplayOnMap;
CustomFieldDataType? CustomFieldDataType;
String? Values;
String? Prompt;
String? Default;
bool? DefaultAutoUpdate;
String? RequiredIf;
List<String>? Hidden;
List<String>? ReadOnly;
Map<String,dynamic?>? ControlArgs;
String? IndexSlot;
String? Index;
CustomField({this.Key,this.Label,this.IsActive,this.IsReadOnly,this.IsHidden,this.IsMandatory,this.DisplayOnMap,this.CustomFieldDataType,this.Values,this.Prompt,this.Default,this.DefaultAutoUpdate,this.RequiredIf,this.Hidden,this.ReadOnly,this.ControlArgs,this.IndexSlot,this.Index});
CustomField.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Key = json['Key'];
Label = json['Label'];
IsActive = json['IsActive'];
IsReadOnly = json['IsReadOnly'];
IsHidden = json['IsHidden'];
IsMandatory = json['IsMandatory'];
DisplayOnMap = json['DisplayOnMap'];
CustomFieldDataType = JsonConverters.fromJson(json['CustomFieldDataType'],'CustomFieldDataType',context!);
Values = json['Values'];
Prompt = json['Prompt'];
Default = json['Default'];
DefaultAutoUpdate = json['DefaultAutoUpdate'];
RequiredIf = json['RequiredIf'];
Hidden = JsonConverters.fromJson(json['Hidden'],'List<String>',context!);
ReadOnly = JsonConverters.fromJson(json['ReadOnly'],'List<String>',context!);
ControlArgs = JsonConverters.fromJson(json['ControlArgs'],'Map<String,dynamic?>',context!);
IndexSlot = json['IndexSlot'];
Index = json['Index'];
return this;
}
Map<String, dynamic> toJson() => {
'Key': Key,
'Label': Label,
'IsActive': IsActive,
'IsReadOnly': IsReadOnly,
'IsHidden': IsHidden,
'IsMandatory': IsMandatory,
'DisplayOnMap': DisplayOnMap,
'CustomFieldDataType': JsonConverters.toJson(CustomFieldDataType,'CustomFieldDataType',context!),
'Values': Values,
'Prompt': Prompt,
'Default': Default,
'DefaultAutoUpdate': DefaultAutoUpdate,
'RequiredIf': RequiredIf,
'Hidden': JsonConverters.toJson(Hidden,'List<String>',context!),
'ReadOnly': JsonConverters.toJson(ReadOnly,'List<String>',context!),
'ControlArgs': JsonConverters.toJson(ControlArgs,'Map<String,dynamic?>',context!),
'IndexSlot': IndexSlot,
'Index': Index
};
getTypeName() => "CustomField";
TypeContext? context = _ctx;
}
class BindingDescriptor implements IConvertible
{
String? Binding;
bool? Required;
BindingDescriptor({this.Binding,this.Required});
BindingDescriptor.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Binding = json['Binding'];
Required = json['Required'];
return this;
}
Map<String, dynamic> toJson() => {
'Binding': Binding,
'Required': Required
};
getTypeName() => "BindingDescriptor";
TypeContext? context = _ctx;
}
class TaskStatusDef implements IConvertible
{
String? Name;
String? Color;
String? Code;
String? TransitionFrom;
String? TransitionMessage;
List<String>? TransitionCustomFields;
String? HiddenIf;
bool? IsStart;
bool? IsEnd;
bool? IsBlocked;
String? StatusType;
String? ProgressType;
List<String>? AutoCreateDocuments;
bool? LockTask;
List<BindingDescriptor>? SubmittedForms;
TaskStatusDef({this.Name,this.Color,this.Code,this.TransitionFrom,this.TransitionMessage,this.TransitionCustomFields,this.HiddenIf,this.IsStart,this.IsEnd,this.IsBlocked,this.StatusType,this.ProgressType,this.AutoCreateDocuments,this.LockTask,this.SubmittedForms});
TaskStatusDef.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Name = json['Name'];
Color = json['Color'];
Code = json['Code'];
TransitionFrom = json['TransitionFrom'];
TransitionMessage = json['TransitionMessage'];
TransitionCustomFields = JsonConverters.fromJson(json['TransitionCustomFields'],'List<String>',context!);
HiddenIf = json['HiddenIf'];
IsStart = json['IsStart'];
IsEnd = json['IsEnd'];
IsBlocked = json['IsBlocked'];
StatusType = json['StatusType'];
ProgressType = json['ProgressType'];
AutoCreateDocuments = JsonConverters.fromJson(json['AutoCreateDocuments'],'List<String>',context!);
LockTask = json['LockTask'];
SubmittedForms = JsonConverters.fromJson(json['SubmittedForms'],'List<BindingDescriptor>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'Color': Color,
'Code': Code,
'TransitionFrom': TransitionFrom,
'TransitionMessage': TransitionMessage,
'TransitionCustomFields': JsonConverters.toJson(TransitionCustomFields,'List<String>',context!),
'HiddenIf': HiddenIf,
'IsStart': IsStart,
'IsEnd': IsEnd,
'IsBlocked': IsBlocked,
'StatusType': StatusType,
'ProgressType': ProgressType,
'AutoCreateDocuments': JsonConverters.toJson(AutoCreateDocuments,'List<String>',context!),
'LockTask': LockTask,
'SubmittedForms': JsonConverters.toJson(SubmittedForms,'List<BindingDescriptor>',context!)
};
getTypeName() => "TaskStatusDef";
TypeContext? context = _ctx;
}
class TaskTemplate implements IConvertible
{
List<CustomField>? CustomFields;
List<TaskStatusDef>? Statuses;
String? TaskListDetails;
String? AutoAssignStatus;
String? AutoUnassignStatus;
String? AutoScheduleStatus;
String? AutoUnscheduleStatus;
String? AutoUpdateStartStatus;
String? AutoUpdateEndStatus;
String? ArrivalStatus;
String? DepartureStatus;
bool? ConfirmArrival;
bool? ConfirmDeparture;
bool? ManualArrivalAllowed;
bool? ManualDepartureAllowed;
bool? HideDisabledStatuses;
int? GeofenceRadius;
TaskTemplate({this.CustomFields,this.Statuses,this.TaskListDetails,this.AutoAssignStatus,this.AutoUnassignStatus,this.AutoScheduleStatus,this.AutoUnscheduleStatus,this.AutoUpdateStartStatus,this.AutoUpdateEndStatus,this.ArrivalStatus,this.DepartureStatus,this.ConfirmArrival,this.ConfirmDeparture,this.ManualArrivalAllowed,this.ManualDepartureAllowed,this.HideDisabledStatuses,this.GeofenceRadius});
TaskTemplate.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
Statuses = JsonConverters.fromJson(json['Statuses'],'List<TaskStatusDef>',context!);
TaskListDetails = json['TaskListDetails'];
AutoAssignStatus = json['AutoAssignStatus'];
AutoUnassignStatus = json['AutoUnassignStatus'];
AutoScheduleStatus = json['AutoScheduleStatus'];
AutoUnscheduleStatus = json['AutoUnscheduleStatus'];
AutoUpdateStartStatus = json['AutoUpdateStartStatus'];
AutoUpdateEndStatus = json['AutoUpdateEndStatus'];
ArrivalStatus = json['ArrivalStatus'];
DepartureStatus = json['DepartureStatus'];
ConfirmArrival = json['ConfirmArrival'];
ConfirmDeparture = json['ConfirmDeparture'];
ManualArrivalAllowed = json['ManualArrivalAllowed'];
ManualDepartureAllowed = json['ManualDepartureAllowed'];
HideDisabledStatuses = json['HideDisabledStatuses'];
GeofenceRadius = json['GeofenceRadius'];
return this;
}
Map<String, dynamic> toJson() => {
'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
'Statuses': JsonConverters.toJson(Statuses,'List<TaskStatusDef>',context!),
'TaskListDetails': TaskListDetails,
'AutoAssignStatus': AutoAssignStatus,
'AutoUnassignStatus': AutoUnassignStatus,
'AutoScheduleStatus': AutoScheduleStatus,
'AutoUnscheduleStatus': AutoUnscheduleStatus,
'AutoUpdateStartStatus': AutoUpdateStartStatus,
'AutoUpdateEndStatus': AutoUpdateEndStatus,
'ArrivalStatus': ArrivalStatus,
'DepartureStatus': DepartureStatus,
'ConfirmArrival': ConfirmArrival,
'ConfirmDeparture': ConfirmDeparture,
'ManualArrivalAllowed': ManualArrivalAllowed,
'ManualDepartureAllowed': ManualDepartureAllowed,
'HideDisabledStatuses': HideDisabledStatuses,
'GeofenceRadius': GeofenceRadius
};
getTypeName() => "TaskTemplate";
TypeContext? context = _ctx;
}
class DocumentTemplateGhost implements IConvertible
{
String? Title;
bool? IsSubDoc;
String? Folder;
bool? IsFragment;
List<String>? EditTeams;
bool? HasSecondaryOwner;
bool? TaskDocument;
bool? AssetDocument;
bool? ContactDocument;
bool? UserDocument;
bool? MultipleCopies;
bool? SubmitOption;
String? Image;
List<String>? HiddenFor;
DocumentTemplateGhost({this.Title,this.IsSubDoc,this.Folder,this.IsFragment,this.EditTeams,this.HasSecondaryOwner,this.TaskDocument,this.AssetDocument,this.ContactDocument,this.UserDocument,this.MultipleCopies,this.SubmitOption,this.Image,this.HiddenFor});
DocumentTemplateGhost.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Title = json['Title'];
IsSubDoc = json['IsSubDoc'];
Folder = json['Folder'];
IsFragment = json['IsFragment'];
EditTeams = JsonConverters.fromJson(json['EditTeams'],'List<String>',context!);
HasSecondaryOwner = json['HasSecondaryOwner'];
TaskDocument = json['TaskDocument'];
AssetDocument = json['AssetDocument'];
ContactDocument = json['ContactDocument'];
UserDocument = json['UserDocument'];
MultipleCopies = json['MultipleCopies'];
SubmitOption = json['SubmitOption'];
Image = json['Image'];
HiddenFor = JsonConverters.fromJson(json['HiddenFor'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Title': Title,
'IsSubDoc': IsSubDoc,
'Folder': Folder,
'IsFragment': IsFragment,
'EditTeams': JsonConverters.toJson(EditTeams,'List<String>',context!),
'HasSecondaryOwner': HasSecondaryOwner,
'TaskDocument': TaskDocument,
'AssetDocument': AssetDocument,
'ContactDocument': ContactDocument,
'UserDocument': UserDocument,
'MultipleCopies': MultipleCopies,
'SubmitOption': SubmitOption,
'Image': Image,
'HiddenFor': JsonConverters.toJson(HiddenFor,'List<String>',context!)
};
getTypeName() => "DocumentTemplateGhost";
TypeContext? context = _ctx;
}
/**
* Represents a single asset type.
*/
class AssetType implements IConvertible
{
String? Workspace;
String? Type;
bool? IsActive;
String? Name;
String? Make;
String? Model;
String? Manuf;
String? Barcode;
String? Symbol;
String? Color;
double? LineThickness;
double? Scale;
double? VisibilityMin;
double? VisibilityMax;
bool? SyncNode;
List<CustomField>? CustomFields;
List<String>? AllowedParentTypes;
List<String>? AllowedChildTypes;
bool? UseLocationHistory;
bool? IsMobileAsset;
Map<String,String?>? Data;
String? GeomType;
bool? DocFilter;
bool? ShowRelatedDocs;
List<String>? AllowedDocTypes;
String? TLA;
bool? UseTLAOnMap;
String? RoutingLocation;
String? Fill;
double? FillOpacity;
bool? ShowAnno;
String? AnnoColor;
double? MaxAnnoVisibility;
String? AnnoFont;
bool? HideTypeLabel;
bool? UseAddress;
bool? UseFullScreen;
int? TimeSeries;
bool? IsUnselectable;
List<String>? EditTeams;
bool? IsWarehouse;
bool? IsVehicle;
Map<String,dynamic?>? CustomSymbol;
List<String>? TaskSeriesTemplates;
AssetType({this.Workspace,this.Type,this.IsActive,this.Name,this.Make,this.Model,this.Manuf,this.Barcode,this.Symbol,this.Color,this.LineThickness,this.Scale,this.VisibilityMin,this.VisibilityMax,this.SyncNode,this.CustomFields,this.AllowedParentTypes,this.AllowedChildTypes,this.UseLocationHistory,this.IsMobileAsset,this.Data,this.GeomType,this.DocFilter,this.ShowRelatedDocs,this.AllowedDocTypes,this.TLA,this.UseTLAOnMap,this.RoutingLocation,this.Fill,this.FillOpacity,this.ShowAnno,this.AnnoColor,this.MaxAnnoVisibility,this.AnnoFont,this.HideTypeLabel,this.UseAddress,this.UseFullScreen,this.TimeSeries,this.IsUnselectable,this.EditTeams,this.IsWarehouse,this.IsVehicle,this.CustomSymbol,this.TaskSeriesTemplates});
AssetType.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Workspace = json['Workspace'];
Type = json['Type'];
IsActive = json['IsActive'];
Name = json['Name'];
Make = json['Make'];
Model = json['Model'];
Manuf = json['Manuf'];
Barcode = json['Barcode'];
Symbol = json['Symbol'];
Color = json['Color'];
LineThickness = JsonConverters.toDouble(json['LineThickness']);
Scale = JsonConverters.toDouble(json['Scale']);
VisibilityMin = JsonConverters.toDouble(json['VisibilityMin']);
VisibilityMax = JsonConverters.toDouble(json['VisibilityMax']);
SyncNode = json['SyncNode'];
CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
AllowedParentTypes = JsonConverters.fromJson(json['AllowedParentTypes'],'List<String>',context!);
AllowedChildTypes = JsonConverters.fromJson(json['AllowedChildTypes'],'List<String>',context!);
UseLocationHistory = json['UseLocationHistory'];
IsMobileAsset = json['IsMobileAsset'];
Data = JsonConverters.toStringMap(json['Data']);
GeomType = json['GeomType'];
DocFilter = json['DocFilter'];
ShowRelatedDocs = json['ShowRelatedDocs'];
AllowedDocTypes = JsonConverters.fromJson(json['AllowedDocTypes'],'List<String>',context!);
TLA = json['TLA'];
UseTLAOnMap = json['UseTLAOnMap'];
RoutingLocation = json['RoutingLocation'];
Fill = json['Fill'];
FillOpacity = JsonConverters.toDouble(json['FillOpacity']);
ShowAnno = json['ShowAnno'];
AnnoColor = json['AnnoColor'];
MaxAnnoVisibility = JsonConverters.toDouble(json['MaxAnnoVisibility']);
AnnoFont = json['AnnoFont'];
HideTypeLabel = json['HideTypeLabel'];
UseAddress = json['UseAddress'];
UseFullScreen = json['UseFullScreen'];
TimeSeries = json['TimeSeries'];
IsUnselectable = json['IsUnselectable'];
EditTeams = JsonConverters.fromJson(json['EditTeams'],'List<String>',context!);
IsWarehouse = json['IsWarehouse'];
IsVehicle = json['IsVehicle'];
CustomSymbol = JsonConverters.fromJson(json['CustomSymbol'],'Map<String,dynamic?>',context!);
TaskSeriesTemplates = JsonConverters.fromJson(json['TaskSeriesTemplates'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Workspace': Workspace,
'Type': Type,
'IsActive': IsActive,
'Name': Name,
'Make': Make,
'Model': Model,
'Manuf': Manuf,
'Barcode': Barcode,
'Symbol': Symbol,
'Color': Color,
'LineThickness': LineThickness,
'Scale': Scale,
'VisibilityMin': VisibilityMin,
'VisibilityMax': VisibilityMax,
'SyncNode': SyncNode,
'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!),
'AllowedParentTypes': JsonConverters.toJson(AllowedParentTypes,'List<String>',context!),
'AllowedChildTypes': JsonConverters.toJson(AllowedChildTypes,'List<String>',context!),
'UseLocationHistory': UseLocationHistory,
'IsMobileAsset': IsMobileAsset,
'Data': Data,
'GeomType': GeomType,
'DocFilter': DocFilter,
'ShowRelatedDocs': ShowRelatedDocs,
'AllowedDocTypes': JsonConverters.toJson(AllowedDocTypes,'List<String>',context!),
'TLA': TLA,
'UseTLAOnMap': UseTLAOnMap,
'RoutingLocation': RoutingLocation,
'Fill': Fill,
'FillOpacity': FillOpacity,
'ShowAnno': ShowAnno,
'AnnoColor': AnnoColor,
'MaxAnnoVisibility': MaxAnnoVisibility,
'AnnoFont': AnnoFont,
'HideTypeLabel': HideTypeLabel,
'UseAddress': UseAddress,
'UseFullScreen': UseFullScreen,
'TimeSeries': TimeSeries,
'IsUnselectable': IsUnselectable,
'EditTeams': JsonConverters.toJson(EditTeams,'List<String>',context!),
'IsWarehouse': IsWarehouse,
'IsVehicle': IsVehicle,
'CustomSymbol': JsonConverters.toJson(CustomSymbol,'Map<String,dynamic?>',context!),
'TaskSeriesTemplates': JsonConverters.toJson(TaskSeriesTemplates,'List<String>',context!)
};
getTypeName() => "AssetType";
TypeContext? context = _ctx;
}
class CatalogType implements IConvertible
{
String? Type;
String? Name;
List<CustomField>? CustomFields;
CatalogType({this.Type,this.Name,this.CustomFields});
CatalogType.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Type = json['Type'];
Name = json['Name'];
CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomField>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Type': Type,
'Name': Name,
'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomField>',context!)
};
getTypeName() => "CatalogType";
TypeContext? context = _ctx;
}
class RequiredAsset implements IConvertible
{
int? Number;
String? Type;
RequiredAsset({this.Number,this.Type});
RequiredAsset.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Number = json['Number'];
Type = json['Type'];
return this;
}
Map<String, dynamic> toJson() => {
'Number': Number,
'Type': Type
};
getTypeName() => "RequiredAsset";
TypeContext? context = _ctx;
}
class RequiredInventoryType implements IConvertible
{
int? Number;
String? Type;
String? Name;
bool? IsSerialized;
String? Description;
RequiredInventoryType({this.Number,this.Type,this.Name,this.IsSerialized,this.Description});
RequiredInventoryType.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Number = json['Number'];
Type = json['Type'];
Name = json['Name'];
IsSerialized = json['IsSerialized'];
Description = json['Description'];
return this;
}
Map<String, dynamic> toJson() => {
'Number': Number,
'Type': Type,
'Name': Name,
'IsSerialized': IsSerialized,
'Description': Description
};
getTypeName() => "RequiredInventoryType";
TypeContext? context = _ctx;
}
class RequiredUser implements IConvertible
{
int? Number;
List<String>? SkillTags;
RequiredUser({this.Number,this.SkillTags});
RequiredUser.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Number = json['Number'];
SkillTags = JsonConverters.fromJson(json['SkillTags'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Number': Number,
'SkillTags': JsonConverters.toJson(SkillTags,'List<String>',context!)
};
getTypeName() => "RequiredUser";
TypeContext? context = _ctx;
}
class AutoCreateDocExpression implements IConvertible
{
String? Document;
String? Expression;
bool? MultipleCopies;
AutoCreateDocExpression({this.Document,this.Expression,this.MultipleCopies});
AutoCreateDocExpression.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Document = json['Document'];
Expression = json['Expression'];
MultipleCopies = json['MultipleCopies'];
return this;
}
Map<String, dynamic> toJson() => {
'Document': Document,
'Expression': Expression,
'MultipleCopies': MultipleCopies
};
getTypeName() => "AutoCreateDocExpression";
TypeContext? context = _ctx;
}
class TaskType implements IConvertible
{
String? Workspace;
String? Type;
String? Icon;
List<String>? SkillTags;
double? MinTimeToComplete;
double? AvgTimeToComplete;
double? MaxTimeToComplete;
String? Template;
bool? DocFilter;
bool? ShowRelatedDocs;
List<String>? AllowedDocTypes;
int? DefaultPriority;
bool? Inactive;
List<String>? AutoCreateDocuments;
String? PercentCompleteType;
bool? UseJobTimers;
bool? InheritAssetTeams;
bool? InheritContactTeams;
List<String>? EditTeams;
bool? UseRequired;
bool? AllowOverride;
List<RequiredAsset>? RequiredAssets;
List<RequiredInventoryType>? RequiredInventoryTypes;
List<RequiredUser>? RequiredUsers;
Map<String,dynamic?>? ActiveLaborTypes;
bool? IndividualUserStatuses;
bool? LockOption;
List<AutoCreateDocExpression>? AutoCreateDocExpressions;
bool? PTO;
TaskType({this.Workspace,this.Type,this.Icon,this.SkillTags,this.MinTimeToComplete,this.AvgTimeToComplete,this.MaxTimeToComplete,this.Template,this.DocFilter,this.ShowRelatedDocs,this.AllowedDocTypes,this.DefaultPriority,this.Inactive,this.AutoCreateDocuments,this.PercentCompleteType,this.UseJobTimers,this.InheritAssetTeams,this.InheritContactTeams,this.EditTeams,this.UseRequired,this.AllowOverride,this.RequiredAssets,this.RequiredInventoryTypes,this.RequiredUsers,this.ActiveLaborTypes,this.IndividualUserStatuses,this.LockOption,this.AutoCreateDocExpressions,this.PTO});
TaskType.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Workspace = json['Workspace'];
Type = json['Type'];
Icon = json['Icon'];
SkillTags = JsonConverters.fromJson(json['SkillTags'],'List<String>',context!);
MinTimeToComplete = JsonConverters.toDouble(json['MinTimeToComplete']);
AvgTimeToComplete = JsonConverters.toDouble(json['AvgTimeToComplete']);
MaxTimeToComplete = JsonConverters.toDouble(json['MaxTimeToComplete']);
Template = json['Template'];
DocFilter = json['DocFilter'];
ShowRelatedDocs = json['ShowRelatedDocs'];
AllowedDocTypes = JsonConverters.fromJson(json['AllowedDocTypes'],'List<String>',context!);
DefaultPriority = json['DefaultPriority'];
Inactive = json['Inactive'];
AutoCreateDocuments = JsonConverters.fromJson(json['AutoCreateDocuments'],'List<String>',context!);
PercentCompleteType = json['PercentCompleteType'];
UseJobTimers = json['UseJobTimers'];
InheritAssetTeams = json['InheritAssetTeams'];
InheritContactTeams = json['InheritContactTeams'];
EditTeams = JsonConverters.fromJson(json['EditTeams'],'List<String>',context!);
UseRequired = json['UseRequired'];
AllowOverride = json['AllowOverride'];
RequiredAssets = JsonConverters.fromJson(json['RequiredAssets'],'List<RequiredAsset>',context!);
RequiredInventoryTypes = JsonConverters.fromJson(json['RequiredInventoryTypes'],'List<RequiredInventoryType>',context!);
RequiredUsers = JsonConverters.fromJson(json['RequiredUsers'],'List<RequiredUser>',context!);
ActiveLaborTypes = JsonConverters.fromJson(json['ActiveLaborTypes'],'Map<String,dynamic?>',context!);
IndividualUserStatuses = json['IndividualUserStatuses'];
LockOption = json['LockOption'];
AutoCreateDocExpressions = JsonConverters.fromJson(json['AutoCreateDocExpressions'],'List<AutoCreateDocExpression>',context!);
PTO = json['PTO'];
return this;
}
Map<String, dynamic> toJson() => {
'Workspace': Workspace,
'Type': Type,
'Icon': Icon,
'SkillTags': JsonConverters.toJson(SkillTags,'List<String>',context!),
'MinTimeToComplete': MinTimeToComplete,
'AvgTimeToComplete': AvgTimeToComplete,
'MaxTimeToComplete': MaxTimeToComplete,
'Template': Template,
'DocFilter': DocFilter,
'ShowRelatedDocs': ShowRelatedDocs,
'AllowedDocTypes': JsonConverters.toJson(AllowedDocTypes,'List<String>',context!),
'DefaultPriority': DefaultPriority,
'Inactive': Inactive,
'AutoCreateDocuments': JsonConverters.toJson(AutoCreateDocuments,'List<String>',context!),
'PercentCompleteType': PercentCompleteType,
'UseJobTimers': UseJobTimers,
'InheritAssetTeams': InheritAssetTeams,
'InheritContactTeams': InheritContactTeams,
'EditTeams': JsonConverters.toJson(EditTeams,'List<String>',context!),
'UseRequired': UseRequired,
'AllowOverride': AllowOverride,
'RequiredAssets': JsonConverters.toJson(RequiredAssets,'List<RequiredAsset>',context!),
'RequiredInventoryTypes': JsonConverters.toJson(RequiredInventoryTypes,'List<RequiredInventoryType>',context!),
'RequiredUsers': JsonConverters.toJson(RequiredUsers,'List<RequiredUser>',context!),
'ActiveLaborTypes': JsonConverters.toJson(ActiveLaborTypes,'Map<String,dynamic?>',context!),
'IndividualUserStatuses': IndividualUserStatuses,
'LockOption': LockOption,
'AutoCreateDocExpressions': JsonConverters.toJson(AutoCreateDocExpressions,'List<AutoCreateDocExpression>',context!),
'PTO': PTO
};
getTypeName() => "TaskType";
TypeContext? context = _ctx;
}
class WorkDay implements IConvertible
{
int? DayOfWeek;
int? Start;
int? End;
int? Lunch;
WorkDay({this.DayOfWeek,this.Start,this.End,this.Lunch});
WorkDay.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DayOfWeek = json['DayOfWeek'];
Start = json['Start'];
End = json['End'];
Lunch = json['Lunch'];
return this;
}
Map<String, dynamic> toJson() => {
'DayOfWeek': DayOfWeek,
'Start': Start,
'End': End,
'Lunch': Lunch
};
getTypeName() => "WorkDay";
TypeContext? context = _ctx;
}
class WorkspaceImage implements IConvertible
{
String? Category;
String? ObjectId;
WorkspaceImage({this.Category,this.ObjectId});
WorkspaceImage.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Category = json['Category'];
ObjectId = json['ObjectId'];
return this;
}
Map<String, dynamic> toJson() => {
'Category': Category,
'ObjectId': ObjectId
};
getTypeName() => "WorkspaceImage";
TypeContext? context = _ctx;
}
class CustomReport implements IConvertible
{
String? ObjectId;
String? Name;
List<CustomField>? Inputs;
CustomReport({this.ObjectId,this.Name,this.Inputs});
CustomReport.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ObjectId = json['ObjectId'];
Name = json['Name'];
Inputs = JsonConverters.fromJson(json['Inputs'],'List<CustomField>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ObjectId': ObjectId,
'Name': Name,
'Inputs': JsonConverters.toJson(Inputs,'List<CustomField>',context!)
};
getTypeName() => "CustomReport";
TypeContext? context = _ctx;
}
class ClientBacklogSortItem implements IConvertible
{
String? Key;
String? Label;
String? Sort;
String? Compare;
ClientBacklogSortItem({this.Key,this.Label,this.Sort,this.Compare});
ClientBacklogSortItem.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Key = json['Key'];
Label = json['Label'];
Sort = json['Sort'];
Compare = json['Compare'];
return this;
}
Map<String, dynamic> toJson() => {
'Key': Key,
'Label': Label,
'Sort': Sort,
'Compare': Compare
};
getTypeName() => "ClientBacklogSortItem";
TypeContext? context = _ctx;
}
class GridItem implements IConvertible
{
String? Binding;
String? Heading;
int? Width;
GridItem({this.Binding,this.Heading,this.Width});
GridItem.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Binding = json['Binding'];
Heading = json['Heading'];
Width = json['Width'];
return this;
}
Map<String, dynamic> toJson() => {
'Binding': Binding,
'Heading': Heading,
'Width': Width
};
getTypeName() => "GridItem";
TypeContext? context = _ctx;
}
class ScheduleGridConfiguration implements IConvertible
{
List<GridItem>? Grid;
ScheduleGridConfiguration({this.Grid});
ScheduleGridConfiguration.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Grid = JsonConverters.fromJson(json['Grid'],'List<GridItem>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Grid': JsonConverters.toJson(Grid,'List<GridItem>',context!)
};
getTypeName() => "ScheduleGridConfiguration";
TypeContext? context = _ctx;
}
/**
* Represents a grouping of users and their tasks. These dtos allow transfer of that data from the client to the server and vice versa.The WorkWeek property is sorted by DayofWeek.If the 'exportemail' argument is called i.e. (/workspace/?exportemail=test@test.com, this emails a .csv export of the workspace to the specified email address.
*/
class Workspace implements IConvertible
{
String? ObjectId;
String? VersionId;
String? BasedOn;
String? Name;
DateTime? LastUpdated;
bool? PaymentRequired;
String? CompanyName;
String? CompanyLogoUri;
String? CompanySupportUrl;
String? CompanySupportEmail;
String? AdminEmail;
Address? CompanyAddress;
String? TaskTitle;
String? TasksTitle;
String? TeamTitle;
String? TeamsTitle;
String? UserTitle;
String? UsersTitle;
String? ContactTitle;
String? ContactsTitle;
String? SalesforceElementId;
String? ScheduleTitle;
String? SchedulesTitle;
String? FormTitle;
String? FormsTitle;
String? PoiTitle;
String? PoisTitle;
String? AssetMakeTitle;
String? AssetModelTitle;
String? AssetManufacturerTitle;
String? AssetBarcodeTitle;
String? AssetAncestorsTitle;
String? AssetWarehouseTitle;
String? AssetWarehousesTitle;
String? AssetVehicleTitle;
String? AssetVehiclesTitle;
bool? UseTeamMaps;
bool? UseContacts;
bool? UseAssets;
bool? ShouldRunIntegrations;
Map<String,TaskTemplate?>? TaskTemplates;
String? FormTemplates;
Map<String,DocumentTemplateGhost?>? DocTemplateGhosts;
Map<String,AssetType?>? AssetTypes;
List<CatalogType>? CatalogTypes;
List<TaskType>? TaskTypes;
List<WorkDay>? WorkWeek;
double? SalesTaxRate;
List<String>? SkillTags;
String? TimeZoneId;
String? IANATimeZoneId;
String? Country;
int? StopTime;
int? StopDistance;
double? SpeedingSpeed;
int? SpeedingDuration;
String? ContactIcon;
bool? UseOnSiteContact;
bool? UseServiceAddresses;
bool? UseSharedWorkspaces;
bool? IsMetric;
List<int>? BreakLength;
List<String>? PriorityNames;
String? PriorityDefault;
bool? IsFinanceIntegrationEnabled;
bool? IsCRMIntegrationEnabled;
bool? IsBoxIntegrationEnabled;
bool? IsDropboxIntegrationEnabled;
bool? IsGoogleDriveIntegrationEnabled;
bool? IsEsriIntegrationEnabled;
bool? IsPaycomIntegrationEnabled;
bool? IsP21IntegrationEnabled;
List<WorkspaceImage>? Images;
List<CustomField>? ContactCustomFields;
List<CustomField>? UserCustomFields;
List<CustomField>? TeamCustomFields;
bool? UseAssetMaintenanceHistory;
bool? UseAssetSchedules;
bool? UseTaskAssets;
bool? UseSchedules;
bool? UseTasks;
bool? AssetsReadOnly;
double? AssetVisibilityMax;
double? ContactVisibilityMax;
double? TaskVisibilityMax;
bool? AutoScanAndTrackAsset;
bool? BarcodeTrackAsset;
bool? GPSTrackAsset;
List<CustomReport>? CustomReports;
bool? ShowRelatedContactDocs;
bool? ShowRelatedAssetDocs;
bool? RequireAssetName;
bool? ShowRelatedTaskDocs;
List<ClientBacklogSortItem>? ClientBacklogSort;
bool? AutoAssignJobOnDriving;
bool? AutoAssignJobOnSite;
bool? AutoAssignJobOnComplete;
bool? AutoUnassignJobOnNotStarted;
bool? AutoScheduleJobOnDriving;
bool? AutoScheduleJobOnComplete;
bool? AutoScheduleJobOnSite;
bool? AutoUnscheduleJobOnNotStarted;
bool? AutoUpdateJobStartTimeOnSite;
bool? AutoUpdateJobEndTimeOnComplete;
String? AutoAssignNewTasksTo;
bool? UseIntegrationEmail;
bool? UseTaskTarget;
bool? UseTaskDue;
bool? UseTaskPri;
bool? UseTaskAddr;
String? TaskListDetails;
bool? AutocreateTaskStatusEvents;
bool? AutocreateTaskAssignmentEvents;
bool? FilterContactsByTeam;
bool? FilterUsersAndTeamsByTeam;
bool? AutoUpdateTaskContactChanged;
bool? AutoAssignTeamsOnTaskCreate;
bool? HtmlEmailIncludeTaskName;
bool? HtmlEmailIncludeUsers;
bool? HtmlEmailIncludeDateCreated;
bool? HtmlEmailIncludeDateLastUpdated;
String? ClientStartupView;
int? ClientAutoSyncInterval;
int? MobileTaskRangePast;
int? MobileTaskRangeFuture;
bool? ClientShowScheduledTasks;
bool? ClientShowMyTasksOnly;
bool? ClientShowBacklogTasks;
bool? ClientHideCompleteTasks;
String? ClientMapType;
String? ClientGPSAccuracy;
bool? ClientShowTaskIconsOnMap;
bool? ClientMapLayerScheduledTasks;
bool? ClientMapLayerBacklog;
bool? ClientMapLayerAssets;
bool? ClientMapLayerContacts;
bool? ClientMapLayerTracks;
bool? ClientMapLayerStops;
bool? ClientMapLayerSpeeding;
String? ClientMapStartLocation;
Map<String,int?>? SecurityDict;
String? ContactSearchResultExpression;
bool? LandscapePhotos;
bool? LogApiTraffic;
bool? UseDueDate;
bool? UsePriority;
List<String>? ScheduleTimeZones;
bool? UseTimezones;
String? TaskListSummaryExpression1;
String? TaskListSummaryExpression2;
bool? ShowScheduleButton;
bool? ShowScheduleGrid;
List<CustomField>? ScheduleCustomFields;
ScheduleGridConfiguration? ScheduleGridConfig;
bool? SaveOnPhoto;
bool? CleanseGeocodes;
String? GeocodeQuality;
String? RetainCustomerDatabase;
String? RetainAssetDatabase;
bool? ShowDriveTimes;
double? LocAccFilter;
bool? AutoCreateRoutesFromAssignedTasks;
String? TaskNameExpression;
bool? UseAddressCountry;
bool? MessageAppEnabled;
List<String>? GisLayers;
bool? AllowStatusDoubleClick;
bool? UseTimecard;
List<String>? TimecardCategories;
bool? UseLocalAdminUsers;
bool? UseInventory;
int? ClientScheduledTaskSort;
List<String>? LaborPricingHierarchy;
bool? UseLabor;
bool? LaborHourFormat;
bool? TfaEnabled;
bool? TaskNameExpressionAutoUpdate;
bool? AutocreateInitialTaskStatusEvent;
int? InactivityTimer;
int? OfflineAuthTimer;
Map<String,int?>? Sequences;
String? OverrideEmail;
String? OverrideSms;
String? PortalImageUrl;
String? PortalImageId;
bool? SecureImageService;
bool? SuppressAssetTeamCascading;
bool? MilitaryTime;
bool? SecureHookService;
bool? ShowDashboard;
bool? DefaultBusinessHours;
Map<String,bool?>? ForceSso;
bool? SuppressSsoAccountCreation;
bool? UseAdvancedScheduler;
bool? EnableUnsavedChangesPrompt;
bool? ReturnInactiveWorkspace;
String? CustomerSupportEmail;
String? CustomerSupportPhoneNumber;
bool? ShowColorCode;
Workspace({this.ObjectId,this.VersionId,this.BasedOn,this.Name,this.LastUpdated,this.PaymentRequired,this.CompanyName,this.CompanyLogoUri,this.CompanySupportUrl,this.CompanySupportEmail,this.AdminEmail,this.CompanyAddress,this.TaskTitle,this.TasksTitle,this.TeamTitle,this.TeamsTitle,this.UserTitle,this.UsersTitle,this.ContactTitle,this.ContactsTitle,this.SalesforceElementId,this.ScheduleTitle,this.SchedulesTitle,this.FormTitle,this.FormsTitle,this.PoiTitle,this.PoisTitle,this.AssetMakeTitle,this.AssetModelTitle,this.AssetManufacturerTitle,this.AssetBarcodeTitle,this.AssetAncestorsTitle,this.AssetWarehouseTitle,this.AssetWarehousesTitle,this.AssetVehicleTitle,this.AssetVehiclesTitle,this.UseTeamMaps,this.UseContacts,this.UseAssets,this.ShouldRunIntegrations,this.TaskTemplates,this.FormTemplates,this.DocTemplateGhosts,this.AssetTypes,this.CatalogTypes,this.TaskTypes,this.WorkWeek,this.SalesTaxRate,this.SkillTags,this.TimeZoneId,this.IANATimeZoneId,this.Country,this.StopTime,this.StopDistance,this.SpeedingSpeed,this.SpeedingDuration,this.ContactIcon,this.UseOnSiteContact,this.UseServiceAddresses,this.UseSharedWorkspaces,this.IsMetric,this.BreakLength,this.PriorityNames,this.PriorityDefault,this.IsFinanceIntegrationEnabled,this.IsCRMIntegrationEnabled,this.IsBoxIntegrationEnabled,this.IsDropboxIntegrationEnabled,this.IsGoogleDriveIntegrationEnabled,this.IsEsriIntegrationEnabled,this.IsPaycomIntegrationEnabled,this.IsP21IntegrationEnabled,this.Images,this.ContactCustomFields,this.UserCustomFields,this.TeamCustomFields,this.UseAssetMaintenanceHistory,this.UseAssetSchedules,this.UseTaskAssets,this.UseSchedules,this.UseTasks,this.AssetsReadOnly,this.AssetVisibilityMax,this.ContactVisibilityMax,this.TaskVisibilityMax,this.AutoScanAndTrackAsset,this.BarcodeTrackAsset,this.GPSTrackAsset,this.CustomReports,this.ShowRelatedContactDocs,this.ShowRelatedAssetDocs,this.RequireAssetName,this.ShowRelatedTaskDocs,this.ClientBacklogSort,this.AutoAssignJobOnDriving,this.AutoAssignJobOnSite,this.AutoAssignJobOnComplete,this.AutoUnassignJobOnNotStarted,this.AutoScheduleJobOnDriving,this.AutoScheduleJobOnComplete,this.AutoScheduleJobOnSite,this.AutoUnscheduleJobOnNotStarted,this.AutoUpdateJobStartTimeOnSite,this.AutoUpdateJobEndTimeOnComplete,this.AutoAssignNewTasksTo,this.UseIntegrationEmail,this.UseTaskTarget,this.UseTaskDue,this.UseTaskPri,this.UseTaskAddr,this.TaskListDetails,this.AutocreateTaskStatusEvents,this.AutocreateTaskAssignmentEvents,this.FilterContactsByTeam,this.FilterUsersAndTeamsByTeam,this.AutoUpdateTaskContactChanged,this.AutoAssignTeamsOnTaskCreate,this.HtmlEmailIncludeTaskName,this.HtmlEmailIncludeUsers,this.HtmlEmailIncludeDateCreated,this.HtmlEmailIncludeDateLastUpdated,this.ClientStartupView,this.ClientAutoSyncInterval,this.MobileTaskRangePast,this.MobileTaskRangeFuture,this.ClientShowScheduledTasks,this.ClientShowMyTasksOnly,this.ClientShowBacklogTasks,this.ClientHideCompleteTasks,this.ClientMapType,this.ClientGPSAccuracy,this.ClientShowTaskIconsOnMap,this.ClientMapLayerScheduledTasks,this.ClientMapLayerBacklog,this.ClientMapLayerAssets,this.ClientMapLayerContacts,this.ClientMapLayerTracks,this.ClientMapLayerStops,this.ClientMapLayerSpeeding,this.ClientMapStartLocation,this.SecurityDict,this.ContactSearchResultExpression,this.LandscapePhotos,this.LogApiTraffic,this.UseDueDate,this.UsePriority,this.ScheduleTimeZones,this.UseTimezones,this.TaskListSummaryExpression1,this.TaskListSummaryExpression2,this.ShowScheduleButton,this.ShowScheduleGrid,this.ScheduleCustomFields,this.ScheduleGridConfig,this.SaveOnPhoto,this.CleanseGeocodes,this.GeocodeQuality,this.RetainCustomerDatabase,this.RetainAssetDatabase,this.ShowDriveTimes,this.LocAccFilter,this.AutoCreateRoutesFromAssignedTasks,this.TaskNameExpression,this.UseAddressCountry,this.MessageAppEnabled,this.GisLayers,this.AllowStatusDoubleClick,this.UseTimecard,this.TimecardCategories,this.UseLocalAdminUsers,this.UseInventory,this.ClientScheduledTaskSort,this.LaborPricingHierarchy,this.UseLabor,this.LaborHourFormat,this.TfaEnabled,this.TaskNameExpressionAutoUpdate,this.AutocreateInitialTaskStatusEvent,this.InactivityTimer,this.OfflineAuthTimer,this.Sequences,this.OverrideEmail,this.OverrideSms,this.PortalImageUrl,this.PortalImageId,this.SecureImageService,this.SuppressAssetTeamCascading,this.MilitaryTime,this.SecureHookService,this.ShowDashboard,this.DefaultBusinessHours,this.ForceSso,this.SuppressSsoAccountCreation,this.UseAdvancedScheduler,this.EnableUnsavedChangesPrompt,this.ReturnInactiveWorkspace,this.CustomerSupportEmail,this.CustomerSupportPhoneNumber,this.ShowColorCode});
Workspace.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ObjectId = json['ObjectId'];
VersionId = json['VersionId'];
BasedOn = json['BasedOn'];
Name = json['Name'];
LastUpdated = JsonConverters.fromJson(json['LastUpdated'],'DateTime',context!);
PaymentRequired = json['PaymentRequired'];
CompanyName = json['CompanyName'];
CompanyLogoUri = json['CompanyLogoUri'];
CompanySupportUrl = json['CompanySupportUrl'];
CompanySupportEmail = json['CompanySupportEmail'];
AdminEmail = json['AdminEmail'];
CompanyAddress = JsonConverters.fromJson(json['CompanyAddress'],'Address',context!);
TaskTitle = json['TaskTitle'];
TasksTitle = json['TasksTitle'];
TeamTitle = json['TeamTitle'];
TeamsTitle = json['TeamsTitle'];
UserTitle = json['UserTitle'];
UsersTitle = json['UsersTitle'];
ContactTitle = json['ContactTitle'];
ContactsTitle = json['ContactsTitle'];
SalesforceElementId = json['SalesforceElementId'];
ScheduleTitle = json['ScheduleTitle'];
SchedulesTitle = json['SchedulesTitle'];
FormTitle = json['FormTitle'];
FormsTitle = json['FormsTitle'];
PoiTitle = json['PoiTitle'];
PoisTitle = json['PoisTitle'];
AssetMakeTitle = json['AssetMakeTitle'];
AssetModelTitle = json['AssetModelTitle'];
AssetManufacturerTitle = json['AssetManufacturerTitle'];
AssetBarcodeTitle = json['AssetBarcodeTitle'];
AssetAncestorsTitle = json['AssetAncestorsTitle'];
AssetWarehouseTitle = json['AssetWarehouseTitle'];
AssetWarehousesTitle = json['AssetWarehousesTitle'];
AssetVehicleTitle = json['AssetVehicleTitle'];
AssetVehiclesTitle = json['AssetVehiclesTitle'];
UseTeamMaps = json['UseTeamMaps'];
UseContacts = json['UseContacts'];
UseAssets = json['UseAssets'];
ShouldRunIntegrations = json['ShouldRunIntegrations'];
TaskTemplates = JsonConverters.fromJson(json['TaskTemplates'],'Map<String,TaskTemplate?>',context!);
FormTemplates = json['FormTemplates'];
DocTemplateGhosts = JsonConverters.fromJson(json['DocTemplateGhosts'],'Map<String,DocumentTemplateGhost?>',context!);
AssetTypes = JsonConverters.fromJson(json['AssetTypes'],'Map<String,AssetType?>',context!);
CatalogTypes = JsonConverters.fromJson(json['CatalogTypes'],'List<CatalogType>',context!);
TaskTypes = JsonConverters.fromJson(json['TaskTypes'],'List<TaskType>',context!);
WorkWeek = JsonConverters.fromJson(json['WorkWeek'],'List<WorkDay>',context!);
SalesTaxRate = JsonConverters.toDouble(json['SalesTaxRate']);
SkillTags = JsonConverters.fromJson(json['SkillTags'],'List<String>',context!);
TimeZoneId = json['TimeZoneId'];
IANATimeZoneId = json['IANATimeZoneId'];
Country = json['Country'];
StopTime = json['StopTime'];
StopDistance = json['StopDistance'];
SpeedingSpeed = JsonConverters.toDouble(json['SpeedingSpeed']);
SpeedingDuration = json['SpeedingDuration'];
ContactIcon = json['ContactIcon'];
UseOnSiteContact = json['UseOnSiteContact'];
UseServiceAddresses = json['UseServiceAddresses'];
UseSharedWorkspaces = json['UseSharedWorkspaces'];
IsMetric = json['IsMetric'];
BreakLength = JsonConverters.fromJson(json['BreakLength'],'List<int>',context!);
PriorityNames = JsonConverters.fromJson(json['PriorityNames'],'List<String>',context!);
PriorityDefault = json['PriorityDefault'];
IsFinanceIntegrationEnabled = json['IsFinanceIntegrationEnabled'];
IsCRMIntegrationEnabled = json['IsCRMIntegrationEnabled'];
IsBoxIntegrationEnabled = json['IsBoxIntegrationEnabled'];
IsDropboxIntegrationEnabled = json['IsDropboxIntegrationEnabled'];
IsGoogleDriveIntegrationEnabled = json['IsGoogleDriveIntegrationEnabled'];
IsEsriIntegrationEnabled = json['IsEsriIntegrationEnabled'];
IsPaycomIntegrationEnabled = json['IsPaycomIntegrationEnabled'];
IsP21IntegrationEnabled = json['IsP21IntegrationEnabled'];
Images = JsonConverters.fromJson(json['Images'],'List<WorkspaceImage>',context!);
ContactCustomFields = JsonConverters.fromJson(json['ContactCustomFields'],'List<CustomField>',context!);
UserCustomFields = JsonConverters.fromJson(json['UserCustomFields'],'List<CustomField>',context!);
TeamCustomFields = JsonConverters.fromJson(json['TeamCustomFields'],'List<CustomField>',context!);
UseAssetMaintenanceHistory = json['UseAssetMaintenanceHistory'];
UseAssetSchedules = json['UseAssetSchedules'];
UseTaskAssets = json['UseTaskAssets'];
UseSchedules = json['UseSchedules'];
UseTasks = json['UseTasks'];
AssetsReadOnly = json['AssetsReadOnly'];
AssetVisibilityMax = JsonConverters.toDouble(json['AssetVisibilityMax']);
ContactVisibilityMax = JsonConverters.toDouble(json['ContactVisibilityMax']);
TaskVisibilityMax = JsonConverters.toDouble(json['TaskVisibilityMax']);
AutoScanAndTrackAsset = json['AutoScanAndTrackAsset'];
BarcodeTrackAsset = json['BarcodeTrackAsset'];
GPSTrackAsset = json['GPSTrackAsset'];
CustomReports = JsonConverters.fromJson(json['CustomReports'],'List<CustomReport>',context!);
ShowRelatedContactDocs = json['ShowRelatedContactDocs'];
ShowRelatedAssetDocs = json['ShowRelatedAssetDocs'];
RequireAssetName = json['RequireAssetName'];
ShowRelatedTaskDocs = json['ShowRelatedTaskDocs'];
ClientBacklogSort = JsonConverters.fromJson(json['ClientBacklogSort'],'List<ClientBacklogSortItem>',context!);
AutoAssignJobOnDriving = json['AutoAssignJobOnDriving'];
AutoAssignJobOnSite = json['AutoAssignJobOnSite'];
AutoAssignJobOnComplete = json['AutoAssignJobOnComplete'];
AutoUnassignJobOnNotStarted = json['AutoUnassignJobOnNotStarted'];
AutoScheduleJobOnDriving = json['AutoScheduleJobOnDriving'];
AutoScheduleJobOnComplete = json['AutoScheduleJobOnComplete'];
AutoScheduleJobOnSite = json['AutoScheduleJobOnSite'];
AutoUnscheduleJobOnNotStarted = json['AutoUnscheduleJobOnNotStarted'];
AutoUpdateJobStartTimeOnSite = json['AutoUpdateJobStartTimeOnSite'];
AutoUpdateJobEndTimeOnComplete = json['AutoUpdateJobEndTimeOnComplete'];
AutoAssignNewTasksTo = json['AutoAssignNewTasksTo'];
UseIntegrationEmail = json['UseIntegrationEmail'];
UseTaskTarget = json['UseTaskTarget'];
UseTaskDue = json['UseTaskDue'];
UseTaskPri = json['UseTaskPri'];
UseTaskAddr = json['UseTaskAddr'];
TaskListDetails = json['TaskListDetails'];
AutocreateTaskStatusEvents = json['AutocreateTaskStatusEvents'];
AutocreateTaskAssignmentEvents = json['AutocreateTaskAssignmentEvents'];
FilterContactsByTeam = json['FilterContactsByTeam'];
FilterUsersAndTeamsByTeam = json['FilterUsersAndTeamsByTeam'];
AutoUpdateTaskContactChanged = json['AutoUpdateTaskContactChanged'];
AutoAssignTeamsOnTaskCreate = json['AutoAssignTeamsOnTaskCreate'];
HtmlEmailIncludeTaskName = json['HtmlEmailIncludeTaskName'];
HtmlEmailIncludeUsers = json['HtmlEmailIncludeUsers'];
HtmlEmailIncludeDateCreated = json['HtmlEmailIncludeDateCreated'];
HtmlEmailIncludeDateLastUpdated = json['HtmlEmailIncludeDateLastUpdated'];
ClientStartupView = json['ClientStartupView'];
ClientAutoSyncInterval = json['ClientAutoSyncInterval'];
MobileTaskRangePast = json['MobileTaskRangePast'];
MobileTaskRangeFuture = json['MobileTaskRangeFuture'];
ClientShowScheduledTasks = json['ClientShowScheduledTasks'];
ClientShowMyTasksOnly = json['ClientShowMyTasksOnly'];
ClientShowBacklogTasks = json['ClientShowBacklogTasks'];
ClientHideCompleteTasks = json['ClientHideCompleteTasks'];
ClientMapType = json['ClientMapType'];
ClientGPSAccuracy = json['ClientGPSAccuracy'];
ClientShowTaskIconsOnMap = json['ClientShowTaskIconsOnMap'];
ClientMapLayerScheduledTasks = json['ClientMapLayerScheduledTasks'];
ClientMapLayerBacklog = json['ClientMapLayerBacklog'];
ClientMapLayerAssets = json['ClientMapLayerAssets'];
ClientMapLayerContacts = json['ClientMapLayerContacts'];
ClientMapLayerTracks = json['ClientMapLayerTracks'];
ClientMapLayerStops = json['ClientMapLayerStops'];
ClientMapLayerSpeeding = json['ClientMapLayerSpeeding'];
ClientMapStartLocation = json['ClientMapStartLocation'];
SecurityDict = JsonConverters.fromJson(json['SecurityDict'],'Map<String,int?>',context!);
ContactSearchResultExpression = json['ContactSearchResultExpression'];
LandscapePhotos = json['LandscapePhotos'];
LogApiTraffic = json['LogApiTraffic'];
UseDueDate = json['UseDueDate'];
UsePriority = json['UsePriority'];
ScheduleTimeZones = JsonConverters.fromJson(json['ScheduleTimeZones'],'List<String>',context!);
UseTimezones = json['UseTimezones'];
TaskListSummaryExpression1 = json['TaskListSummaryExpression1'];
TaskListSummaryExpression2 = json['TaskListSummaryExpression2'];
ShowScheduleButton = json['ShowScheduleButton'];
ShowScheduleGrid = json['ShowScheduleGrid'];
ScheduleCustomFields = JsonConverters.fromJson(json['ScheduleCustomFields'],'List<CustomField>',context!);
ScheduleGridConfig = JsonConverters.fromJson(json['ScheduleGridConfig'],'ScheduleGridConfiguration',context!);
SaveOnPhoto = json['SaveOnPhoto'];
CleanseGeocodes = json['CleanseGeocodes'];
GeocodeQuality = json['GeocodeQuality'];
RetainCustomerDatabase = json['RetainCustomerDatabase'];
RetainAssetDatabase = json['RetainAssetDatabase'];
ShowDriveTimes = json['ShowDriveTimes'];
LocAccFilter = JsonConverters.toDouble(json['LocAccFilter']);
AutoCreateRoutesFromAssignedTasks = json['AutoCreateRoutesFromAssignedTasks'];
TaskNameExpression = json['TaskNameExpression'];
UseAddressCountry = json['UseAddressCountry'];
MessageAppEnabled = json['MessageAppEnabled'];
GisLayers = JsonConverters.fromJson(json['GisLayers'],'List<String>',context!);
AllowStatusDoubleClick = json['AllowStatusDoubleClick'];
UseTimecard = json['UseTimecard'];
TimecardCategories = JsonConverters.fromJson(json['TimecardCategories'],'List<String>',context!);
UseLocalAdminUsers = json['UseLocalAdminUsers'];
UseInventory = json['UseInventory'];
ClientScheduledTaskSort = json['ClientScheduledTaskSort'];
LaborPricingHierarchy = JsonConverters.fromJson(json['LaborPricingHierarchy'],'List<String>',context!);
UseLabor = json['UseLabor'];
LaborHourFormat = json['LaborHourFormat'];
TfaEnabled = json['TfaEnabled'];
TaskNameExpressionAutoUpdate = json['TaskNameExpressionAutoUpdate'];
AutocreateInitialTaskStatusEvent = json['AutocreateInitialTaskStatusEvent'];
InactivityTimer = json['InactivityTimer'];
OfflineAuthTimer = json['OfflineAuthTimer'];
Sequences = JsonConverters.fromJson(json['Sequences'],'Map<String,int?>',context!);
OverrideEmail = json['OverrideEmail'];
OverrideSms = json['OverrideSms'];
PortalImageUrl = json['PortalImageUrl'];
PortalImageId = json['PortalImageId'];
SecureImageService = json['SecureImageService'];
SuppressAssetTeamCascading = json['SuppressAssetTeamCascading'];
MilitaryTime = json['MilitaryTime'];
SecureHookService = json['SecureHookService'];
ShowDashboard = json['ShowDashboard'];
DefaultBusinessHours = json['DefaultBusinessHours'];
ForceSso = JsonConverters.fromJson(json['ForceSso'],'Map<String,bool?>',context!);
SuppressSsoAccountCreation = json['SuppressSsoAccountCreation'];
UseAdvancedScheduler = json['UseAdvancedScheduler'];
EnableUnsavedChangesPrompt = json['EnableUnsavedChangesPrompt'];
ReturnInactiveWorkspace = json['ReturnInactiveWorkspace'];
CustomerSupportEmail = json['CustomerSupportEmail'];
CustomerSupportPhoneNumber = json['CustomerSupportPhoneNumber'];
ShowColorCode = json['ShowColorCode'];
return this;
}
Map<String, dynamic> toJson() => {
'ObjectId': ObjectId,
'VersionId': VersionId,
'BasedOn': BasedOn,
'Name': Name,
'LastUpdated': JsonConverters.toJson(LastUpdated,'DateTime',context!),
'PaymentRequired': PaymentRequired,
'CompanyName': CompanyName,
'CompanyLogoUri': CompanyLogoUri,
'CompanySupportUrl': CompanySupportUrl,
'CompanySupportEmail': CompanySupportEmail,
'AdminEmail': AdminEmail,
'CompanyAddress': JsonConverters.toJson(CompanyAddress,'Address',context!),
'TaskTitle': TaskTitle,
'TasksTitle': TasksTitle,
'TeamTitle': TeamTitle,
'TeamsTitle': TeamsTitle,
'UserTitle': UserTitle,
'UsersTitle': UsersTitle,
'ContactTitle': ContactTitle,
'ContactsTitle': ContactsTitle,
'SalesforceElementId': SalesforceElementId,
'ScheduleTitle': ScheduleTitle,
'SchedulesTitle': SchedulesTitle,
'FormTitle': FormTitle,
'FormsTitle': FormsTitle,
'PoiTitle': PoiTitle,
'PoisTitle': PoisTitle,
'AssetMakeTitle': AssetMakeTitle,
'AssetModelTitle': AssetModelTitle,
'AssetManufacturerTitle': AssetManufacturerTitle,
'AssetBarcodeTitle': AssetBarcodeTitle,
'AssetAncestorsTitle': AssetAncestorsTitle,
'AssetWarehouseTitle': AssetWarehouseTitle,
'AssetWarehousesTitle': AssetWarehousesTitle,
'AssetVehicleTitle': AssetVehicleTitle,
'AssetVehiclesTitle': AssetVehiclesTitle,
'UseTeamMaps': UseTeamMaps,
'UseContacts': UseContacts,
'UseAssets': UseAssets,
'ShouldRunIntegrations': ShouldRunIntegrations,
'TaskTemplates': JsonConverters.toJson(TaskTemplates,'Map<String,TaskTemplate?>',context!),
'FormTemplates': FormTemplates,
'DocTemplateGhosts': JsonConverters.toJson(DocTemplateGhosts,'Map<String,DocumentTemplateGhost?>',context!),
'AssetTypes': JsonConverters.toJson(AssetTypes,'Map<String,AssetType?>',context!),
'CatalogTypes': JsonConverters.toJson(CatalogTypes,'List<CatalogType>',context!),
'TaskTypes': JsonConverters.toJson(TaskTypes,'List<TaskType>',context!),
'WorkWeek': JsonConverters.toJson(WorkWeek,'List<WorkDay>',context!),
'SalesTaxRate': SalesTaxRate,
'SkillTags': JsonConverters.toJson(SkillTags,'List<String>',context!),
'TimeZoneId': TimeZoneId,
'IANATimeZoneId': IANATimeZoneId,
'Country': Country,
'StopTime': StopTime,
'StopDistance': StopDistance,
'SpeedingSpeed': SpeedingSpeed,
'SpeedingDuration': SpeedingDuration,
'ContactIcon': ContactIcon,
'UseOnSiteContact': UseOnSiteContact,
'UseServiceAddresses': UseServiceAddresses,
'UseSharedWorkspaces': UseSharedWorkspaces,
'IsMetric': IsMetric,
'BreakLength': JsonConverters.toJson(BreakLength,'List<int>',context!),
'PriorityNames': JsonConverters.toJson(PriorityNames,'List<String>',context!),
'PriorityDefault': PriorityDefault,
'IsFinanceIntegrationEnabled': IsFinanceIntegrationEnabled,
'IsCRMIntegrationEnabled': IsCRMIntegrationEnabled,
'IsBoxIntegrationEnabled': IsBoxIntegrationEnabled,
'IsDropboxIntegrationEnabled': IsDropboxIntegrationEnabled,
'IsGoogleDriveIntegrationEnabled': IsGoogleDriveIntegrationEnabled,
'IsEsriIntegrationEnabled': IsEsriIntegrationEnabled,
'IsPaycomIntegrationEnabled': IsPaycomIntegrationEnabled,
'IsP21IntegrationEnabled': IsP21IntegrationEnabled,
'Images': JsonConverters.toJson(Images,'List<WorkspaceImage>',context!),
'ContactCustomFields': JsonConverters.toJson(ContactCustomFields,'List<CustomField>',context!),
'UserCustomFields': JsonConverters.toJson(UserCustomFields,'List<CustomField>',context!),
'TeamCustomFields': JsonConverters.toJson(TeamCustomFields,'List<CustomField>',context!),
'UseAssetMaintenanceHistory': UseAssetMaintenanceHistory,
'UseAssetSchedules': UseAssetSchedules,
'UseTaskAssets': UseTaskAssets,
'UseSchedules': UseSchedules,
'UseTasks': UseTasks,
'AssetsReadOnly': AssetsReadOnly,
'AssetVisibilityMax': AssetVisibilityMax,
'ContactVisibilityMax': ContactVisibilityMax,
'TaskVisibilityMax': TaskVisibilityMax,
'AutoScanAndTrackAsset': AutoScanAndTrackAsset,
'BarcodeTrackAsset': BarcodeTrackAsset,
'GPSTrackAsset': GPSTrackAsset,
'CustomReports': JsonConverters.toJson(CustomReports,'List<CustomReport>',context!),
'ShowRelatedContactDocs': ShowRelatedContactDocs,
'ShowRelatedAssetDocs': ShowRelatedAssetDocs,
'RequireAssetName': RequireAssetName,
'ShowRelatedTaskDocs': ShowRelatedTaskDocs,
'ClientBacklogSort': JsonConverters.toJson(ClientBacklogSort,'List<ClientBacklogSortItem>',context!),
'AutoAssignJobOnDriving': AutoAssignJobOnDriving,
'AutoAssignJobOnSite': AutoAssignJobOnSite,
'AutoAssignJobOnComplete': AutoAssignJobOnComplete,
'AutoUnassignJobOnNotStarted': AutoUnassignJobOnNotStarted,
'AutoScheduleJobOnDriving': AutoScheduleJobOnDriving,
'AutoScheduleJobOnComplete': AutoScheduleJobOnComplete,
'AutoScheduleJobOnSite': AutoScheduleJobOnSite,
'AutoUnscheduleJobOnNotStarted': AutoUnscheduleJobOnNotStarted,
'AutoUpdateJobStartTimeOnSite': AutoUpdateJobStartTimeOnSite,
'AutoUpdateJobEndTimeOnComplete': AutoUpdateJobEndTimeOnComplete,
'AutoAssignNewTasksTo': AutoAssignNewTasksTo,
'UseIntegrationEmail': UseIntegrationEmail,
'UseTaskTarget': UseTaskTarget,
'UseTaskDue': UseTaskDue,
'UseTaskPri': UseTaskPri,
'UseTaskAddr': UseTaskAddr,
'TaskListDetails': TaskListDetails,
'AutocreateTaskStatusEvents': AutocreateTaskStatusEvents,
'AutocreateTaskAssignmentEvents': AutocreateTaskAssignmentEvents,
'FilterContactsByTeam': FilterContactsByTeam,
'FilterUsersAndTeamsByTeam': FilterUsersAndTeamsByTeam,
'AutoUpdateTaskContactChanged': AutoUpdateTaskContactChanged,
'AutoAssignTeamsOnTaskCreate': AutoAssignTeamsOnTaskCreate,
'HtmlEmailIncludeTaskName': HtmlEmailIncludeTaskName,
'HtmlEmailIncludeUsers': HtmlEmailIncludeUsers,
'HtmlEmailIncludeDateCreated': HtmlEmailIncludeDateCreated,
'HtmlEmailIncludeDateLastUpdated': HtmlEmailIncludeDateLastUpdated,
'ClientStartupView': ClientStartupView,
'ClientAutoSyncInterval': ClientAutoSyncInterval,
'MobileTaskRangePast': MobileTaskRangePast,
'MobileTaskRangeFuture': MobileTaskRangeFuture,
'ClientShowScheduledTasks': ClientShowScheduledTasks,
'ClientShowMyTasksOnly': ClientShowMyTasksOnly,
'ClientShowBacklogTasks': ClientShowBacklogTasks,
'ClientHideCompleteTasks': ClientHideCompleteTasks,
'ClientMapType': ClientMapType,
'ClientGPSAccuracy': ClientGPSAccuracy,
'ClientShowTaskIconsOnMap': ClientShowTaskIconsOnMap,
'ClientMapLayerScheduledTasks': ClientMapLayerScheduledTasks,
'ClientMapLayerBacklog': ClientMapLayerBacklog,
'ClientMapLayerAssets': ClientMapLayerAssets,
'ClientMapLayerContacts': ClientMapLayerContacts,
'ClientMapLayerTracks': ClientMapLayerTracks,
'ClientMapLayerStops': ClientMapLayerStops,
'ClientMapLayerSpeeding': ClientMapLayerSpeeding,
'ClientMapStartLocation': ClientMapStartLocation,
'SecurityDict': JsonConverters.toJson(SecurityDict,'Map<String,int?>',context!),
'ContactSearchResultExpression': ContactSearchResultExpression,
'LandscapePhotos': LandscapePhotos,
'LogApiTraffic': LogApiTraffic,
'UseDueDate': UseDueDate,
'UsePriority': UsePriority,
'ScheduleTimeZones': JsonConverters.toJson(ScheduleTimeZones,'List<String>',context!),
'UseTimezones': UseTimezones,
'TaskListSummaryExpression1': TaskListSummaryExpression1,
'TaskListSummaryExpression2': TaskListSummaryExpression2,
'ShowScheduleButton': ShowScheduleButton,
'ShowScheduleGrid': ShowScheduleGrid,
'ScheduleCustomFields': JsonConverters.toJson(ScheduleCustomFields,'List<CustomField>',context!),
'ScheduleGridConfig': JsonConverters.toJson(ScheduleGridConfig,'ScheduleGridConfiguration',context!),
'SaveOnPhoto': SaveOnPhoto,
'CleanseGeocodes': CleanseGeocodes,
'GeocodeQuality': GeocodeQuality,
'RetainCustomerDatabase': RetainCustomerDatabase,
'RetainAssetDatabase': RetainAssetDatabase,
'ShowDriveTimes': ShowDriveTimes,
'LocAccFilter': LocAccFilter,
'AutoCreateRoutesFromAssignedTasks': AutoCreateRoutesFromAssignedTasks,
'TaskNameExpression': TaskNameExpression,
'UseAddressCountry': UseAddressCountry,
'MessageAppEnabled': MessageAppEnabled,
'GisLayers': JsonConverters.toJson(GisLayers,'List<String>',context!),
'AllowStatusDoubleClick': AllowStatusDoubleClick,
'UseTimecard': UseTimecard,
'TimecardCategories': JsonConverters.toJson(TimecardCategories,'List<String>',context!),
'UseLocalAdminUsers': UseLocalAdminUsers,
'UseInventory': UseInventory,
'ClientScheduledTaskSort': ClientScheduledTaskSort,
'LaborPricingHierarchy': JsonConverters.toJson(LaborPricingHierarchy,'List<String>',context!),
'UseLabor': UseLabor,
'LaborHourFormat': LaborHourFormat,
'TfaEnabled': TfaEnabled,
'TaskNameExpressionAutoUpdate': TaskNameExpressionAutoUpdate,
'AutocreateInitialTaskStatusEvent': AutocreateInitialTaskStatusEvent,
'InactivityTimer': InactivityTimer,
'OfflineAuthTimer': OfflineAuthTimer,
'Sequences': JsonConverters.toJson(Sequences,'Map<String,int?>',context!),
'OverrideEmail': OverrideEmail,
'OverrideSms': OverrideSms,
'PortalImageUrl': PortalImageUrl,
'PortalImageId': PortalImageId,
'SecureImageService': SecureImageService,
'SuppressAssetTeamCascading': SuppressAssetTeamCascading,
'MilitaryTime': MilitaryTime,
'SecureHookService': SecureHookService,
'ShowDashboard': ShowDashboard,
'DefaultBusinessHours': DefaultBusinessHours,
'ForceSso': JsonConverters.toJson(ForceSso,'Map<String,bool?>',context!),
'SuppressSsoAccountCreation': SuppressSsoAccountCreation,
'UseAdvancedScheduler': UseAdvancedScheduler,
'EnableUnsavedChangesPrompt': EnableUnsavedChangesPrompt,
'ReturnInactiveWorkspace': ReturnInactiveWorkspace,
'CustomerSupportEmail': CustomerSupportEmail,
'CustomerSupportPhoneNumber': CustomerSupportPhoneNumber,
'ShowColorCode': ShowColorCode
};
getTypeName() => "Workspace";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'dev.fieldsquared.com', types: <String, TypeInfo> {
'Location': TypeInfo(TypeOf.Class, create:() => Location()),
'Address': TypeInfo(TypeOf.Class, create:() => Address()),
'CustomFieldDataType': TypeInfo(TypeOf.Enum, enumValues:CustomFieldDataType.values),
'CustomField': TypeInfo(TypeOf.Class, create:() => CustomField()),
'Map<String,dynamic?>': TypeInfo(TypeOf.Class, create:() => Map<String,dynamic?>()),
'BindingDescriptor': TypeInfo(TypeOf.Class, create:() => BindingDescriptor()),
'TaskStatusDef': TypeInfo(TypeOf.Class, create:() => TaskStatusDef()),
'List<BindingDescriptor>': TypeInfo(TypeOf.Class, create:() => <BindingDescriptor>[]),
'TaskTemplate': TypeInfo(TypeOf.Class, create:() => TaskTemplate()),
'List<CustomField>': TypeInfo(TypeOf.Class, create:() => <CustomField>[]),
'List<TaskStatusDef>': TypeInfo(TypeOf.Class, create:() => <TaskStatusDef>[]),
'DocumentTemplateGhost': TypeInfo(TypeOf.Class, create:() => DocumentTemplateGhost()),
'AssetType': TypeInfo(TypeOf.Class, create:() => AssetType()),
'CatalogType': TypeInfo(TypeOf.Class, create:() => CatalogType()),
'RequiredAsset': TypeInfo(TypeOf.Class, create:() => RequiredAsset()),
'RequiredInventoryType': TypeInfo(TypeOf.Class, create:() => RequiredInventoryType()),
'RequiredUser': TypeInfo(TypeOf.Class, create:() => RequiredUser()),
'AutoCreateDocExpression': TypeInfo(TypeOf.Class, create:() => AutoCreateDocExpression()),
'TaskType': TypeInfo(TypeOf.Class, create:() => TaskType()),
'List<RequiredAsset>': TypeInfo(TypeOf.Class, create:() => <RequiredAsset>[]),
'List<RequiredInventoryType>': TypeInfo(TypeOf.Class, create:() => <RequiredInventoryType>[]),
'List<RequiredUser>': TypeInfo(TypeOf.Class, create:() => <RequiredUser>[]),
'List<AutoCreateDocExpression>': TypeInfo(TypeOf.Class, create:() => <AutoCreateDocExpression>[]),
'WorkDay': TypeInfo(TypeOf.Class, create:() => WorkDay()),
'WorkspaceImage': TypeInfo(TypeOf.Class, create:() => WorkspaceImage()),
'CustomReport': TypeInfo(TypeOf.Class, create:() => CustomReport()),
'ClientBacklogSortItem': TypeInfo(TypeOf.Class, create:() => ClientBacklogSortItem()),
'GridItem': TypeInfo(TypeOf.Class, create:() => GridItem()),
'ScheduleGridConfiguration': TypeInfo(TypeOf.Class, create:() => ScheduleGridConfiguration()),
'List<GridItem>': TypeInfo(TypeOf.Class, create:() => <GridItem>[]),
'Workspace': TypeInfo(TypeOf.Class, create:() => Workspace()),
'Map<String,TaskTemplate?>': TypeInfo(TypeOf.Class, create:() => Map<String,TaskTemplate?>()),
'Map<String,DocumentTemplateGhost?>': TypeInfo(TypeOf.Class, create:() => Map<String,DocumentTemplateGhost?>()),
'Map<String,AssetType?>': TypeInfo(TypeOf.Class, create:() => Map<String,AssetType?>()),
'List<CatalogType>': TypeInfo(TypeOf.Class, create:() => <CatalogType>[]),
'List<TaskType>': TypeInfo(TypeOf.Class, create:() => <TaskType>[]),
'List<WorkDay>': TypeInfo(TypeOf.Class, create:() => <WorkDay>[]),
'List<WorkspaceImage>': TypeInfo(TypeOf.Class, create:() => <WorkspaceImage>[]),
'List<CustomReport>': TypeInfo(TypeOf.Class, create:() => <CustomReport>[]),
'List<ClientBacklogSortItem>': TypeInfo(TypeOf.Class, create:() => <ClientBacklogSortItem>[]),
'Map<String,int?>': TypeInfo(TypeOf.Class, create:() => Map<String,int?>()),
'Map<String,bool?>': TypeInfo(TypeOf.Class, create:() => Map<String,bool?>()),
});
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 /{ObjectId}/Workspace HTTP/1.1
Host: dev.fieldsquared.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ObjectId: String,
VersionId: String,
BasedOn: String,
Name: String,
LastUpdated: 0001-01-01,
PaymentRequired: False,
CompanyName: String,
CompanyLogoUri: String,
CompanySupportUrl: String,
CompanySupportEmail: String,
AdminEmail: String,
CompanyAddress:
{
Street: String,
Unit: String,
City: String,
State: String,
Zip: String,
ContactTitle: String,
ContactName: String,
ContactPhone: String,
ContactEmail: String,
Location:
{
y: 0,
x: 0
},
SiteName: String,
GeocodeFailed: False,
Country: String
},
TaskTitle: String,
TasksTitle: String,
TeamTitle: String,
TeamsTitle: String,
UserTitle: String,
UsersTitle: String,
ContactTitle: String,
ContactsTitle: String,
SalesforceElementId: String,
ScheduleTitle: String,
SchedulesTitle: String,
FormTitle: String,
FormsTitle: String,
PoiTitle: String,
PoisTitle: String,
AssetMakeTitle: String,
AssetModelTitle: String,
AssetManufacturerTitle: String,
AssetBarcodeTitle: String,
AssetAncestorsTitle: String,
AssetWarehouseTitle: String,
AssetWarehousesTitle: String,
AssetVehicleTitle: String,
AssetVehiclesTitle: String,
UseTeamMaps: False,
UseContacts: False,
UseAssets: False,
ShouldRunIntegrations: False,
TaskTemplates:
{
String:
{
CustomFields:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: {}
},
IndexSlot: String,
Index: String
}
],
Statuses:
[
{
Name: String,
Color: String,
Code: String,
TransitionFrom: String,
TransitionMessage: String,
TransitionCustomFields:
[
String
],
HiddenIf: String,
IsStart: False,
IsEnd: False,
IsBlocked: False,
StatusType: String,
ProgressType: String,
AutoCreateDocuments:
[
String
],
LockTask: False,
SubmittedForms:
[
{
Binding: String,
Required: False
}
]
}
],
TaskListDetails: String,
AutoAssignStatus: String,
AutoUnassignStatus: String,
AutoScheduleStatus: String,
AutoUnscheduleStatus: String,
AutoUpdateStartStatus: String,
AutoUpdateEndStatus: String,
ArrivalStatus: String,
DepartureStatus: String,
ConfirmArrival: False,
ConfirmDeparture: False,
ManualArrivalAllowed: False,
ManualDepartureAllowed: False,
HideDisabledStatuses: False,
GeofenceRadius: 0
}
},
FormTemplates: String,
DocTemplateGhosts:
{
String:
{
Title: String,
IsSubDoc: False,
Folder: String,
IsFragment: False,
EditTeams:
[
String
],
HasSecondaryOwner: False,
TaskDocument: False,
AssetDocument: False,
ContactDocument: False,
UserDocument: False,
MultipleCopies: False,
SubmitOption: False,
Image: String,
HiddenFor:
[
String
]
}
},
AssetTypes:
{
String:
{
Workspace: String,
Type: String,
IsActive: False,
Name: String,
Make: String,
Model: String,
Manuf: String,
Barcode: String,
Symbol: String,
Color: String,
LineThickness: 0,
Scale: 0,
VisibilityMin: 0,
VisibilityMax: 0,
SyncNode: False,
CustomFields:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: String
},
UseArrayMergeType: Set,
IndexSlot: String,
Index: String
}
],
AllowedParentTypes:
[
String
],
AllowedChildTypes:
[
String
],
UseLocationHistory: False,
IsMobileAsset: False,
Data:
{
String: String
},
GeomType: String,
DocFilter: False,
ShowRelatedDocs: False,
AllowedDocTypes:
[
String
],
TLA: String,
UseTLAOnMap: False,
RoutingLocation: String,
Fill: String,
FillOpacity: 0,
ShowAnno: False,
AnnoColor: String,
MaxAnnoVisibility: 0,
AnnoFont: String,
HideTypeLabel: False,
UseAddress: False,
UseFullScreen: False,
TimeSeries: 0,
IsUnselectable: False,
EditTeams:
[
String
],
IsWarehouse: False,
IsVehicle: False,
CustomSymbol:
{
String: {}
},
TaskSeriesTemplates:
[
String
]
}
},
CatalogTypes:
[
{
Type: String,
Name: String,
CustomFields:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: String
},
UseArrayMergeType: Set,
IndexSlot: String,
Index: String
}
]
}
],
TaskTypes:
[
{
Workspace: String,
Type: String,
Icon: String,
SkillTags:
[
String
],
MinTimeToComplete: 0,
AvgTimeToComplete: 0,
MaxTimeToComplete: 0,
Template: String,
DocFilter: False,
ShowRelatedDocs: False,
AllowedDocTypes:
[
String
],
DefaultPriority: 0,
Inactive: False,
AutoCreateDocuments:
[
String
],
PercentCompleteType: String,
UseJobTimers: False,
InheritAssetTeams: False,
InheritContactTeams: False,
EditTeams:
[
String
],
UseRequired: False,
AllowOverride: False,
RequiredAssets:
[
{
Number: 0,
Type: String
}
],
RequiredInventoryTypes:
[
{
Number: 0,
Type: String,
Name: String,
IsSerialized: False,
Description: String
}
],
RequiredUsers:
[
{
Number: 0,
SkillTags:
[
String
]
}
],
ActiveLaborTypes:
{
String: {}
},
IndividualUserStatuses: False,
LockOption: False,
AutoCreateDocExpressions:
[
{
Document: String,
Expression: String,
MultipleCopies: False
}
],
PTO: False
}
],
WorkWeek:
[
{
DayOfWeek: 0,
Start: 0,
End: 0,
Lunch: 0
}
],
SalesTaxRate: 0,
SkillTags:
[
String
],
TimeZoneId: String,
IANATimeZoneId: String,
Country: String,
StopTime: 0,
StopDistance: 0,
SpeedingSpeed: 0,
SpeedingDuration: 0,
ContactIcon: String,
UseOnSiteContact: False,
UseServiceAddresses: False,
UseSharedWorkspaces: False,
IsMetric: False,
BreakLength:
[
0
],
PriorityNames:
[
String
],
PriorityDefault: String,
IsFinanceIntegrationEnabled: False,
IsCRMIntegrationEnabled: False,
IsBoxIntegrationEnabled: False,
IsDropboxIntegrationEnabled: False,
IsGoogleDriveIntegrationEnabled: False,
IsEsriIntegrationEnabled: False,
IsPaycomIntegrationEnabled: False,
IsP21IntegrationEnabled: False,
Images:
[
{
Category: String,
ObjectId: String
}
],
ContactCustomFields:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: {}
},
IndexSlot: String,
Index: String
}
],
UserCustomFields:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: {}
},
IndexSlot: String,
Index: String
}
],
TeamCustomFields:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: {}
},
IndexSlot: String,
Index: String
}
],
UseAssetMaintenanceHistory: False,
UseAssetSchedules: False,
UseTaskAssets: False,
UseSchedules: False,
UseTasks: False,
AssetsReadOnly: False,
AssetVisibilityMax: 0,
ContactVisibilityMax: 0,
TaskVisibilityMax: 0,
AutoScanAndTrackAsset: False,
BarcodeTrackAsset: False,
GPSTrackAsset: False,
CustomReports:
[
{
ObjectId: String,
Name: String,
Inputs:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: {}
},
IndexSlot: String,
Index: String
}
]
}
],
ShowRelatedContactDocs: False,
ShowRelatedAssetDocs: False,
RequireAssetName: False,
ShowRelatedTaskDocs: False,
ClientBacklogSort:
[
{
Key: String,
Label: String,
Sort: String,
Compare: String
}
],
AutoAssignJobOnDriving: False,
AutoAssignJobOnSite: False,
AutoAssignJobOnComplete: False,
AutoUnassignJobOnNotStarted: False,
AutoScheduleJobOnDriving: False,
AutoScheduleJobOnComplete: False,
AutoScheduleJobOnSite: False,
AutoUnscheduleJobOnNotStarted: False,
AutoUpdateJobStartTimeOnSite: False,
AutoUpdateJobEndTimeOnComplete: False,
AutoAssignNewTasksTo: String,
UseIntegrationEmail: False,
UseTaskTarget: False,
UseTaskDue: False,
UseTaskPri: False,
UseTaskAddr: False,
TaskListDetails: String,
AutocreateTaskStatusEvents: False,
AutocreateTaskAssignmentEvents: False,
FilterContactsByTeam: False,
FilterUsersAndTeamsByTeam: False,
AutoUpdateTaskContactChanged: False,
AutoAssignTeamsOnTaskCreate: False,
HtmlEmailIncludeTaskName: False,
HtmlEmailIncludeUsers: False,
HtmlEmailIncludeDateCreated: False,
HtmlEmailIncludeDateLastUpdated: False,
ClientStartupView: String,
ClientAutoSyncInterval: 0,
MobileTaskRangePast: 0,
MobileTaskRangeFuture: 0,
ClientShowScheduledTasks: False,
ClientShowMyTasksOnly: False,
ClientShowBacklogTasks: False,
ClientHideCompleteTasks: False,
ClientMapType: String,
ClientGPSAccuracy: String,
ClientShowTaskIconsOnMap: False,
ClientMapLayerScheduledTasks: False,
ClientMapLayerBacklog: False,
ClientMapLayerAssets: False,
ClientMapLayerContacts: False,
ClientMapLayerTracks: False,
ClientMapLayerStops: False,
ClientMapLayerSpeeding: False,
ClientMapStartLocation: String,
SecurityDict:
{
String: 0
},
ContactSearchResultExpression: String,
LandscapePhotos: False,
LogApiTraffic: False,
UseDueDate: False,
UsePriority: False,
ScheduleTimeZones:
[
String
],
UseTimezones: False,
TaskListSummaryExpression1: String,
TaskListSummaryExpression2: String,
ShowScheduleButton: False,
ShowScheduleGrid: False,
ScheduleCustomFields:
[
{
Key: String,
Label: String,
IsActive: False,
IsReadOnly: False,
IsHidden: False,
IsMandatory: False,
DisplayOnMap: False,
CustomFieldDataType: Text,
Values: String,
Prompt: String,
Default: String,
DefaultAutoUpdate: False,
RequiredIf: String,
Hidden:
[
String
],
ReadOnly:
[
String
],
ControlArgs:
{
String: {}
},
IndexSlot: String,
Index: String
}
],
ScheduleGridConfig:
{
Grid:
[
{
Binding: String,
Heading: String,
Width: 0
}
]
},
SaveOnPhoto: False,
CleanseGeocodes: False,
GeocodeQuality: String,
RetainCustomerDatabase: String,
RetainAssetDatabase: String,
ShowDriveTimes: False,
LocAccFilter: 0,
AutoCreateRoutesFromAssignedTasks: False,
TaskNameExpression: String,
UseAddressCountry: False,
MessageAppEnabled: False,
GisLayers:
[
String
],
AllowStatusDoubleClick: False,
UseTimecard: False,
TimecardCategories:
[
String
],
UseLocalAdminUsers: False,
UseInventory: False,
ClientScheduledTaskSort: 0,
LaborPricingHierarchy:
[
String
],
UseLabor: False,
LaborHourFormat: False,
TfaEnabled: False,
TaskNameExpressionAutoUpdate: False,
AutocreateInitialTaskStatusEvent: False,
InactivityTimer: 0,
OfflineAuthTimer: 0,
Sequences:
{
String: 0
},
OverrideEmail: String,
OverrideSms: String,
PortalImageUrl: String,
PortalImageId: String,
SecureImageService: False,
SuppressAssetTeamCascading: False,
MilitaryTime: False,
SecureHookService: False,
ShowDashboard: False,
DefaultBusinessHours: False,
ForceSso:
{
String: False
},
SuppressSsoAccountCreation: False,
UseAdvancedScheduler: False,
EnableUnsavedChangesPrompt: False,
ReturnInactiveWorkspace: False,
CustomerSupportEmail: String,
CustomerSupportPhoneNumber: String,
ShowColorCode: False
}