Files
zeekay b60f47a8bb Regenerate: the AI surface says what it answers
288 of hanzoai/ai's 294 operations now declare a response, against 1 before.
GET /v1/models, POST /v1/chat/completions, /v1/embeddings, /v1/messages —
every address a client actually calls — used to reach this client untyped,
because cloud's relay carried an operation's sentence and dropped the shapes
it named. It carries both now.

Fleet-wide the document goes from 69% to 81% of operations declaring what
comes back, which is where the ~208 new models here come from.
2026-08-28 15:52:19 -07:00

46 lines
1.3 KiB
Swift

//
// AiRouterHistory.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
public struct AiRouterHistory: Sendable, Codable, ParameterConvertible, Hashable {
public var daily: [AiHistoryDay]?
public var retrains: [AiHistoryRetrain]?
public var scope: String?
public var totals: AiHistoryTotals?
public var window: AiHistoryWindow?
public init(daily: [AiHistoryDay]? = nil, retrains: [AiHistoryRetrain]? = nil, scope: String? = nil, totals: AiHistoryTotals? = nil, window: AiHistoryWindow? = nil) {
self.daily = daily
self.retrains = retrains
self.scope = scope
self.totals = totals
self.window = window
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case daily
case retrains
case scope
case totals
case window
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(daily, forKey: .daily)
try container.encodeIfPresent(retrains, forKey: .retrains)
try container.encodeIfPresent(scope, forKey: .scope)
try container.encodeIfPresent(totals, forKey: .totals)
try container.encodeIfPresent(window, forKey: .window)
}
}