Trendsic Platform Service

<back to all web services

CoverageApprovalDecideRequest

Requires Authentication
The following routes are available for this service:
POST/v1/coverage/approvals/{CoverageApprovalId}/approve
namespace CRM.AgencyPlatform.API.Internal

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type CoverageExplanationSource() = 
        member val PolicyName:String = null with get,set
        member val CascadeLevel:String = null with get,set

    [<AllowNullLiteral>]
    type CoverageExplanationOverride() = 
        member val Who:String = null with get,set
        member val Consequence:String = null with get,set

    [<AllowNullLiteral>]
    type CoverageExplanation() = 
        member val PlainSentence:String = null with get,set
        member val RuleId:String = null with get,set
        member val RuleName:String = null with get,set
        member val Demand:String = null with get,set
        member val Source:CoverageExplanationSource = null with get,set
        member val Kind:String = null with get,set
        member val WhyItExists:String = null with get,set
        member val WhatWouldChangeIt:String = null with get,set
        member val Override:CoverageExplanationOverride = null with get,set
        member val Drill:String = null with get,set

    [<AllowNullLiteral>]
    type CoverageCandidateCheck() = 
        member val CheckId:String = null with get,set
        member val Result:String = null with get,set
        member val Expl:CoverageExplanation = null with get,set

    [<AllowNullLiteral>]
    type CoverageEffect() = 
        member val Icon:String = null with get,set
        member val Text:String = null with get,set
        member val RuleId:String = null with get,set
        member val Expl:CoverageExplanation = null with get,set

    [<AllowNullLiteral>]
    type CoverageCandidate() = 
        member val ContactId:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val FirstName:String = null with get,set
        member val Initials:String = null with get,set
        member val Rank:Int32 = new Int32() with get,set
        member val DiffLine:String = null with get,set
        member val CostLine:String = null with get,set
        member val CostTone:String = null with get,set
        member val RankExpl:CoverageExplanation = null with get,set
        member val MarginPct:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val MarginTone:String = null with get,set
        member val Loaded:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Billed:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val OtHours:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val OtPremium:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Checks:ResizeArray<CoverageCandidateCheck> = new ResizeArray<CoverageCandidateCheck>() with get,set
        member val Preview:ResizeArray<CoverageEffect> = new ResizeArray<CoverageEffect>() with get,set
        member val Confirm:ResizeArray<CoverageEffect> = new ResizeArray<CoverageEffect>() with get,set
        member val HasWarn:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CoverageBlockedCandidate() = 
        member val ContactId:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Initials:String = null with get,set
        member val Reason:String = null with get,set
        member val ChangeChip:String = null with get,set
        member val Expl:CoverageExplanation = null with get,set

    [<AllowNullLiteral>]
    type CoverageOfferInfo() = 
        member val CoverageOfferId:Int32 = new Int32() with get,set
        member val ContactId:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Ring:Int32 = new Int32() with get,set
        member val Channel:String = null with get,set
        member val Status:String = null with get,set
        member val SentAtUtc:DateTime = new DateTime() with get,set
        member val RespondedAtUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type CoverageApprovalInfo() = 
        member val CoverageApprovalId:Int32 = new Int32() with get,set
        member val CoverageGapId:Int32 = new Int32() with get,set
        member val Type:String = null with get,set
        member val Status:String = null with get,set
        member val RequestedAtUtc:DateTime = new DateTime() with get,set
        member val Effects:ResizeArray<CoverageEffect> = new ResizeArray<CoverageEffect>() with get,set
        member val ContactId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ContactName:String = null with get,set
        member val DecidedAtUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val DecisionNote:String = null with get,set

    [<AllowNullLiteral>]
    type CoverageGapEventInfo() = 
        member val EventType:String = null with get,set
        member val Channel:String = null with get,set
        member val Detail:String = null with get,set
        member val ContactName:String = null with get,set
        member val AtUtc:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type CoverageMoveOption() = 
        member val Key:String = null with get,set
        member val Label:String = null with get,set
        member val Detail:String = null with get,set
        member val Expl:CoverageExplanation = null with get,set

    [<AllowNullLiteral>]
    type CoverageNoShowAttempt() = 
        member val AtUtc:DateTime = new DateTime() with get,set
        member val Channel:String = null with get,set
        member val Note:String = null with get,set

    [<AllowNullLiteral>]
    type CoverageNoShowState() = 
        member val GraceUntilUtc:DateTime = new DateTime() with get,set
        member val Attempts:ResizeArray<CoverageNoShowAttempt> = new ResizeArray<CoverageNoShowAttempt>() with get,set
        member val DeclaredAtUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val AttendanceNote:Boolean = new Boolean() with get,set
        member val FalseAlarm:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CoverageLeaveCheckpoint() = 
        member val AtUtc:DateTime = new DateTime() with get,set
        member val Note:String = null with get,set
        member val ByName:String = null with get,set

    [<AllowNullLiteral>]
    type CoverageLeaveState() = 
        member val Fmla:Boolean = new Boolean() with get,set
        member val Began:DateTime = new DateTime() with get,set
        member val EstReturn:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CheckpointDays:Int32 = new Int32() with get,set
        member val NextCheckpointUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Checkpoints:ResizeArray<CoverageLeaveCheckpoint> = new ResizeArray<CoverageLeaveCheckpoint>() with get,set
        member val InterimContactId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val InterimName:String = null with get,set
        member val InterimStart:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val InterimEnd:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val RequisitionOpened:Boolean = new Boolean() with get,set
        member val StaffPostingId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ChainedGapIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set
        member val ParentLeaveGapId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val RestoredAtUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type CoverageGap() = 
        member val CoverageGapId:Int32 = new Int32() with get,set
        member val CoverageGapUID:Guid = new Guid() with get,set
        member val BranchId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Status:String = null with get,set
        member val Track:String = null with get,set
        member val OutContactID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val OutName:String = null with get,set
        member val OutInitials:String = null with get,set
        member val JobID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val JobName:String = null with get,set
        member val ProjectID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val WorkerScheduleItemID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val WindowStart:DateTime = new DateTime() with get,set
        member val WindowEnd:DateTime = new DateTime() with get,set
        member val Reason:String = null with get,set
        member val MustFill:Boolean = new Boolean() with get,set
        member val MustFillExpl:CoverageExplanation = null with get,set
        member val FilledByContactID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val FilledByName:String = null with get,set
        member val RecordNo:String = null with get,set
        member val DecidedPolicyVersionId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val CreatedAt:DateTime = new DateTime() with get,set
        member val UpdatedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val QualifiedLine:String = null with get,set
        member val Candidates:ResizeArray<CoverageCandidate> = new ResizeArray<CoverageCandidate>() with get,set
        member val Blocked:ResizeArray<CoverageBlockedCandidate> = new ResizeArray<CoverageBlockedCandidate>() with get,set
        member val Offers:ResizeArray<CoverageOfferInfo> = new ResizeArray<CoverageOfferInfo>() with get,set
        member val Approvals:ResizeArray<CoverageApprovalInfo> = new ResizeArray<CoverageApprovalInfo>() with get,set
        member val Timeline:ResizeArray<CoverageGapEventInfo> = new ResizeArray<CoverageGapEventInfo>() with get,set
        member val MoveOptions:ResizeArray<CoverageMoveOption> = new ResizeArray<CoverageMoveOption>() with get,set
        member val OrderExpl:CoverageExplanation = null with get,set
        member val AssignmentMode:String = null with get,set
        member val NoShow:CoverageNoShowState = null with get,set
        member val Leave:CoverageLeaveState = null with get,set
        member val CustomerName:String = null with get,set

    [<AllowNullLiteral>]
    type CoverageGapResponse() = 
        member val Gap:CoverageGap = null with get,set
        member val ChainedPreview:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val CanSeePay:Boolean = new Boolean() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type CoverageApprovalDecideRequest() = 
        member val CoverageApprovalId:Int32 = new Int32() with get,set
        member val Approve:Boolean = new Boolean() with get,set
        member val Note:String = null with get,set

F# CoverageApprovalDecideRequest 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/approvals/{CoverageApprovalId}/approve HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CoverageApprovalId: 0,
	Approve: False,
	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
		}
	}
}