| POST | /v1/coverage/gaps/{CoverageGapId}/offer |
|---|
export class CoverageExplanationSource
{
public PolicyName: string;
public CascadeLevel: string;
public constructor(init?: Partial<CoverageExplanationSource>) { (Object as any).assign(this, init); }
}
export class CoverageExplanationOverride
{
public Who: string;
public Consequence: string;
public constructor(init?: Partial<CoverageExplanationOverride>) { (Object as any).assign(this, init); }
}
export class CoverageExplanation
{
public PlainSentence: string;
public RuleId: string;
public RuleName: string;
public Demand: string;
public Source: CoverageExplanationSource;
public Kind: string;
public WhyItExists: string;
public WhatWouldChangeIt: string;
public Override: CoverageExplanationOverride;
public Drill: string;
public constructor(init?: Partial<CoverageExplanation>) { (Object as any).assign(this, init); }
}
export class CoverageCandidateCheck
{
public CheckId: string;
public Result: string;
public Expl: CoverageExplanation;
public constructor(init?: Partial<CoverageCandidateCheck>) { (Object as any).assign(this, init); }
}
export class CoverageEffect
{
public Icon: string;
public Text: string;
public RuleId: string;
public Expl: CoverageExplanation;
public constructor(init?: Partial<CoverageEffect>) { (Object as any).assign(this, init); }
}
export class CoverageCandidate
{
public ContactId: number;
public Name: string;
public FirstName: string;
public Initials: string;
public Rank: number;
public DiffLine: string;
public CostLine: string;
public CostTone: string;
public RankExpl: CoverageExplanation;
public MarginPct?: number;
public MarginTone: string;
public Loaded?: number;
public Billed?: number;
public OtHours?: number;
public OtPremium?: number;
public Checks: CoverageCandidateCheck[] = [];
public Preview: CoverageEffect[] = [];
public Confirm: CoverageEffect[] = [];
public HasWarn: boolean;
public constructor(init?: Partial<CoverageCandidate>) { (Object as any).assign(this, init); }
}
export class CoverageBlockedCandidate
{
public ContactId: number;
public Name: string;
public Initials: string;
public Reason: string;
public ChangeChip: string;
public Expl: CoverageExplanation;
public constructor(init?: Partial<CoverageBlockedCandidate>) { (Object as any).assign(this, init); }
}
export class CoverageOfferInfo
{
public CoverageOfferId: number;
public ContactId: number;
public Name: string;
public Ring: number;
public Channel: string;
public Status: string;
public SentAtUtc: string;
public RespondedAtUtc?: string;
public constructor(init?: Partial<CoverageOfferInfo>) { (Object as any).assign(this, init); }
}
export class CoverageApprovalInfo
{
public CoverageApprovalId: number;
public CoverageGapId: number;
public Type: string;
public Status: string;
public RequestedAtUtc: string;
public Effects: CoverageEffect[] = [];
public ContactId?: number;
public ContactName: string;
public DecidedAtUtc?: string;
public DecisionNote: string;
public constructor(init?: Partial<CoverageApprovalInfo>) { (Object as any).assign(this, init); }
}
export class CoverageGapEventInfo
{
public EventType: string;
public Channel: string;
public Detail: string;
public ContactName: string;
public AtUtc: string;
public constructor(init?: Partial<CoverageGapEventInfo>) { (Object as any).assign(this, init); }
}
export class CoverageMoveOption
{
public Key: string;
public Label: string;
public Detail: string;
public Expl: CoverageExplanation;
public constructor(init?: Partial<CoverageMoveOption>) { (Object as any).assign(this, init); }
}
export class CoverageNoShowAttempt
{
public AtUtc: string;
public Channel: string;
public Note: string;
public constructor(init?: Partial<CoverageNoShowAttempt>) { (Object as any).assign(this, init); }
}
export class CoverageNoShowState
{
public GraceUntilUtc: string;
public Attempts: CoverageNoShowAttempt[] = [];
public DeclaredAtUtc?: string;
public AttendanceNote: boolean;
public FalseAlarm: boolean;
public constructor(init?: Partial<CoverageNoShowState>) { (Object as any).assign(this, init); }
}
export class CoverageLeaveCheckpoint
{
public AtUtc: string;
public Note: string;
public ByName: string;
public constructor(init?: Partial<CoverageLeaveCheckpoint>) { (Object as any).assign(this, init); }
}
export class CoverageLeaveState
{
public Fmla: boolean;
public Began: string;
public EstReturn?: string;
public CheckpointDays: number;
public NextCheckpointUtc?: string;
public Checkpoints: CoverageLeaveCheckpoint[] = [];
public InterimContactId?: number;
public InterimName: string;
public InterimStart?: string;
public InterimEnd?: string;
public RequisitionOpened: boolean;
public StaffPostingId?: number;
public ChainedGapIds: number[] = [];
public ParentLeaveGapId?: number;
public RestoredAtUtc?: string;
public constructor(init?: Partial<CoverageLeaveState>) { (Object as any).assign(this, init); }
}
export class CoverageGap
{
public CoverageGapId: number;
public CoverageGapUID: string;
public BranchId?: string;
public Status: string;
public Track: string;
public OutContactID?: number;
public OutName: string;
public OutInitials: string;
public JobID?: number;
public JobName: string;
public ProjectID?: number;
public WorkerScheduleItemID?: number;
public WindowStart: string;
public WindowEnd: string;
public Reason: string;
public MustFill: boolean;
public MustFillExpl: CoverageExplanation;
public FilledByContactID?: number;
public FilledByName: string;
public RecordNo: string;
public DecidedPolicyVersionId?: number;
public CreatedAt: string;
public UpdatedAt?: string;
public QualifiedLine: string;
public Candidates: CoverageCandidate[] = [];
public Blocked: CoverageBlockedCandidate[] = [];
public Offers: CoverageOfferInfo[] = [];
public Approvals: CoverageApprovalInfo[] = [];
public Timeline: CoverageGapEventInfo[] = [];
public MoveOptions: CoverageMoveOption[] = [];
public OrderExpl: CoverageExplanation;
public AssignmentMode: string;
public NoShow: CoverageNoShowState;
public Leave: CoverageLeaveState;
public CustomerName: string;
public constructor(init?: Partial<CoverageGap>) { (Object as any).assign(this, init); }
}
export class CoverageGapResponse
{
public Gap: CoverageGap;
public ChainedPreview?: number;
public CanSeePay: boolean;
public ResponseStatus: ResponseStatus;
public constructor(init?: Partial<CoverageGapResponse>) { (Object as any).assign(this, init); }
}
export class CoverageOfferRequest
{
public CoverageGapId: number;
public ContactIds: number[] = [];
public constructor(init?: Partial<CoverageOfferRequest>) { (Object as any).assign(this, init); }
}
TypeScript CoverageOfferRequest DTOs
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 /v1/coverage/gaps/{CoverageGapId}/offer HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
CoverageGapId: 0,
ContactIds:
[
0
]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Gap:
{
CoverageGapId: 0,
CoverageGapUID: 00000000000000000000000000000000,
BranchId: 00000000000000000000000000000000,
Status: String,
Track: String,
OutContactID: 0,
OutName: String,
OutInitials: String,
JobID: 0,
JobName: String,
ProjectID: 0,
WorkerScheduleItemID: 0,
WindowStart: 0001-01-01,
WindowEnd: 0001-01-01,
Reason: String,
MustFill: False,
MustFillExpl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
},
FilledByContactID: 0,
FilledByName: String,
RecordNo: String,
DecidedPolicyVersionId: 0,
CreatedAt: 0001-01-01,
UpdatedAt: 0001-01-01,
QualifiedLine: String,
Candidates:
[
{
ContactId: 0,
Name: String,
FirstName: String,
Initials: String,
Rank: 0,
DiffLine: String,
CostLine: String,
CostTone: String,
RankExpl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
},
MarginPct: 0,
MarginTone: String,
Loaded: 0,
Billed: 0,
OtHours: 0,
OtPremium: 0,
Checks:
[
{
CheckId: String,
Result: String,
Expl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
}
}
],
Preview:
[
{
Icon: String,
Text: String,
RuleId: String,
Expl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
}
}
],
Confirm:
[
{
Icon: String,
Text: String,
RuleId: String,
Expl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
}
}
],
HasWarn: False
}
],
Blocked:
[
{
ContactId: 0,
Name: String,
Initials: String,
Reason: String,
ChangeChip: String,
Expl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
}
}
],
Offers:
[
{
CoverageOfferId: 0,
ContactId: 0,
Name: String,
Ring: 0,
Channel: String,
Status: String,
SentAtUtc: 0001-01-01,
RespondedAtUtc: 0001-01-01
}
],
Approvals:
[
{
CoverageApprovalId: 0,
CoverageGapId: 0,
Type: String,
Status: String,
RequestedAtUtc: 0001-01-01,
Effects:
[
{
Icon: String,
Text: String,
RuleId: String,
Expl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
}
}
],
ContactId: 0,
ContactName: String,
DecidedAtUtc: 0001-01-01,
DecisionNote: String
}
],
Timeline:
[
{
EventType: String,
Channel: String,
Detail: String,
ContactName: String,
AtUtc: 0001-01-01
}
],
MoveOptions:
[
{
Key: String,
Label: String,
Detail: String,
Expl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
}
}
],
OrderExpl:
{
PlainSentence: String,
RuleId: String,
RuleName: String,
Demand: String,
Source:
{
PolicyName: String,
CascadeLevel: String
},
Kind: String,
WhyItExists: String,
WhatWouldChangeIt: String,
Override:
{
Who: String,
Consequence: String
},
Drill: String
},
AssignmentMode: String,
NoShow:
{
GraceUntilUtc: 0001-01-01,
Attempts:
[
{
AtUtc: 0001-01-01,
Channel: String,
Note: String
}
],
DeclaredAtUtc: 0001-01-01,
AttendanceNote: False,
FalseAlarm: False
},
Leave:
{
Fmla: False,
Began: 0001-01-01,
EstReturn: 0001-01-01,
CheckpointDays: 0,
NextCheckpointUtc: 0001-01-01,
Checkpoints:
[
{
AtUtc: 0001-01-01,
Note: String,
ByName: String
}
],
InterimContactId: 0,
InterimName: String,
InterimStart: 0001-01-01,
InterimEnd: 0001-01-01,
RequisitionOpened: False,
StaffPostingId: 0,
ChainedGapIds:
[
0
],
ParentLeaveGapId: 0,
RestoredAtUtc: 0001-01-01
},
CustomerName: String
},
ChainedPreview: 0,
CanSeePay: False,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}