| GET | /v1/coverage/gaps |
|---|
import Foundation
import ServiceStack
public class CoverageGapsRequest : Codable
{
public var branchId:String?
required public init(){}
}
public class CoverageGapsResponse : Codable
{
public var gaps:[CoverageGap] = []
public var policyName:String
public var lockLine:String
public var assignmentMode:String
public var canApprove:Bool
public var canEditPolicy:Bool
public var canSeePay:Bool
public var responseStatus:ResponseStatus
required public init(){}
}
public class CoverageGap : Codable
{
public var coverageGapId:Int
public var coverageGapUID:String
public var branchId:String?
public var status:String
public var track:String
public var outContactID:Int?
public var outName:String
public var outInitials:String
public var jobID:Int?
public var jobName:String
public var projectID:Int?
public var workerScheduleItemID:Int?
public var windowStart:Date
public var windowEnd:Date
public var reason:String
public var mustFill:Bool
public var mustFillExpl:CoverageExplanation
public var filledByContactID:Int?
public var filledByName:String
public var recordNo:String
public var decidedPolicyVersionId:Int?
public var createdAt:Date
public var updatedAt:Date?
public var qualifiedLine:String
public var candidates:[CoverageCandidate] = []
public var blocked:[CoverageBlockedCandidate] = []
public var offers:[CoverageOfferInfo] = []
public var approvals:[CoverageApprovalInfo] = []
public var timeline:[CoverageGapEventInfo] = []
public var moveOptions:[CoverageMoveOption] = []
public var orderExpl:CoverageExplanation
public var assignmentMode:String
public var noShow:CoverageNoShowState
public var leave:CoverageLeaveState
public var customerName:String
required public init(){}
}
public class CoverageExplanation : Codable
{
public var plainSentence:String
public var ruleId:String
public var ruleName:String
public var demand:String
public var source:CoverageExplanationSource
public var kind:String
public var whyItExists:String
public var whatWouldChangeIt:String
public var `override`:CoverageExplanationOverride
public var drill:String
required public init(){}
}
public class CoverageExplanationSource : Codable
{
public var policyName:String
public var cascadeLevel:String
required public init(){}
}
public class CoverageExplanationOverride : Codable
{
public var who:String
public var consequence:String
required public init(){}
}
public class CoverageCandidate : Codable
{
public var contactId:Int
public var name:String
public var firstName:String
public var initials:String
public var rank:Int
public var diffLine:String
public var costLine:String
public var costTone:String
public var rankExpl:CoverageExplanation
public var marginPct:Double?
public var marginTone:String
public var loaded:Double?
public var billed:Double?
public var otHours:Double?
public var otPremium:Double?
public var checks:[CoverageCandidateCheck] = []
public var preview:[CoverageEffect] = []
public var confirm:[CoverageEffect] = []
public var hasWarn:Bool
required public init(){}
}
public class CoverageCandidateCheck : Codable
{
public var checkId:String
public var result:String
public var expl:CoverageExplanation
required public init(){}
}
public class CoverageEffect : Codable
{
public var icon:String
public var text:String
public var ruleId:String
public var expl:CoverageExplanation
required public init(){}
}
public class CoverageBlockedCandidate : Codable
{
public var contactId:Int
public var name:String
public var initials:String
public var reason:String
public var changeChip:String
public var expl:CoverageExplanation
required public init(){}
}
public class CoverageOfferInfo : Codable
{
public var coverageOfferId:Int
public var contactId:Int
public var name:String
public var ring:Int
public var channel:String
public var status:String
public var sentAtUtc:Date
public var respondedAtUtc:Date?
required public init(){}
}
public class CoverageApprovalInfo : Codable
{
public var coverageApprovalId:Int
public var coverageGapId:Int
public var type:String
public var status:String
public var requestedAtUtc:Date
public var effects:[CoverageEffect] = []
public var contactId:Int?
public var contactName:String
public var decidedAtUtc:Date?
public var decisionNote:String
required public init(){}
}
public class CoverageGapEventInfo : Codable
{
public var eventType:String
public var channel:String
public var detail:String
public var contactName:String
public var atUtc:Date
required public init(){}
}
public class CoverageMoveOption : Codable
{
public var key:String
public var label:String
public var detail:String
public var expl:CoverageExplanation
required public init(){}
}
public class CoverageNoShowState : Codable
{
public var graceUntilUtc:Date
public var attempts:[CoverageNoShowAttempt] = []
public var declaredAtUtc:Date?
public var attendanceNote:Bool
public var falseAlarm:Bool
required public init(){}
}
public class CoverageNoShowAttempt : Codable
{
public var atUtc:Date
public var channel:String
public var note:String
required public init(){}
}
public class CoverageLeaveState : Codable
{
public var fmla:Bool
public var began:Date
public var estReturn:Date?
public var checkpointDays:Int
public var nextCheckpointUtc:Date?
public var checkpoints:[CoverageLeaveCheckpoint] = []
public var interimContactId:Int?
public var interimName:String
public var interimStart:Date?
public var interimEnd:Date?
public var requisitionOpened:Bool
public var staffPostingId:Int?
public var chainedGapIds:[Int] = []
public var parentLeaveGapId:Int?
public var restoredAtUtc:Date?
required public init(){}
}
public class CoverageLeaveCheckpoint : Codable
{
public var atUtc:Date
public var note:String
public var byName:String
required public init(){}
}
Swift CoverageGapsRequest 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.
GET /v1/coverage/gaps HTTP/1.1 Host: api.dev.dynamics.trendsic.com Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Gaps:
[
{
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
}
],
PolicyName: String,
LockLine: String,
AssignmentMode: String,
CanApprove: False,
CanEditPolicy: False,
CanSeePay: False,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}