/* Options: Date: 2026-11-08 11:38:40 SwiftVersion: 5.0 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://devapi.billhighway.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CacheStatsRq.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/devops/api/caches/{location}/stats", "GET") public class CacheStatsRq : IReturn, Codable { public typealias Return = CacheStatsRs public var location:String? required public init(){} } public class CacheStatsRs : Codable { public var statistics:CacheStatResult? required public init(){} } public class CacheStatResult : CacheResultBase { public var statistics:[CacheStat] = [] public var isHit:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case statistics case isHit } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) statistics = try container.decodeIfPresent([CacheStat].self, forKey: .statistics) ?? [] isHit = try container.decodeIfPresent(Bool.self, forKey: .isHit) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if statistics.count > 0 { try container.encode(statistics, forKey: .statistics) } if isHit != nil { try container.encode(isHit, forKey: .isHit) } } } // @Flags() public enum CacheResult : Int, Codable { case None = 0 case Miss = 1 case Hit = 2 case Put = 4 case Deleted = 8 case Cleared = 16 case Added = 32 case Updated = 64 case Unavailable = 128 case Expired = 256 } public enum CacheLocation : Int, Codable { case None = 0 case OutOfProcess = 1 case InProcess = 2 case InContext = 3 } public class CacheKey : Codable { public var region:String? public var baseKey:String? public var key:String? public var expirationSeconds:Int? required public init(){} } public class CacheResultBase : Codable { public var result:CacheResult? public var location:CacheLocation? public var key:CacheKey? required public init(){} } public class CacheStat : Codable { public var name:String? public var value:String? required public init(){} }