Six4Win.WebApi

<back to all web services

GetDrawDignostics

The following routes are available for this service:
All Verbs/qry/rounds/draw/diagnostics
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class GetDrawDignostics
{
    open var id:String? = null
}

open class DrawDiagnostics
{
    open var id:String? = null
    open var initializationInfo:Initialization? = null
    open var sequenceGenerationInfo:SequenceGeneration? = null
    open var bestFitFinderInfo:BestFitFinder? = null
    open var purgerInfo:Purger? = null
    open var duration:Long? = null
    open var stimulationResponses:ArrayList<StimulationResponse>? = null
    open var localCodePot:LocalCodePotInfo? = null
    open var superWin:SuperWinInfo? = null
    open var happyHour:HappyHourInfo? = null
    open var reasoning:String? = null
    open var configuration:AccumulatorConfiguration? = null
    open var syphonInfo:SyphonInfo? = null
}

open class Initialization
{
    open var dataLoadDuration:Long? = null
    open var betsCollectionsCreationDuration:Long? = null
    open var combinationsOccuranceLookupInitializationDuration:Long? = null
}

open class SequenceGeneration
{
    open var nrOfThreads:Int? = null
    open var nrOfResultsProbed:Int? = null
    open var duration:Long? = null
    open var avgSinglePassDuration:Long? = null
}

open class BestFitFinder
{
    open var targetAmount:BigDecimal? = null
    open var awardedAmount:BigDecimal? = null
    open var deviation:BigDecimal? = null
    open var deviationPct:BigDecimal? = null
    open var sequenceResultType:String? = null
    open var isJackPot5Drawn:Boolean? = null
    open var filteringPeriod:Long? = null
    open var winCountOrder:SortingOrder? = null
    open var minAmount:BigDecimal? = null
    open var maxAmount:BigDecimal? = null
}

enum class SortingOrder(val value:Int)
{
    @SerializedName("0") None(0),
    @SerializedName("1") Ascending(1),
    @SerializedName("2") Descending(2),
}

open class Purger
{
    open var prevalentStake:BigDecimal? = null
    open var poolPurger:String? = null
    open var qualifiedPools:ArrayList<QualifiedPool>? = null
}

open class QualifiedPool
{
    open var id:Int? = null
    open var name:String? = null
    open var coefficient:BigDecimal? = null
    open var availableAmount:BigDecimal? = null
    open var awardedAmount:BigDecimal? = null
    open var targetBet:Bet? = null
}

open class Bet
{
    open var isFound:Boolean? = null
    open var betId:String? = null
    open var slipId:String? = null
    open var combStake:Object? = null
}

open class StimulationResponse
{
    open var stimulationId:String? = null
    open var status:ResponseStatus? = null
    open var failureReason:String? = null
    open var slipId:String? = null
    open var betId:String? = null
    open var amountAwarded:BigDecimal? = null
}

open class LocalCodePotInfo
{
    open var isActive:Boolean? = null
    open var current:CurrentRoundInfo? = null
    open var winners:ArrayList<WinnerByCode>? = null
}

open class CurrentRoundInfo
{
    open var roundId:String? = null
    open var amount:BigDecimal? = null
    open var inertCode:String? = null
}

open class WinnerByCode
{
    open var roundId:String? = null
    open var drawnAtUtc:Date? = null
    open var slipId:String? = null
    open var betId:String? = null
    open var code:String? = null
    open var amount:BigDecimal? = null
    open var origin:Origin? = null
    open var bettor:Ref? = null
    open var locationAddressOrBettorInfo:String? = null
}

open class Origin
{
    open var application:BettingApp? = null
    open var ip:String? = null
    open var organization:RefEx? = null
    open var region:Ref? = null
    open var locationGroup:Ref? = null
    open var location:RefEx? = null
    open var device:RefEx? = null
    open var clerk:Ref? = null
}

open class BettingApp
{
    open var name:String? = null
    open var version:String? = null
}

open class RefEx : Ref()
{
    @SerializedName("data") open var Data:RecordDictionary<String, String>? = null
}

open class Ref
{
    open var id:String? = null
    @SerializedName("val") open var Val:String? = null
}

open class RecordDictionary<TKey, TVal> : HashMap<TKey,TVal>()
{
}

open class SuperWinInfo
{
    open var durationInMs:Long? = null
}

open class HappyHourInfo
{
    open var isHappyHour:Boolean? = null
    open var oddsModifier:BigDecimal? = null
    open var roundPoolBonusPct:BigDecimal? = null
}

