Files
goose/api_clients/swift/GooseAPI/Classes/OpenAPIs/Models/ProviderMetadata.swift
2025-10-02 20:13:20 -04:00

65 lines
2.3 KiB
Swift

//
// ProviderMetadata.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
/** Metadata about a provider's configuration requirements and capabilities */
public struct ProviderMetadata: Codable, JSONEncodable, Hashable {
/** Required configuration keys */
public var configKeys: [ConfigKey]
/** The default/recommended model for this provider */
public var defaultModel: String
/** Description of the provider's capabilities */
public var description: String
/** Display name for the provider in UIs */
public var displayName: String
/** A list of currently known models with their capabilities TODO: eventually query the apis directly */
public var knownModels: [ModelInfo]
/** Link to the docs where models can be found */
public var modelDocLink: String
/** The unique identifier for this provider */
public var name: String
public init(configKeys: [ConfigKey], defaultModel: String, description: String, displayName: String, knownModels: [ModelInfo], modelDocLink: String, name: String) {
self.configKeys = configKeys
self.defaultModel = defaultModel
self.description = description
self.displayName = displayName
self.knownModels = knownModels
self.modelDocLink = modelDocLink
self.name = name
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case configKeys = "config_keys"
case defaultModel = "default_model"
case description
case displayName = "display_name"
case knownModels = "known_models"
case modelDocLink = "model_doc_link"
case name
}
// Encodable protocol methods
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(configKeys, forKey: .configKeys)
try container.encode(defaultModel, forKey: .defaultModel)
try container.encode(description, forKey: .description)
try container.encode(displayName, forKey: .displayName)
try container.encode(knownModels, forKey: .knownModels)
try container.encode(modelDocLink, forKey: .modelDocLink)
try container.encode(name, forKey: .name)
}
}