mirror of
https://github.com/hanzoai/swift-sdk.git
synced 2026-10-30 18:20:19 +00:00
The projection these were generated from predated the compute migration, so they described /v1/visor — which the API serves at zero paths now. No /v1/visor path survives here.
96 lines
3.8 KiB
Swift
96 lines
3.8 KiB
Swift
//
|
|
// StarterKit.swift
|
|
//
|
|
// Generated by openapi-generator
|
|
// https://openapi-generator.tech
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public struct StarterKit: Sendable, Codable, ParameterConvertible, Hashable {
|
|
|
|
/** groups the kit in the gallery browser (\"Portfolio\", \"SaaS\") */
|
|
public var category: String?
|
|
/** live demo (<slug>.hanzo.app), when deployed */
|
|
public var demo: String?
|
|
/** the browse-card blurb */
|
|
public var description: String?
|
|
/** the highlights the card lists, at most 32 */
|
|
public var features: [String]?
|
|
/** the stack the kit is built on (\"Next.js 14.2 + TS\") */
|
|
public var framework: String?
|
|
/** owner of a PRIVATE template; empty in the public catalog */
|
|
public var org: String?
|
|
/** the still image the browse card renders */
|
|
public var preview: String?
|
|
/** Rating is public-gallery curation, on the same terms as Tier: catalog-only, never accepted from a request, absent on a customer's own kit. */
|
|
public var rating: Double?
|
|
/** the kit's identity — lowercase alphanumeric with dashes, max 40 */
|
|
public var slug: String?
|
|
/** the repository the kit is forked from */
|
|
public var source: String?
|
|
/** Tier is public-gallery curation, carried verbatim from the embedded catalog. No request can set it — neither write body has the field and neither builds a kit carrying one — so it is absent on every customer-published kit. */
|
|
public var tier: Int64?
|
|
/** display name */
|
|
public var title: String?
|
|
/** what the kit is for, in a phrase */
|
|
public var useCase: String?
|
|
/** the shapes this template ships in */
|
|
public var variants: [Variant]?
|
|
|
|
public init(category: String? = nil, demo: String? = nil, description: String? = nil, features: [String]? = nil, framework: String? = nil, org: String? = nil, preview: String? = nil, rating: Double? = nil, slug: String? = nil, source: String? = nil, tier: Int64? = nil, title: String? = nil, useCase: String? = nil, variants: [Variant]? = nil) {
|
|
self.category = category
|
|
self.demo = demo
|
|
self.description = description
|
|
self.features = features
|
|
self.framework = framework
|
|
self.org = org
|
|
self.preview = preview
|
|
self.rating = rating
|
|
self.slug = slug
|
|
self.source = source
|
|
self.tier = tier
|
|
self.title = title
|
|
self.useCase = useCase
|
|
self.variants = variants
|
|
}
|
|
|
|
public enum CodingKeys: String, CodingKey, CaseIterable {
|
|
case category
|
|
case demo
|
|
case description
|
|
case features
|
|
case framework
|
|
case org
|
|
case preview
|
|
case rating
|
|
case slug
|
|
case source
|
|
case tier
|
|
case title
|
|
case useCase
|
|
case variants
|
|
}
|
|
|
|
// Encodable protocol methods
|
|
|
|
public func encode(to encoder: Encoder) throws {
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
try container.encodeIfPresent(category, forKey: .category)
|
|
try container.encodeIfPresent(demo, forKey: .demo)
|
|
try container.encodeIfPresent(description, forKey: .description)
|
|
try container.encodeIfPresent(features, forKey: .features)
|
|
try container.encodeIfPresent(framework, forKey: .framework)
|
|
try container.encodeIfPresent(org, forKey: .org)
|
|
try container.encodeIfPresent(preview, forKey: .preview)
|
|
try container.encodeIfPresent(rating, forKey: .rating)
|
|
try container.encodeIfPresent(slug, forKey: .slug)
|
|
try container.encodeIfPresent(source, forKey: .source)
|
|
try container.encodeIfPresent(tier, forKey: .tier)
|
|
try container.encodeIfPresent(title, forKey: .title)
|
|
try container.encodeIfPresent(useCase, forKey: .useCase)
|
|
try container.encodeIfPresent(variants, forKey: .variants)
|
|
}
|
|
}
|
|
|