open class AccumulatorConfiguration : AccumulatorConfiguration()
{
    open var id:String? = null
    open var updatedAt:Date? = null
}

open class SyphonInfo
{
    open var bettors:HashMap<String,Syphon>? = null
    open var locations:HashMap<String,Syphon>? = null
    open var hasSyphons:Boolean? = null
    open var totalSyphonsInRound:Int? = null
}

open class Syphon
{
    open var id:String? = null
    open var name:String? = null
    @SerializedName("type") open var Type:SyphonType? = null
    open var nrOfCombinations:Int? = null
}

enum class SyphonType(val value:Int)
{
    @SerializedName("0") Location(0),
    @SerializedName("1") Bettor(1),
}

Kotlin GetDrawDignostics 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 /qry/rounds/draw/diagnostics HTTP/1.1 
Host: s4w2.api.bettor.cc 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	initializationInfo: 
	{
		dataLoadDuration: 0,
		betsCollectionsCreationDuration: 0,
		combinationsOccuranceLookupInitializationDuration: 0
	},
	sequenceGenerationInfo: 
	{
		nrOfThreads: 0,
		nrOfResultsProbed: 0,
		duration: 0,
		avgSinglePassDuration: 0
	},
	bestFitFinderInfo: 
	{
		targetAmount: 0,
		awardedAmount: 0,
		deviation: 0,
		deviationPct: 0,
		sequenceResultType: String,
		isJackPot5Drawn: False,
		filteringPeriod: 0,
		winCountOrder: 0,
		minAmount: 0,
		maxAmount: 0
	},
	purgerInfo: 
	{
		prevalentStake: 0,
		poolPurger: String,
		qualifiedPools: 
		[
			{
				id: 0,
				name: String,
				coefficient: 0,
				availableAmount: 0,
				awardedAmount: 0,
				targetBet: 
				{
					isFound: False,
					betId: String,
					slipId: String,
					combStake: {}
				}
			}
		]
	},
	duration: 0,
	stimulationResponses: 
	[
		{
			stimulationId: String,
			status: 0,
			failureReason: String,
			slipId: String,
			betId: String,
			amountAwarded: 0
		}
	],
	localCodePot: 
	{
		durationInMs: 0
	},
	superWin: 
	{
		durationInMs: 0
	},
	happyHour: 
	{
		isHappyHour: False,
		oddsModifier: 0,
		roundPoolBonusPct: 0
	},
	reasoning: String,
	configuration: 
	{
		pools: 
		[
			{
				id: 0,
				name: String,
				rtp: 0,
				reserveRTP: 0,
				totalRTP: 0
			}
		],
		prevalentStake: 0,
		purgeThresholdModifier: 0,
		locationOptimizationLevel: 0,
		jackPot5ThresholdInterval: 
		{
			start: 0,
			end: 0
		},
		deviationCategorySpanInPct: 0,
		deviationCategoryThresholdAmount: 0,
		roundPoolCircuitBreakerThreshold: 0,
		lowWinCountAffinityInPct: 0,
		winCountOrderAffinity: 
		[
			{
				order: 0,
				probability: 0
			}
		],
		highRollerSettings: 
		{
			pools: 
			[
				{
					id: 0,
					name: String,
					isActive: False,
					contributionToRoundPoolPct: 0,
					caps: 
					{
						plusCoef: 0,
						minusCoef: 0,
						maxAmountInPrevalentStakes: 0
					}
				}
			],
			categoryThresholds: 
			[
				{
					category: 0,
					threshold: 0
				}
			]
		},
		overflowCoefficientPoolsToRound: False,
		antiSyphonProtectionOverride: False,
		fraudDetectionConfig: 
		{
			antiSyphon: 
			{
				combinationCountPerRoundThresholdPct: 0,
				excludedLocations: 
				[
					{
						id: String,
						val: String
					}
				],
				includeRoundPctAsBettorSyphonCriteria: False,
				isActive: False
			}
		},
		debugConfig: 
		{
			logLocationStats: False,
			logBettorSats: False
		}
	},
	syphonInfo: 
	{
		bettors: 
		{
			String: 
			{
				id: String,
				name: String,
				type: 0,
				nrOfCombinations: 0
			}
		},
		locations: 
		{
			String: 
			{
				id: String,
				name: String,
				type: 0,
				nrOfCombinations: 0
			}
		},
		hasSyphons: True,
		totalSyphonsInRound: 2
	}
}