| All Verbs | /qry/rounds/draw/diagnostics |
|---|
import Foundation
import ServiceStack
public class GetDrawDignostics : Codable
{
public var id:String
required public init(){}
}
public class DrawDiagnostics : Codable
{
public var id:String
public var initializationInfo:Initialization
public var sequenceGenerationInfo:SequenceGeneration
public var bestFitFinderInfo:BestFitFinder
public var purgerInfo:Purger
public var duration:Int
public var stimulationResponses:[StimulationResponse]
public var localCodePot:LocalCodePotInfo
public var superWin:SuperWinInfo
public var happyHour:HappyHourInfo
public var reasoning:String
public var configuration:AccumulatorConfiguration
public var syphonInfo:SyphonInfo
required public init(){}
}
public class Initialization : Codable
{
public var dataLoadDuration:Int
public var betsCollectionsCreationDuration:Int
public var combinationsOccuranceLookupInitializationDuration:Int
required public init(){}
}
public class SequenceGeneration : Codable
{
public var nrOfThreads:Int
public var nrOfResultsProbed:Int
public var duration:Int
public var avgSinglePassDuration:Int
required public init(){}
}
public class BestFitFinder : Codable
{
public var targetAmount:Double
public var awardedAmount:Double
public var deviation:Double
public var deviationPct:Double
public var sequenceResultType:String
public var isJackPot5Drawn:Bool
public var filteringPeriod:Int
public var winCountOrder:SortingOrder
public var minAmount:Double
public var maxAmount:Double
required public init(){}
}
public enum SortingOrder : Int, Codable
{
case None = 0
case Ascending = 1
case Descending = 2
}
public class Purger : Codable
{
public var prevalentStake:Double
public var poolPurger:String
public var qualifiedPools:[QualifiedPool]
required public init(){}
}
public class QualifiedPool : Codable
{
public var id:Int
public var name:String
public var coefficient:Double
public var availableAmount:Double
public var awardedAmount:Double
public var targetBet:Bet
required public init(){}
}
public class Bet : Codable
{
public var isFound:Bool
public var betId:String
public var slipId:String
public var combStake:String
required public init(){}
}
public class StimulationResponse : Codable
{
public var stimulationId:String
public var status:ResponseStatus
public var failureReason:String
public var slipId:String
public var betId:String
public var amountAwarded:Double
required public init(){}
}
public class LocalCodePotInfo : Codable
{
public var isActive:Bool
public var current:CurrentRoundInfo
public var winners:[WinnerByCode]
required public init(){}
}
public class CurrentRoundInfo : Codable
{
public var roundId:String
public var amount:Double
public var inertCode:String
required public init(){}
}
public class WinnerByCode : Codable
{
public var roundId:String
public var drawnAtUtc:Date
public var slipId:String
public var betId:String
public var code:String
public var amount:Double
public var origin:Origin
public var bettor:Ref
public var locationAddressOrBettorInfo:String
required public init(){}
}
public class Origin : Codable
{
public var application:BettingApp
public var ip:String
public var organization:RefEx
public var region:Ref
public var locationGroup:Ref
public var location:RefEx
public var device:RefEx
public var clerk:Ref
required public init(){}
}
public class BettingApp : Codable
{
public var name:String
public var version:String
required public init(){}
}
public class RefEx : Ref
{
public var data:RecordDictionary<String, String>
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case data
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
data = try container.decodeIfPresent(RecordDictionary<String, String>.self, forKey: .data)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if data != nil { try container.encode(data, forKey: .data) }
}
}
public class Ref : Codable
{
public var id:String
public var val:String
required public init(){}
}
public class RecordDictionary<TKey : Codable, TVal : Codable> : List<TKey:TVal>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class SuperWinInfo : Codable
{
public var durationInMs:Int
required public init(){}
}
public class HappyHourInfo : Codable
{
public var isHappyHour:Bool
public var oddsModifier:Double
public var roundPoolBonusPct:Double
required public init(){}
}
public class AccumulatorConfiguration : AccumulatorConfiguration
{
public var id:String
public var updatedAt:Date
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case id
case updatedAt
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
id = try container.decodeIfPresent(String.self, forKey: .id)
updatedAt = try container.decodeIfPresent(Date.self, forKey: .updatedAt)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if id != nil { try container.encode(id, forKey: .id) }
if updatedAt != nil { try container.encode(updatedAt, forKey: .updatedAt) }
}
}
public class SyphonInfo : Codable
{
public var bettors:[String:Syphon]
public var locations:[String:Syphon]
public var hasSyphons:Bool
public var totalSyphonsInRound:Int
required public init(){}
}
public class Syphon : Codable
{
public var id:String
public var name:String
public var type:SyphonType
public var nrOfCombinations:Int
required public init(){}
}
public enum SyphonType : Int, Codable
{
case Location = 0
case Bettor = 1
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
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: application/xml
Content-Type: application/xml
Content-Length: length
<GetDrawDignostics xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Six4Win.WebApi.ServiceModel">
<Id>String</Id>
</GetDrawDignostics>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<DrawDiagnostics xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Six4Win.ReadModel">
<BestFitFinderInfo>
<AwardedAmount>0</AwardedAmount>
<Deviation>0</Deviation>
<DeviationPct>0</DeviationPct>
<FilteringPeriod>0</FilteringPeriod>
<IsJackPot5Drawn>false</IsJackPot5Drawn>
<MaxAmount>0</MaxAmount>
<MinAmount>0</MinAmount>
<SequenceResultType>String</SequenceResultType>
<TargetAmount>0</TargetAmount>
<WinCountOrder>None</WinCountOrder>
</BestFitFinderInfo>
<Configuration xmlns:d2p1="http://schemas.datacontract.org/2004/07/Six4Win">
<d2p1:AntiSyphonProtectionOverride>false</d2p1:AntiSyphonProtectionOverride>
<d2p1:DebugConfig>
<d2p1:LogBettorSats>false</d2p1:LogBettorSats>
<d2p1:LogLocationStats>false</d2p1:LogLocationStats>
</d2p1:DebugConfig>
<d2p1:DeviationCategorySpanInPct>0</d2p1:DeviationCategorySpanInPct>
<d2p1:DeviationCategoryThresholdAmount>0</d2p1:DeviationCategoryThresholdAmount>
<d2p1:FraudDetectionConfig>
<d2p1:AntiSyphon>
<d2p1:CombinationCountPerRoundThresholdPct>0</d2p1:CombinationCountPerRoundThresholdPct>
<d2p1:ExcludedLocations xmlns:d5p1="http://schemas.datacontract.org/2004/07/Starnet.Common">
<d5p1:Ref>
<d5p1:Id>String</d5p1:Id>
<d5p1:Val>String</d5p1:Val>
</d5p1:Ref>
</d2p1:ExcludedLocations>
<d2p1:IncludeRoundPctAsBettorSyphonCriteria>false</d2p1:IncludeRoundPctAsBettorSyphonCriteria>
<d2p1:IsActive>false</d2p1:IsActive>
</d2p1:AntiSyphon>
</d2p1:FraudDetectionConfig>
<d2p1:HighRollerSettings>
<d2p1:CategoryThresholds>
<d2p1:HighRollerSettings.CategoryThreshold>
<d2p1:Category>Pickerel</d2p1:Category>
<d2p1:Threshold>0</d2p1:Threshold>
</d2p1:HighRollerSettings.CategoryThreshold>
</d2p1:CategoryThresholds>
<d2p1:Pools>
<d2p1:HighRollerSettings.PoolSettings>
<d2p1:Caps>
<d2p1:MaxAmountInPrevalentStakes>0</d2p1:MaxAmountInPrevalentStakes>
<d2p1:MinusCoef>0</d2p1:MinusCoef>
<d2p1:PlusCoef>0</d2p1:PlusCoef>
</d2p1:Caps>
<d2p1:ContributionToRoundPoolPct>0</d2p1:ContributionToRoundPoolPct>
<d2p1:Id>0</d2p1:Id>
<d2p1:IsActive>false</d2p1:IsActive>
<d2p1:Name>String</d2p1:Name>
</d2p1:HighRollerSettings.PoolSettings>
</d2p1:Pools>
</d2p1:HighRollerSettings>
<d2p1:JackPot5ThresholdInterval>
<d2p1:End>0</d2p1:End>
<d2p1:Start>0</d2p1:Start>
</d2p1:JackPot5ThresholdInterval>
<d2p1:LocationOptimizationLevel>None</d2p1:LocationOptimizationLevel>
<d2p1:LowWinCountAffinityInPct>0</d2p1:LowWinCountAffinityInPct>
<d2p1:OverflowCoefficientPoolsToRound>false</d2p1:OverflowCoefficientPoolsToRound>
<d2p1:Pools>
<d2p1:AccumulatorConfiguration.Pool>
<d2p1:Id>0</d2p1:Id>
<d2p1:Name>String</d2p1:Name>
<d2p1:RTP>0</d2p1:RTP>
<d2p1:ReserveRTP>0</d2p1:ReserveRTP>
</d2p1:AccumulatorConfiguration.Pool>
</d2p1:Pools>
<d2p1:PrevalentStake>0</d2p1:PrevalentStake>
<d2p1:PurgeThresholdModifier>0</d2p1:PurgeThresholdModifier>
<d2p1:RoundPoolCircuitBreakerThreshold>0</d2p1:RoundPoolCircuitBreakerThreshold>
<d2p1:WinCountOrderAffinity>
<d2p1:WinCountOrderProbability>
<d2p1:Order>None</d2p1:Order>
<d2p1:Probability>0</d2p1:Probability>
</d2p1:WinCountOrderProbability>
</d2p1:WinCountOrderAffinity>
</Configuration>
<Duration>0</Duration>
<HappyHour>
<IsHappyHour>false</IsHappyHour>
<OddsModifier>0</OddsModifier>
<RoundPoolBonusPct>0</RoundPoolBonusPct>
</HappyHour>
<Id>String</Id>
<InitializationInfo>
<BetsCollectionsCreationDuration>0</BetsCollectionsCreationDuration>
<CombinationsOccuranceLookupInitializationDuration>0</CombinationsOccuranceLookupInitializationDuration>
<DataLoadDuration>0</DataLoadDuration>
</InitializationInfo>
<LocalCodePot>
<DurationInMs>0</DurationInMs>
</LocalCodePot>
<PurgerInfo>
<PoolPurger>String</PoolPurger>
<PrevalentStake>0</PrevalentStake>
<QualifiedPools>
<DrawDiagnostics.QualifiedPool>
<AvailableAmount>0</AvailableAmount>
<AwardedAmount>0</AwardedAmount>
<Coefficient>0</Coefficient>
<Id>0</Id>
<Name>String</Name>
<TargetBet>
<BetId>String</BetId>
<CombStake />
<IsFound>false</IsFound>
<SlipId>String</SlipId>
</TargetBet>
</DrawDiagnostics.QualifiedPool>
</QualifiedPools>
</PurgerInfo>
<Reasoning>String</Reasoning>
<SequenceGenerationInfo>
<AvgSinglePassDuration>0</AvgSinglePassDuration>
<Duration>0</Duration>
<NrOfResultsProbed>0</NrOfResultsProbed>
<NrOfThreads>0</NrOfThreads>
</SequenceGenerationInfo>
<StimulationResponses>
<DrawDiagnostics.StimulationResponse>
<AmountAwarded>0</AmountAwarded>
<BetId>String</BetId>
<FailureReason>String</FailureReason>
<SlipId>String</SlipId>
<Status>Failure</Status>
<StimulationId>String</StimulationId>
</DrawDiagnostics.StimulationResponse>
</StimulationResponses>
<SuperWin>
<DurationInMs>0</DurationInMs>
</SuperWin>
<SyphonInfo xmlns:d2p1="http://schemas.datacontract.org/2004/07/Six4Win.Common">
<d2p1:Bettors xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringSyphonFQuwRXs4>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>
<d2p1:Id>String</d2p1:Id>
<d2p1:Name>String</d2p1:Name>
<d2p1:NrOfCombinations>0</d2p1:NrOfCombinations>
<d2p1:Type>Location</d2p1:Type>
</d3p1:Value>
</d3p1:KeyValueOfstringSyphonFQuwRXs4>
</d2p1:Bettors>
<d2p1:Locations xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringSyphonFQuwRXs4>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>
<d2p1:Id>String</d2p1:Id>
<d2p1:Name>String</d2p1:Name>
<d2p1:NrOfCombinations>0</d2p1:NrOfCombinations>
<d2p1:Type>Location</d2p1:Type>
</d3p1:Value>
</d3p1:KeyValueOfstringSyphonFQuwRXs4>
</d2p1:Locations>
</SyphonInfo>
</DrawDiagnostics>