<back to all web services

ABTestViewModel

The following routes are available for this service:
PUT/RestApi/ab-testing
import Foundation
import ServiceStack

public class ABTestViewModel : Codable
{
    public var id:String
    public var title:String
    public var Description:String
    public var startDate:Date?
    public var stopDate:Date?
    public var page:String
    public var siteId:String
    public var culture:String
    public var variations:[VariationViewModel] = []
    public var goals:[GoalViewModel] = []
    public var reportUrl:String
    public var lastModified:Date
    public var status:ABTestStatus
    public var owner:String
    public var winnerVariationId:String?
    public var selectedVariationId:String?
    public var pageNodeErrorMessage:String
    public var warningMessage:String
    public var apiKey:String
    public var userSegmentId:String?

    required public init(){}
}

public class VariationViewModel : Codable
{
    public var id:String?
    public var name:String
    public var distribution:Int
    public var isOriginal:Bool
    public var ordinal:Int
    public var pageDataId:String?
    public var isWinner:Bool

    required public init(){}
}

public class GoalViewModel : Codable
{
    public var id:String?
    public var goalType:GoalType
    public var goalNameResourceKey:String
    public var predicateOperator:String
    public var objectId:String
    public var objectName:String
    public var objectCulture:String
    public var isPrimary:Bool
    public var ordinal:Int

    required public init(){}
}

public enum GoalType : String, Codable
{
    case NextPageView
    case FormSubmission
    case DecConversion
}

public enum ABTestStatus : String, Codable
{
    case NotStarted
    case Scheduled
    case Active
    case Stopped
    case Ended
}


Swift ABTestViewModel 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.

PUT /RestApi/ab-testing HTTP/1.1 
Host: www.asg.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Title: String,
	Description: String,
	StartDate: 0001-01-01,
	StopDate: 0001-01-01,
	Culture: String,
	ReportUrl: String,
	LastModified: 0001-01-01,
	Status: NotStarted,
	Owner: String,
	WinnerVariationId: 00000000-0000-0000-0000-000000000000,
	SelectedVariationId: 00000000-0000-0000-0000-000000000000,
	PageNodeErrorMessage: String,
	WarningMessage: String,
	ApiKey: String,
	UserSegmentId: 00000000-0000-0000-0000-000000000000
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Title: String,
	Description: String,
	StartDate: 0001-01-01,
	StopDate: 0001-01-01,
	Culture: String,
	ReportUrl: String,
	LastModified: 0001-01-01,
	Status: NotStarted,
	Owner: String,
	WinnerVariationId: 00000000-0000-0000-0000-000000000000,
	SelectedVariationId: 00000000-0000-0000-0000-000000000000,
	PageNodeErrorMessage: String,
	WarningMessage: String,
	ApiKey: String,
	UserSegmentId: 00000000-0000-0000-0000-000000000000
}