Trendsic Platform Service

<back to all web services

CoverageReleaseRequest

Requires Authentication
The following routes are available for this service:
POST/v1/coverage/release

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 CoverageReleaseRequest
{
    public WorkerScheduleItemID: number;
    public Note: string;

    public constructor(init?: Partial<CoverageReleaseRequest>) { (Object as any).assign(this, init); }
}

TypeScript CoverageReleaseRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/coverage/release HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	WorkerScheduleItemID: 0,
	Note: String
}
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
		}
	}
}