/* Options: Date: 2025-08-05 02:33:31 SwiftVersion: 5.0 Version: 8.0 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://www.asg.com.au/RestApi //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetAnalyticsAccountsMessage.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/Sitefinity/Analytics/GetAnalyticsAccounts") // @Route("/GetAnalyticsAccounts") public class GetAnalyticsAccountsMessage : IReturn, Codable { public typealias Return = GetAnalyticsAccountsData public var siteId:String required public init(){} } public class GetAnalyticsAccountsData : Codable { public var accounts:[AnalyticsAccountInfo] = [] public var selectedAccount:String public var selectedProfileId:String required public init(){} } // @DataContract public class AnalyticsAccountInfo : IGoogleAnalyticsProviderConfiguration, Codable { // @DataMember(Name="id") public var id:String // @DataMember(Name="accountId") public var accountId:String // @DataMember(Name="name") public var name:String // @DataMember(Name="webPropertyId") public var webPropertyId:String required public init(){} } public protocol IGoogleAnalyticsProviderConfiguration { var accountId:String { get set } var accountName:String { get set } var id:String { get set } var webPropertyId:String { get set } var clientId:String { get set } var clientSecret:String { get set } var accessToken:String { get set } var tokenType:String { get set } var refreshToken:String { get set } }