| POST | /v1/coverage/policies/{CoveragePolicyId} |
|---|
import 'package:servicestack/servicestack.dart';
class CoveragePolicy implements IConvertible
{
int? CoveragePolicyId;
String? CoveragePolicyUID;
String? Name;
String? ScopeLevel;
String? BranchId;
String? BranchName;
String? WorkTypeKey;
int? JobID;
String? JobName;
int? CurrentVersion;
bool? IsActive;
DateTime? CreatedAt;
DateTime? UpdatedAt;
CoveragePolicy({this.CoveragePolicyId,this.CoveragePolicyUID,this.Name,this.ScopeLevel,this.BranchId,this.BranchName,this.WorkTypeKey,this.JobID,this.JobName,this.CurrentVersion,this.IsActive,this.CreatedAt,this.UpdatedAt});
CoveragePolicy.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CoveragePolicyId = json['CoveragePolicyId'];
CoveragePolicyUID = json['CoveragePolicyUID'];
Name = json['Name'];
ScopeLevel = json['ScopeLevel'];
BranchId = json['BranchId'];
BranchName = json['BranchName'];
WorkTypeKey = json['WorkTypeKey'];
JobID = json['JobID'];
JobName = json['JobName'];
CurrentVersion = json['CurrentVersion'];
IsActive = json['IsActive'];
CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'CoveragePolicyId': CoveragePolicyId,
'CoveragePolicyUID': CoveragePolicyUID,
'Name': Name,
'ScopeLevel': ScopeLevel,
'BranchId': BranchId,
'BranchName': BranchName,
'WorkTypeKey': WorkTypeKey,
'JobID': JobID,
'JobName': JobName,
'CurrentVersion': CurrentVersion,
'IsActive': IsActive,
'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!)
};
getTypeName() => "CoveragePolicy";
TypeContext? context = _ctx;
}
class CoverageRingDef implements IConvertible
{
String? Key;
String? Label;
String? Sub;
int? WaitMinutes;
bool? Enabled;
CoverageRingDef({this.Key,this.Label,this.Sub,this.WaitMinutes,this.Enabled});
CoverageRingDef.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Key = json['Key'];
Label = json['Label'];
Sub = json['Sub'];
WaitMinutes = json['WaitMinutes'];
Enabled = json['Enabled'];
return this;
}
Map<String, dynamic> toJson() => {
'Key': Key,
'Label': Label,
'Sub': Sub,
'WaitMinutes': WaitMinutes,
'Enabled': Enabled
};
getTypeName() => "CoverageRingDef";
TypeContext? context = _ctx;
}
class CoveragePolicyPrefs implements IConvertible
{
String? AssignmentMode;
int? RestHours;
int? OtThresholdHours;
int? RingWaitMinutes;
String? QuietStart;
String? QuietEnd;
bool? RescheduleAllowed;
String? QuietMode;
List<CoverageRingDef>? Rings = [];
CoveragePolicyPrefs({this.AssignmentMode,this.RestHours,this.OtThresholdHours,this.RingWaitMinutes,this.QuietStart,this.QuietEnd,this.RescheduleAllowed,this.QuietMode,this.Rings});
CoveragePolicyPrefs.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
AssignmentMode = json['AssignmentMode'];
RestHours = json['RestHours'];
OtThresholdHours = json['OtThresholdHours'];
RingWaitMinutes = json['RingWaitMinutes'];
QuietStart = json['QuietStart'];
QuietEnd = json['QuietEnd'];
RescheduleAllowed = json['RescheduleAllowed'];
QuietMode = json['QuietMode'];
Rings = JsonConverters.fromJson(json['Rings'],'List<CoverageRingDef>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'AssignmentMode': AssignmentMode,
'RestHours': RestHours,
'OtThresholdHours': OtThresholdHours,
'RingWaitMinutes': RingWaitMinutes,
'QuietStart': QuietStart,
'QuietEnd': QuietEnd,
'RescheduleAllowed': RescheduleAllowed,
'QuietMode': QuietMode,
'Rings': JsonConverters.toJson(Rings,'List<CoverageRingDef>',context!)
};
getTypeName() => "CoveragePolicyPrefs";
TypeContext? context = _ctx;
}
class CoverageRuleDocSection implements IConvertible
{
String? H;
String? T;
CoverageRuleDocSection({this.H,this.T});
CoverageRuleDocSection.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
H = json['H'];
T = json['T'];
return this;
}
Map<String, dynamic> toJson() => {
'H': H,
'T': T
};
getTypeName() => "CoverageRuleDocSection";
TypeContext? context = _ctx;
}
class CoverageRuleTuneOption implements IConvertible
{
String? Label;
String? Sub;
CoverageRuleTuneOption({this.Label,this.Sub});
CoverageRuleTuneOption.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Label = json['Label'];
Sub = json['Sub'];
return this;
}
Map<String, dynamic> toJson() => {
'Label': Label,
'Sub': Sub
};
getTypeName() => "CoverageRuleTuneOption";
TypeContext? context = _ctx;
}
class CoverageRuleTune implements IConvertible
{
String? Intro;
List<CoverageRuleTuneOption>? Options = [];
CoverageRuleTune({this.Intro,this.Options});
CoverageRuleTune.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Intro = json['Intro'];
Options = JsonConverters.fromJson(json['Options'],'List<CoverageRuleTuneOption>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Intro': Intro,
'Options': JsonConverters.toJson(Options,'List<CoverageRuleTuneOption>',context!)
};
getTypeName() => "CoverageRuleTune";
TypeContext? context = _ctx;
}
class CoverageRuleDef implements IConvertible
{
String? RuleId;
String? Name;
String? Kind;
String? Demand;
String? SourcePolicyName;
String? CascadeLevel;
String? Why;
String? Change;
String? OverrideWho;
String? OverrideConsequence;
String? NoNote;
Map<String,String?>? Params = {};
List<CoverageRuleDocSection>? Doc = [];
CoverageRuleTune? Tune;
CoverageRuleDef({this.RuleId,this.Name,this.Kind,this.Demand,this.SourcePolicyName,this.CascadeLevel,this.Why,this.Change,this.OverrideWho,this.OverrideConsequence,this.NoNote,this.Params,this.Doc,this.Tune});
CoverageRuleDef.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RuleId = json['RuleId'];
Name = json['Name'];
Kind = json['Kind'];
Demand = json['Demand'];
SourcePolicyName = json['SourcePolicyName'];
CascadeLevel = json['CascadeLevel'];
Why = json['Why'];
Change = json['Change'];
OverrideWho = json['OverrideWho'];
OverrideConsequence = json['OverrideConsequence'];
NoNote = json['NoNote'];
Params = JsonConverters.toStringMap(json['Params']);
Doc = JsonConverters.fromJson(json['Doc'],'List<CoverageRuleDocSection>',context!);
Tune = JsonConverters.fromJson(json['Tune'],'CoverageRuleTune',context!);
return this;
}
Map<String, dynamic> toJson() => {
'RuleId': RuleId,
'Name': Name,
'Kind': Kind,
'Demand': Demand,
'SourcePolicyName': SourcePolicyName,
'CascadeLevel': CascadeLevel,
'Why': Why,
'Change': Change,
'OverrideWho': OverrideWho,
'OverrideConsequence': OverrideConsequence,
'NoNote': NoNote,
'Params': Params,
'Doc': JsonConverters.toJson(Doc,'List<CoverageRuleDocSection>',context!),
'Tune': JsonConverters.toJson(Tune,'CoverageRuleTune',context!)
};
getTypeName() => "CoverageRuleDef";
TypeContext? context = _ctx;
}
class CoveragePolicyDoc implements IConvertible
{
String? Intro;
String? LockLine;
String? TemplateName;
CoveragePolicyPrefs? Prefs;
List<CoverageRuleDef>? Rules = [];
CoveragePolicyDoc({this.Intro,this.LockLine,this.TemplateName,this.Prefs,this.Rules});
CoveragePolicyDoc.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Intro = json['Intro'];
LockLine = json['LockLine'];
TemplateName = json['TemplateName'];
Prefs = JsonConverters.fromJson(json['Prefs'],'CoveragePolicyPrefs',context!);
Rules = JsonConverters.fromJson(json['Rules'],'List<CoverageRuleDef>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Intro': Intro,
'LockLine': LockLine,
'TemplateName': TemplateName,
'Prefs': JsonConverters.toJson(Prefs,'CoveragePolicyPrefs',context!),
'Rules': JsonConverters.toJson(Rules,'List<CoverageRuleDef>',context!)
};
getTypeName() => "CoveragePolicyDoc";
TypeContext? context = _ctx;
}
class CoveragePolicyVersionInfo implements IConvertible
{
int? CoveragePolicyVersionId;
int? CoveragePolicyId;
int? VersionNumber;
String? ChangeNote;
String? ChangedByName;
DateTime? CreatedAtUtc;
CoveragePolicyDoc? Doc;
CoveragePolicyVersionInfo({this.CoveragePolicyVersionId,this.CoveragePolicyId,this.VersionNumber,this.ChangeNote,this.ChangedByName,this.CreatedAtUtc,this.Doc});
CoveragePolicyVersionInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CoveragePolicyVersionId = json['CoveragePolicyVersionId'];
CoveragePolicyId = json['CoveragePolicyId'];
VersionNumber = json['VersionNumber'];
ChangeNote = json['ChangeNote'];
ChangedByName = json['ChangedByName'];
CreatedAtUtc = JsonConverters.fromJson(json['CreatedAtUtc'],'DateTime',context!);
Doc = JsonConverters.fromJson(json['Doc'],'CoveragePolicyDoc',context!);
return this;
}
Map<String, dynamic> toJson() => {
'CoveragePolicyVersionId': CoveragePolicyVersionId,
'CoveragePolicyId': CoveragePolicyId,
'VersionNumber': VersionNumber,
'ChangeNote': ChangeNote,
'ChangedByName': ChangedByName,
'CreatedAtUtc': JsonConverters.toJson(CreatedAtUtc,'DateTime',context!),
'Doc': JsonConverters.toJson(Doc,'CoveragePolicyDoc',context!)
};
getTypeName() => "CoveragePolicyVersionInfo";
TypeContext? context = _ctx;
}
class CoverageCascadeResponse implements IConvertible
{
CoveragePolicy? Policy;
CoveragePolicyDoc? Doc;
int? VersionNumber;
List<CoveragePolicyVersionInfo>? Versions = [];
ResponseStatus? ResponseStatus;
CoverageCascadeResponse({this.Policy,this.Doc,this.VersionNumber,this.Versions,this.ResponseStatus});
CoverageCascadeResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Policy = JsonConverters.fromJson(json['Policy'],'CoveragePolicy',context!);
Doc = JsonConverters.fromJson(json['Doc'],'CoveragePolicyDoc',context!);
VersionNumber = json['VersionNumber'];
Versions = JsonConverters.fromJson(json['Versions'],'List<CoveragePolicyVersionInfo>',context!);
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Policy': JsonConverters.toJson(Policy,'CoveragePolicy',context!),
'Doc': JsonConverters.toJson(Doc,'CoveragePolicyDoc',context!),
'VersionNumber': VersionNumber,
'Versions': JsonConverters.toJson(Versions,'List<CoveragePolicyVersionInfo>',context!),
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "CoverageCascadeResponse";
TypeContext? context = _ctx;
}
class CoveragePolicySaveRequest implements IConvertible
{
int? CoveragePolicyId;
CoveragePolicyDoc? Doc;
String? ChangeNote;
CoveragePolicySaveRequest({this.CoveragePolicyId,this.Doc,this.ChangeNote});
CoveragePolicySaveRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CoveragePolicyId = json['CoveragePolicyId'];
Doc = JsonConverters.fromJson(json['Doc'],'CoveragePolicyDoc',context!);
ChangeNote = json['ChangeNote'];
return this;
}
Map<String, dynamic> toJson() => {
'CoveragePolicyId': CoveragePolicyId,
'Doc': JsonConverters.toJson(Doc,'CoveragePolicyDoc',context!),
'ChangeNote': ChangeNote
};
getTypeName() => "CoveragePolicySaveRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'CoveragePolicy': TypeInfo(TypeOf.Class, create:() => CoveragePolicy()),
'CoverageRingDef': TypeInfo(TypeOf.Class, create:() => CoverageRingDef()),
'CoveragePolicyPrefs': TypeInfo(TypeOf.Class, create:() => CoveragePolicyPrefs()),
'List<CoverageRingDef>': TypeInfo(TypeOf.Class, create:() => <CoverageRingDef>[]),
'CoverageRuleDocSection': TypeInfo(TypeOf.Class, create:() => CoverageRuleDocSection()),
'CoverageRuleTuneOption': TypeInfo(TypeOf.Class, create:() => CoverageRuleTuneOption()),
'CoverageRuleTune': TypeInfo(TypeOf.Class, create:() => CoverageRuleTune()),
'List<CoverageRuleTuneOption>': TypeInfo(TypeOf.Class, create:() => <CoverageRuleTuneOption>[]),
'CoverageRuleDef': TypeInfo(TypeOf.Class, create:() => CoverageRuleDef()),
'List<CoverageRuleDocSection>': TypeInfo(TypeOf.Class, create:() => <CoverageRuleDocSection>[]),
'CoveragePolicyDoc': TypeInfo(TypeOf.Class, create:() => CoveragePolicyDoc()),
'List<CoverageRuleDef>': TypeInfo(TypeOf.Class, create:() => <CoverageRuleDef>[]),
'CoveragePolicyVersionInfo': TypeInfo(TypeOf.Class, create:() => CoveragePolicyVersionInfo()),
'CoverageCascadeResponse': TypeInfo(TypeOf.Class, create:() => CoverageCascadeResponse()),
'List<CoveragePolicyVersionInfo>': TypeInfo(TypeOf.Class, create:() => <CoveragePolicyVersionInfo>[]),
'CoveragePolicySaveRequest': TypeInfo(TypeOf.Class, create:() => CoveragePolicySaveRequest()),
});
Dart CoveragePolicySaveRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/coverage/policies/{CoveragePolicyId} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"CoveragePolicyId":0,"Doc":{"Intro":"String","LockLine":"String","TemplateName":"String","Prefs":{"AssignmentMode":"String","RestHours":0,"OtThresholdHours":0,"RingWaitMinutes":0,"QuietStart":"String","QuietEnd":"String","RescheduleAllowed":false,"QuietMode":"String","Rings":[{"Key":"String","Label":"String","Sub":"String","WaitMinutes":0,"Enabled":false}]},"Rules":[{"RuleId":"String","Name":"String","Kind":"String","Demand":"String","SourcePolicyName":"String","CascadeLevel":"String","Why":"String","Change":"String","OverrideWho":"String","OverrideConsequence":"String","NoNote":"String","Params":{"String":"String"},"Doc":[{"H":"String","T":"String"}],"Tune":{"Intro":"String","Options":[{"Label":"String","Sub":"String"}]}}]},"ChangeNote":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"Policy":{"CoveragePolicyId":0,"CoveragePolicyUID":"00000000000000000000000000000000","Name":"String","ScopeLevel":"String","BranchId":"00000000000000000000000000000000","BranchName":"String","WorkTypeKey":"String","JobID":0,"JobName":"String","CurrentVersion":0,"IsActive":false,"CreatedAt":"0001-01-01T00:00:00.0000000","UpdatedAt":"0001-01-01T00:00:00.0000000"},"Doc":{"Intro":"String","LockLine":"String","TemplateName":"String","Prefs":{"AssignmentMode":"String","RestHours":0,"OtThresholdHours":0,"RingWaitMinutes":0,"QuietStart":"String","QuietEnd":"String","RescheduleAllowed":false,"QuietMode":"String","Rings":[{"Key":"String","Label":"String","Sub":"String","WaitMinutes":0,"Enabled":false}]},"Rules":[{"RuleId":"String","Name":"String","Kind":"String","Demand":"String","SourcePolicyName":"String","CascadeLevel":"String","Why":"String","Change":"String","OverrideWho":"String","OverrideConsequence":"String","NoNote":"String","Params":{"String":"String"},"Doc":[{"H":"String","T":"String"}],"Tune":{"Intro":"String","Options":[{"Label":"String","Sub":"String"}]}}]},"VersionNumber":0,"Versions":[{"CoveragePolicyVersionId":0,"CoveragePolicyId":0,"VersionNumber":0,"ChangeNote":"String","ChangedByName":"String","CreatedAtUtc":"0001-01-01T00:00:00.0000000","Doc":{"Intro":"String","LockLine":"String","TemplateName":"String","Prefs":{"AssignmentMode":"String","RestHours":0,"OtThresholdHours":0,"RingWaitMinutes":0,"QuietStart":"String","QuietEnd":"String","RescheduleAllowed":false,"QuietMode":"String","Rings":[{"Key":"String","Label":"String","Sub":"String","WaitMinutes":0,"Enabled":false}]},"Rules":[{"RuleId":"String","Name":"String","Kind":"String","Demand":"String","SourcePolicyName":"String","CascadeLevel":"String","Why":"String","Change":"String","OverrideWho":"String","OverrideConsequence":"String","NoNote":"String","Params":{"String":"String"},"Doc":[{"H":"String","T":"String"}],"Tune":{"Intro":"String","Options":[{"Label":"String","Sub":"String"}]}}]}}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}